High idle cpu usage

Hi.

The main problem: Duplicati is, theoretically, not currently running a backup.

  • The web UI shows no backups running;
  • the logs in about → show log → live only show that Duplicati started.

However, it is using a sustained 25% cpu. I need it to not do so. How do I do that?

Successful outcome: duplicati uses approx 0% cpu while not actively running on my laptop.

Background: I recently updated Duplicati. ver Duplicati - 2.0.7.1_beta_2023-05-25 . Mac os.

$ mono --version
Mono JIT compiler version 6.12.0.182 (2020-02/6051b710727 Tue Jun 14 15:01:21 EDT 2022)

I was also recently forced to hardkill the process because Duplicati froze on a backup for 15 days. I discovered this last night, which wasn’t awesome, so I killed the process and upgraded it. I have completed several manually triggered backups since then.

edit: Thank you for any suggestions!

1 Like

sorry about the delay, I don’t have easy access to a Mac and it takes some time to organize.

  • what is your OS version ?
  • could it be because it is trying to update itself ? can you monitor not only the Cpu, but also the disk and network ?
  • is there any change if you start the server separately - that is, by launching from a terminal

mono Duplicati.Server.exe &

you have to stop the tray icon first. This is to eliminate the tray icon, a feature that is very specific to the Mac Duplicati configuration.

Hi gpatel-fr –

os ver: 10.15.7

For update: I’ll look. I did let it run for a couple hours, but nothing scientific.

Per your instructions, this is how I launched Duplicati:

~ % # reports nothing running:
~ % ps aux | grep -i duplicati
~ %
~ % # snipped / finding the exe
updates % pwd
/Users/earl/Library/Application Support/Duplicati/updates
% ls -al 2.0.7.1/Duplicati.Server.exe
-rw-r--r--  1 earl  staff   281K Sep 25 02:19 2.0.7.1/Duplicati.Server.exe
updates % 
updates %  mono 2.0.7.1/Duplicati.Server.exe &
[1] 15292

I’ll update as to how it goes. And thank you.

Duplicati has’t run in a couple days so it launched a backup on launch. After it finishes and gets to a steady state, I’ll run ktrace / monitor network and disk and see if anything interesting shows up.

ugh. I am surprised that it works at all. AFAIK it’s not possible to install from scratch, but it seems that it is possible to update from what you say.

Hello everybody,

any progress on that? I am running into the same issue. It really affects the time on the laptop battery.

OS Version: Sonoma 14.1.1
➜  flaskr git:(main) ✗ mono --version
Mono JIT compiler version 6.12.0.199 (2020-02/f648ec1e0a6 Wed Jun 14 09:24:35 EDT 2023)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com

Duplicati version: 2.0.7.1_beta_2023-05-25

People can post info as they like. One person is gone now. I don’t even have a Mac myself.

Battle plan for migrating to .Net8 should eventually resolve any mono problem by replacing it.

Release: 2.0.7.102 (canary) 2024-04-03 language is a little misleading, but I think the plan is

then after that, it’s unknown how long the .NET 8 release will need, but I view it as “progress”.

EDIT:

and although mono has more than its fair share of these, it might also be a cross-platform bug.

Excessive CPU use of Duplicati.GUI.TrayIcon.exe when idle #1276

Still an issue on macOS Sonoma 14.1.1.

reports yetty. Most reporters aren’t saying their OS though, so it’s hard to know what they’re on.
Windows 10 for me doesn’t give me a “pegs a whole core” even when I know SQLite is pegged.
Load of full-core-equivalent is spread across all cores by Windows for some reason. Is it better?
Task Manager requires “Change graph to” → “Logical processors” to even see individual usage.

See previous post too, but next question is – when? Easier repro is potentially easier to debug,
although there’s still a good chance that developer help (preferably a Mac user) will be needed.

I can reproduce the 25% CPU usage in debug mode on MacOS.
There appears to be 0% activity in .Net, all threads are waiting for an event.

Note that this is different from the Github issue that mentioned 100% CPU usage.

I made a trace of the process, which confirms that the time is indeed spent waiting:

The weird part is that the time appears to be spent inside libsystem_kernel.dylib which I assume has a super efficient wait implementation.

There is a possibility that the problem is Mono related and will go away with the .Net8 update.
If not, then my best guess is that this is caused by inefficient use of wait handles in the Duplicati code.
A task for later would be to switch to async style methods so we do not have idle threads at all.

Thanks for the look. I had tried using the mono tracing abilities that show what code it’s going through.
I couldn’t persuade it to log to a file, but I can get a spew to the terminal, and toggle it using SIGUSR2.
With no Duplicati GUI tab open, and no Tray Icon, mine gets pretty quiet. Not sure how yours looks…

mono --trace=all Duplicati.Server.exe

is where I left it, and by then I had probably also used AUTOUPDATER_Duplicati_SKIP_UPDATE=true

If this were happening on my Linux system, next stop would be strace. On macOS, perhaps dtruss.