
Мне нужно определить, какой процесс непрерывно записывает данные на Диск.
Я попытался запустить его prstat -t
, чтобы получить список запущенных процессов, но не могу определить/найти, какой именно процесс это делает.
Запустив df -k
, я вижу, что пространство на заданном пути Диска непрерывно уменьшается.
после завершения всех процессов (и закрытия всех внешних соединений), которые когда-либо могли записывать на диск, все еще есть что-то, что записывает на него.
ОС Solaris 10
решение1
Он не будет показывать реальные операции ввода-вывода, но вы также можете использоватьутилитаfuser
для идентификации процессов, использующих файловую систему каким-либо образом, даже тех, которые не вызывают фактический ввод-вывод или выполняют ввод-вывод способами, которые невозможно отследить до конкретного процесса ( mmap()
например, файлов, когда файл может использоваться mmap()
несколькими процессами):
Синопсис
/usr/sbin/fuser [-c | -d | -f] [-nu] [-k | -s sig] files [ [- ] [-c | -d | -f] [-nu] [-k | -s sig] files] ...
Описание
Утилита fuser отображает идентификаторы процессов, использующих файлы, указанные в качестве аргументов.
За каждым идентификатором процесса следует буквенный код. Эти буквенные коды интерпретируются следующим образом. Если процесс использует файл как
c Указывает, что процесс использует файл в качестве текущего каталога.
m Указывает, что процесс использует файл, сопоставленный с помощью mmap(2). Подробности см. в mmap(2).
n Указывает, что процесс удерживает неблокируемую обязательную блокировку файла.
o Указывает, что процесс использует файл как открытый файл.
r Указывает, что процесс использует файл в качестве корневого каталога.
t Указывает, что процесс использует файл в качестве текстового файла.
y Указывает, что процесс использует файл в качестве своего управляющего терминала.
Пример:
Предполагая, что ваш домашний каталог находится в отдельной файловой системе, смонтированной в /export/home
, это покажет все процессы, использующие файлы любым способом в этой файловой системе, включая те процессы, которые не выполняют никаких операций ввода-вывода, но имеют текущий рабочий каталог в этой файловой системе, а также процессы, у которых файлы отображены в память из этой файловой системы:
fuser -c /export/home