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
我注意到该flush-202:80
进程经常跳转到顶部top
。这是在运行 Apache、MySQL 和 Solr 进程的 Ubuntu Server 12.04 上。我在 Google 上搜索这个主题时,我发现另一篇 SF 帖子top
其中提到这些进程不应该消耗太多的 CPU。该帖子中提出的解决方案提到重新启动系统,这正是我首先探索并发现这些进程的方式:系统不会重新启动。
答案1
这些数字会告诉您冲洗过程正在进行什么。
grep ^ /sys/class/block/*/dev
你会看到类似
:
/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
:
将其与您的ps ax | grep flush
10213 ? S 0:00 [flush-8:0]
并且您可以看到flush
正在进行的是我的/dev/sda
。
您可以通过以下方式获取更多信息
grep "201:80" /proc/self/mountinfo
grep "201:1" /proc/self/mountinfo
和
lsof | grep "201,80"
lsof | grep "201,1"
查看哪些进程打开了这些设备上的哪些文件。
在发生这种情况之前和发生时,您会看到什么top
?最好是追踪问题,而不是重新启动。一旦找到导致问题的进程,您就可以调整并/proc/sys/vm/dirty_background_ratio
进行补偿。/proc/sys/vm/dirty_expire_centisecs
/proc/sys/vm/dirty_ratio