Назад | Перейти на главную страницу

Что вызывает эти процессы промывки?

Что это 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 компенсировать.