layout: post title: "Fix system freezing while copying to a flash drive" date: 2014-04-26 21:11 comments: true categories: [linux] cover: /images/cover/avatar.png keywords: linux, kernel, freezing, usb, flash drive, fix, slow, unresponsive
I copied about 10 GiB data from my hard drive to a USB3.0 flash drive. Much to my surprise the system started freezing, songs playback became interrupted, etc. Eventually I had to wait until the copying process finished.
Well, something like that is simply unacceptable if you have 8-core i7 processor, 8 GiB RAM and SSD.
So I've found a simple solution. The problem was wrong setting of dirty pages (because of historical reasons). It's a well-known Linux kernel problem.
What I did was:
{% codeblock lang:bash %} echo 0 > /proc/sys/vm/dirtybackgroundratio echo 33554432 > /proc/sys/vm/dirtybackgroundbytes echo 66554432 > /proc/sys/vm/dirty_bytes {% endcodeblock %}
After applying these changes CPU load dropped from 6 to 3 and system was fast
and responsive. To make that changes persistent add the lines below to /etc/tmpfiles.d/dirty.conf
:
{% codeblock %} w /proc/sys/vm/dirtybackgroundratio - - - - 0 w /proc/sys/vm/dirtybackgroundbytes - - - - 33554432 w /proc/sys/vm/dirty_bytes - - - - 66554432 {% endcodeblock %}
Maybe it's already fixed in current kernel, I don't know. I'm running OpenSUSE 13.1 with 3.11.10-7-desktop kernel.