背景:
我尝试在桌面电脑上安装 ubuntu
系统。整个过程花费了一整天,包括安装操作系统和软件。当时我没有太在意。
然后我尝试使用这台新机器工作,但它比我的笔记本电脑慢得多,这非常奇怪。
我使用 iotop
命令发现,在解压缩包时磁盘流量只有1-2MB/s,这绝对是异常的。
经过数小时的研究,我找到了这篇文章,描述了完全相同的问题,并提供了一个不太优美的解决方案:
我们最近在某些系统上遇到了严重的性能问题,其中磁盘写入速度极慢(~1 MB/s - 正常性能应为150+MB/s)。
...
编辑:要解决此问题,请删除足够的内存或将“mem=8G”添加为内核启动参数(例如,在Ubuntu的 /etc/default/grub 中 - 不要忘记运行 update-grub!)
我还看了这篇文章:
https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/
并执行了相应的操作。
cat /proc/vmstat | egrep "dirty|writeback"
输出结果为:
nr_dirty 10
nr_writeback 0
nr_writeback_temp 0
nr_dirty_threshold 0 // and here
nr_dirty_background_threshold 0 // here
当设置mem=8g
时,这些值分别是8223
和4111
。
所以,基本上它显示了这样一种情况:当系统内存大于8 GB(在我的情况下为32 GB),无论vm.dirty_background_ratio
和vm.dirty_ratio
设置为什么(在我的情况下为5%和10%),实际脏阈值将变为0并且禁用写缓冲区?
这是为什么呢?
这是内核或其他地方的错误吗?
是否有解决方案,而不是拔掉内存条或使用“mem=8g”?
更新:我正在运行带有Ubuntu 12.04 32位的3.13.0-53-generic内核,因此这可能只发生在32位系统上。