【发布时间】:2015-08-11 17:17:15
【问题描述】:
背景:
我试图在我的台式计算机上设置ubuntu 机器。整个过程花了一整天,包括安装操作系统和软件。不过我也没多想。
然后我尝试用新机器做我的工作,它比我的笔记本电脑慢很多,这很奇怪。
我做了iotop,发现解压包时磁盘流量在1-2MB/s左右,肯定不正常。
然后,经过数小时的研究,我发现this article 描述了完全相同的问题,并提供了一个丑陋的解决方案:
我们最近在一些系统上遇到了一个严重的性能问题,其中磁盘写入速度极慢(~1 MB/s — 正常性能 是 150+MB/s)。
...
编辑:要解决这个问题,要么删除足够的 RAM,要么添加“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。
所以,它基本上表明 当系统内存大于 8GB 时(在我的情况下为 32GB),无论vm.dirty_background_ratio 和 vm.dirty_ratio 设置如何,(在我的情况下为 5% 和 10% ),实际脏阈值变为 0 并且写入缓冲区被禁用?
为什么会这样?
这是内核中的错误还是其他地方的错误?
除了拔掉 RAM 或使用“mem=8g”之外,还有其他解决方案吗?
更新:我正在使用 ubuntu 12.04 32 位运行 3.13.0-53-generic 内核,因此这可能只发生在 32 位系统上。
【问题讨论】:
-
当我运行上面的 cat/egrep 时,我看不到零。这是在 AMD FX8150 上运行 Ubuntu 14.04 和 16GB 内存
标签: linux linux-kernel disk