Jun 9, 2013

Limit the CPU usage of ownCloud Desktop Sync client under Windows

Graphic on a computer

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.

written by dgraziotin

Dr. Daniel Graziotin received his PhD in computer science, software engineering at the Free University of Bozen-Bolzano, Italy. His research interests include human aspects in empirical software engineering with psychological measurements, Web engineering, and open science. He researches, publishes, and reviews for venues in software engineering, human-computer interaction, and psychology. Daniel is the founder of the psychoempirical software engineering discipline and guidelines. He is associate editor at the Journal of Open Research Software, academic editor at the Research Ideas and Outcomes (RIO) journal, and academic editor at the Open Communications in Computer Science journal. He is the local coordinator of the Italian Open science local group for the Open Knowledge Foundation. He is a member of ACM, SIGSOFT, and IEEE.

  • Marcel Jun 14, 2013 Reply

    you might add settings to the client, setting priority to the owncloud process

    wmic process where name=”AppName” CALL setpriority ProcessIDLevel

    so endusers can choose their own level. No add. s/w needed


    • dgraziotin Jun 16, 2013 Reply

      Hi Marcel, thanks for leaving the comment. This is something you should definitely discuss on ownCloud forums and/or on the bug tracker. ownCloud developers, as in most opensource projects, are always happy when they receive proactive feedback.

  • Brandon Oct 16, 2013 Reply

    Thanks for writing this up. It took a little time to figure out Process Tamer, but it worked great for me.

Leave a comment