是什么导致了这些刷新过程?

dot*_*hen 7 ubuntu ps

这些flush过程是什么?

$ ps aux | grep flush
root       710  0.0  0.0      0     0 ?        S     2012   2:29 [flush-202:1]
root     10732  6.2  0.0      0     0 ?        S    Apr14 453:33 [flush-202:80]
ubuntu   24009  0.0  0.0   8080   900 pts/3    S+   06:26   0:00 grep --color=auto flush
Run Code Online (Sandbox Code Playgroud)

我注意到这个flush-202:80过程经常跳到top. 这是在运行 Apache、MySQL 和 Solr 进程的 Ubuntu Server 12.04 上。谷歌搜索这个主题,我发现了另一篇 SF 帖子,其中提到这些进程不应该消耗太多 CPU。那篇文章中提出的解决方案提到了重新启动系统,这正是我开始四处top探索并首先发现进程的方式:系统不会重新启动

Jon*_*ham 7

这些数字告诉您刷新过程正在处理什么。做

grep ^ /sys/class/block/*/dev
Run Code Online (Sandbox Code Playgroud)

你会看到类似的东西

:
/sys/class/block/sda1/dev:8:1
/sys/class/block/sda2/dev:8:2
/sys/class/block/sda5/dev:8:5
/sys/class/block/sda6/dev:8:6
/sys/class/block/sda/dev:8:0
:
Run Code Online (Sandbox Code Playgroud)

将此与您的 ps ax | grep flush

10213 ?        S      0:00 [flush-8:0]
Run Code Online (Sandbox Code Playgroud)

你可以看到flush正在处理的是我的/dev/sda.

你可能可以通过这样做获得更多信息

grep "201:80" /proc/self/mountinfo
grep "201:1" /proc/self/mountinfo
Run Code Online (Sandbox Code Playgroud)

lsof | grep "201,80"
lsof | grep "201,1"
Run Code Online (Sandbox Code Playgroud)

查看哪些进程打开了这些设备上的哪些文件。

在这top之前和发生时向您展示了什么?最好跟踪问题而不是重新启动。一旦你找到引起该问题,您也许能调整过程/proc/sys/vm/dirty_background_ratio/proc/sys/vm/dirty_expire_centisecs/proc/sys/vm/dirty_ratio进行补偿。