问题描述
昨天我将一个8 GB的文件复制到USB,写入速度慢,速度为7 MB /s,而我的RAM为3 GB。虽然复制系统冻结,但我甚至无法移动光标。
我设法登录文本控制台,并运行iotop
,它显示一个名为kswapd0
的进程占用了99.99%的IO。
是否有变通方法,因此复制大文件不会使我的系统无法使用?
最佳解决方法
根据this bug report,我解决了它添加以下行
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
进入/etc/sysctl.conf
并运行
sudo sysctl -p
次佳解决方法
我遇到了类似的问题。我是64位Ubuntu 14.04。经过长时间的斗争,我找到了a answer来解决我的问题。为方便使用,我添加了以下above mentioned answer中使用的命令。检查答案以获得详细说明。
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
使用上述命令后系统开始正常复制文件。
谢谢到@Rmano。
第三种解决方法
复制到闪存驱动器时,我遇到与冻结系统类似的问题。我报告了关于它的错误报告:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1267648
正如我发现的解决方法,禁用交换完全消除了这个问题。
第四种方法
是的,有一些内核设置可以调整,指定在实际写入磁盘之前必须将多少数据标记为已写入。请查看here以获得对它们的全面描述。特别是,您需要找到适合您的dirty_ratio值(默认情况下它通常对台式机/笔记本电脑而言太高,但没有一个适合所有人的幻数)。