I believe there is a factor 4X in improvement possible for IDLE power consuption.
If we could reach a factor 2X it would already mean we can use the app. Otherwise it is consuming way too much (see attached pic)
Battery is really critical for smartphone, if I have to let my phone plug to a wall…this is a regular PC…not a phone
I have tried the latest version of Syncthing (not my compile;) ), on samsung galaxy a3 2017 android 6.0.1.
Interestingely Samsung is providing a profiling of the Syncthing app over time.
Which shows a huge increase of consumsion after 2 Hours.
The phone keeps on saying we have to “optimise” the app, means shut it down after 1 hour;)
In short , users are prety much invited not to use syncthing, which is a problem I believe.
Please note that I have NO folder synchtonised, Syncthing is just supposed to be sitting IDLE.
An app like whatsapp that I use all the time consume 7%. And Syncthing IDLE consume 27% of my batterie in the same time
QUESTION:
a) What could make this huge increase in power used after 2 hours
b)Is iddle power used by syncthing service or android java ap?
c)If it is the service, could we stop and restart it every hour for example as a workaround ?
The one issue that causes battery drain is file syncing errors. When syncthing encounters errors, it keeps trying these files forever very frequently therefor causing a lot of battery usage. This is most ot the time not user fault but some sync related issue.
I realized this causality when I moved from the gui app to arm compiled version in terminal (like termux) where I could see the logs. Trying to fix these sync issues (like ignoring, deleting troubling files etc) massively decrease the cpu use.
Also syncthing client can get very chatty with other clients, which in my opinion is the another battery sucking “feature” of syncthing.
Hi @Nicuh,
i have tried it yesterday "restartOnWakeup " OFF, but it doesn t seam to change anything on my android 6.0.
After 8H the app with nothing to sync; uses 25% of the batter (3% / hour as samsung says).
It looks like we have several battery draining causes…
My guess would be that it, while running, keeps network sockets open and sends pings over them. This prevents the CPU and cellular modem / WiFi from sleeping.
Dear @calmh,
That s exactly my guess too !!!
I have found that when on WIfi it uses much less power than on 4G. I believe this is because it cost much less power to send on Wifi data ALL THE TIME.
On wifi syncthing uses 3% per 8 hours on 4G 25% sittinf IDLE!
The battery cost of sending packets over wifi is much lower than 4G, therefore it stays unoticed for wifi users.
It is not on the agenda, as such. However the batching mentioned there could be implemented by the Android wrapper as something simple like pausing all devices, and then periodically:
unpausing
giving things a while to connect
observing sync status; if syncing, leave it connected for a little while longer
when all connected devices are in sync, pause all devices
Or maybe not… I have the latest syncthing for Android app installed (0.10.6, with syncthing 0.14.45), and I’m still getting way too high CPU usage. The app itself says it uses less than 5% of CPU, but if I go to the app monitor, I see a usage around 20 or 25%. And I fear the monitor is right, since my battery gets drained much faster than usual if I leave syncthing running.
My device is a Samsung Galaxy Note 3 with Android 5.0.
I should explain that in my case the battery drain occurs if “Always run in background” is ticked (I also have “Run only on WiFi” ticked). Same settings prior to Android 0.10.5 didn’t have this problem as far as I know.
All my folders are synced and I also reset the database, but still the drain occurs. I have three synced folders, 7 files/400 KiB, 700 files/2.5 GiB, 6 files/180 MiB. Scan interval is 5 mins.
I switched back to Syncthing for Android v0.10.4 via FDroid (that still has it) and the battery consumption issues are gone. Now I see CPU usage for Syncthing when idle at 0% when it was at 20~25% with the next versions… I hope this version will keep on working.
I can actually reproduce on my Samsung Galaxy S4. It drains the battery much faster than it did before without any changes to the configuration (of Syncthing or the Phone).
Maybe I can look into it, but I haven’t been developing for Android for quite a while now and I think the usage of Go makes this even harder than average. But I could gather some logs at least.
The workaround is currently to only enable the app if I want to sync something. It is ok, but far from ideal.