这些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探索并首先发现进程的方式:系统不会重新启动。
这些数字告诉您刷新过程正在处理什么。做
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进行补偿。
| 归档时间: |
|
| 查看次数: |
7981 次 |
| 最近记录: |