Я так понимаю, что каждый установлен ext3
файловая система будет иметь соответствующий kjournald
процесс запущен. Один из этих процессов использует много CPU, и я хотел бы знать, какая файловая система за это отвечает.
у меня есть три ext3
файловые системы смонтированы, но процессы отображаются только как
root 325 2 0 Sep23 ? 00:30:12 [kjournald]
root 7433 2 0 Sep23 ? 00:00:00 [kjournald]
root 7434 2 0 Sep23 ? 00:09:47 [kjournald]
Как я могу определить, какой процесс связан с какой файловой системой?
Косвенный способ сделать это - использовать blktrace
и его удобная команда btrace
. blktrace
записывает и отображает доступ к дискам на уровне блоков, когда это происходит. btrace
означает, что вам не нужно запоминать все варианты blktrace
.
# btrace /dev/sda1 | grep kjournald
8,1 5 1 0.000201850 325 Q WS 451573976 + 8 [kjournald]
8,1 5 2 0.000393849 325 Q WS 976637584 + 8 [kjournald]
8,1 5 3 0.000398641 325 Q WS 976637592 + 8 [kjournald]
8,1 5 4 0.000401003 325 Q WS 976637600 + 8 [kjournald]
8,1 5 5 0.000404179 325 Q WS 976637608 + 8 [kjournald]
8,1 5 6 0.000407446 325 Q WS 976637616 + 8 [kjournald]
^^^
pid of kjournald for /dev/sda1
Отображаемые здесь поля задокументированы в blkparse
manpage; пятое поле - это PID процесса, выполняющего ввод / вывод. Итак, хотя у меня нет возможности напрямую связать kjournald
s для файловых систем, я могу увидеть, какой процесс связан с конкретным блочным устройством, а затем посмотреть на таблицу монтирования, чтобы увидеть, какая файловая система задействована.