Как проверить, какой процесс пишет в файловой системе Solaris

Как проверить, какой процесс пишет в файловой системе Solaris

Мне нужно определить, какой процесс непрерывно записывает данные на Диск.

Я попытался запустить его 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

Связанный контент