У меня есть высокая io статистика. Высокие записи. Но какие файлы пишутся?

Попробуйте это:

find /source/directory -type f -maxdepth 1 -print | tail -100 | xargs -J % mv % /other/location/
12
06.01.2013, 05:36
4 ответа

Ну, Вы могли попробовать следующие команды, которые работали на меня в RHEL6:

1) Безотносительно устройства Вы видите в выводе "iostat", выполняющем больше ввода-вывода, используете его с fuser команда следующим образом:

fuser -uvm device

2) Вы получите список процессов с именем пользователя, вызывающим больше ввода-вывода. Выберите те PIDS и используйте его в lsof команда следующим образом:

lsof -p PID | more

3) Вы получите список файлов/каталогов вместе с пользователем, выполняющим максимальный ввод-вывод.

7
27.01.2020, 19:55
  • 1
    root@host [~] # - ультрафиолетовый ПОЛЬЗОВАТЕЛЬ термофиксатора/home4 root@host [~] # команда/home4-uvm/home4 ДОСТУПА PID: newgames 18297.. c.. (newgames) php cuntschi 18407.. c.. (cuntschi) php newgames 18457.. c.. (newgames) интересный php –  user4951 06.01.2013, 10:29

Кажется, что нет никаких инструментов для обнаружения пропускной способности ввода-вывода на файл кроме в рамках процесса с помощью файла. Но существуют способы узнать, обрабатывают пропускную способность ввода-вывода.

iotop - Это - top/iftop как утилита, которые показывают процессу пропускную способность ввода-вывода.

После контакта, указывающего, какой процесс имеет тяжелый ввод-вывод, используйте следующее для обнаружения, какой файл используется

lsof -c <process name>

Это должно сузить объем, и контакт справки указывают на источник.

5
27.01.2020, 19:55
  • 1
    , как получить процесс? lsof также ничего не производят. Что-то пишет столько вещей, и я не знаю что –  user4951 06.01.2013, 06:48
  • 2
    Извините, я поместил несправедливость io утилита. Это должно быть iotop, нет iostat. Я исправил свой ответ. –  John Siu 06.01.2013, 06:50
  • 3
    (1) Можно ли также обновить, какой дистрибутив (redhat/centos/ubuntu...) Вы выполняете? (2) - это новая установка? (3) Какой-либо совместный доступ к файлам как выполнение самбы? спасибо –  John Siu 06.01.2013, 06:57

Используйте systemtap для отслеживания каждого системного вызова write / pwrite. Вы можете провести некоторые подсчеты, и вы увидите, какой файл / fd получает больше всего байтов.

2
27.01.2020, 19:55

Вы можете использовать inotifywait из inotify-tools , чтобы точно узнать, в какой файл выполняется запись. Это не скажет вам, сколько данных записывается, но, по крайней мере, скажет вам, какие файлы записываются, когда это происходит.

В качестве примера, эта команда будет печатать имя файла, как только он будет создан, изменен или удален в / tmp :

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /tmp
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/ CREATE test
/tmp/ MODIFY test

К сожалению, вам нужно будет угадать, в каком каталоге находятся файлы, которые будут написано. Это не сработает, если вы попытаетесь использовать его в корневом каталоге, хотя, очевидно, это можно переопределить:

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /
Setting up watches.  Beware: since -r was given, this may take a while!
Failed to watch /; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.
2
27.01.2020, 19:55

Теги

Похожие вопросы