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

sar-подобная утилита для доступа к файлам

Я устраняю проблемы, связанные с падением производительности Linux-сервера вчера вечером. У меня на сервере установлен sysstat, и он опрашивает каждые 2 минуты. Примерно в то время, когда произошло событие, была большая активность диска (с использованием sar -b и sar -d):

05:46:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
05:46:01 PM    246.26      1.85    244.41    141.65  10524.53

05:58:01 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
05:46:01 PM    dev8-0    246.26    141.65  10524.53     43.31      0.09      0.38      0.16      3.92

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

iotop - это поможет вам определить процесс, а затем вы сможете использовать lsof -c <process> чтобы перечислить все открытые файловые дескрипторы, открытые процессом. Или вы можете strace процесс, чтобы увидеть все текущие системные вызовы низкого уровня.

Эти утилиты предназначены не для мониторинга, а для расследования в реальном времени. Вам нужно будет реализовать надлежащий мониторинг, если вам нужно увидеть также некоторые исторические ценности.

Персональная рекомендация:

Sysdig (облако) - https://github.com/draios/sysdig/wiki/Sysdig-Examples#disk:

  • См. Основные процессы с точки зрения использования пропускной способности диска

    sysdig -c topprocs_file
    
  • Перечислите процессы, использующие большое количество файлов

    sysdig -c fdcount_by proc.name "fd.type=file"
    
  • Посмотрите на самые популярные файлы по количеству байтов чтения + записи

    sysdig -c topfiles_bytes
    
  • Распечатайте самые популярные файлы, которые apache читал или записывал в

    sysdig -c topfiles_bytes proc.name=httpd