Что это 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
. Это на Ubuntu Server 12.04, на котором запущены процессы Apache, MySQL и Solr. Погуглил тему, которую нашел другой пост в SF в котором упоминается, что эти процессы никогда не должны потреблять много ЦП. В решении, представленном в этом сообщении, упоминается перезагрузка системы, именно так я и пришел к top
и в первую очередь открыть для себя процессы: система не перезагружается.
Цифры говорят вам, над чем работает процесс промывки. Делать
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
компенсировать.