limit the cpu usage of owncloud desktop sync client under windows
Owncloud is an incredible Open Source Dropbox alternative, which can either be installed on a personal server or employed through 3rd party providers. I started using it since the very early releases and it improves more and more each day. Although I still need to use Dropbox with some University colleagues, I was able to make the final switch by bridging the Dropbox shared folders and ownCloud. This is another story. What I would like to write about today is the sync client for Windows.
It is not a mistery that the sync client has a high CPU usage. Despite the little beast living in my laptop (it has a quad-core Intel i7-3720QM CPU and an SSD disk), ownCloud sync client is able to make my Windows 8 experience very clunky. Dropbox client is still some steps ahead on this aspect. While I full trust that ownCloud developers will solve this issue sooner or later, we can still do something to limit the issue.
In this post, I am reporting my experience to limit the CPU usage of ownCloud sync client (v1.2.5 and v1.3.0-beta2) under Windows 8. This is achieved by (1) settings the ownCloud process priority to “low” and by (2) setting a limit on the percentage of the CPU usage for ownCloud.exe.
Lower ownCloud priority with Process Tamer
Process Tamer is a program, which monitors the running processes and automatically lowers the priority of the processes which are deteriorating Windows user experience. It does even more. It can force a process to run under certain priority. This is what we are going to do. Download Process Tamer and install it. Click the “Configuration” tab and thick the “Start with Windows” option. Then, right-click the white area under “Application Name”. Select “Add Rule”. A file dialog will appear. Navigate where ownCloud sync client is installed - usually
C:\Program Files (x86)\ownCloud
and select owncloud.exe. As explicit rule select “Force Low”. Look the following screenshot to see how it should look like.
Process Tamer configuration for ownCloud Process Tamer configuration for ownCloud
Limit ownCloud CPU usage with Battle Encoder Shirase
BES is another tool, which actually throttles the CPU percentage usage for a specified process. Download BES, unpack it and place it under
C:\Program Files (x86)\BES
, so that in the BES folder you can immediately find BES.exe. Then, schedule a task in Windows. Follow the previous link or simply look for “schedule task” in Windows 8 search. Click “Create a Basic task”, name it something like “BES CPU limiter autostart”. For “When you want the task to start?” select “When I log in”, and for “What action do you want the task to perform?” select “Start a Program”. In the Program/script input, browse and select
"C:\Program Files (x86)\BES\BES.exe"
. For the field “Add arguments (optional)”, input
"C:\Program Files (x86)\ownCloud\ownCloud.exe" 90 --minimize
. The “90” means that we want to allocate maximum the 10% of the percentage of the CPU usage, for ownCloud. Reboot your machine. You should now see both Process Tamer and BES in Windows systray. If BES is working correctly, it should look like the following screenshot.
Battle Encoder Shirade limiting ownCloud CPU usage Battle Encoder Shirade limiting ownCloud CPU usage
While this solution does not solve the issue per se, it lets me keep ownCloud sync client running without either making Windows clunky or the laptop noisy because of the fan speed. Try to play with BES settings to see which works better for you. The higher the limit, the longer it may take for ownCloud sync client to do its work. Remember to change the parameter in Windows Task Scheduler, otherwise the limit will be set to 90 at each user login. If this post works for you, think about donating some money to the two projects.
I do not use a commenting system anymore, but I would be glad to read your feedback. Feel free to contact me.