Як знайти, який процес регулярно записується на диск?


41

Як я можу знайти, який процес постійно записується на диск?

Мені подобається, що моя робоча станція є близькою до безшумної, і я просто будую нову систему (P8B75-M + Core i5 3450s - 's', тому що вона має менший TDP) з тихими вентиляторами і т.д. на цьому.

І щось у мене на нерві: я чую якусь схему, як якщо б жорсткий диск писав або шукав щось ( тик ... галочку ... галочку ... trrrrrr промити та повторити кожну секунду чи так).

У минулому я мав подібну проблему в минулому (багато, багато років тому), і виявилося, що це якийсь журнал CUPS або щось таке, і я просто перенаправив цю (не важливу) реєстрацію на (реальний) диск ОЗУ.

Але тут я не впевнений.

Я спробував таке:

ls -lR /var/log > /tmp/a.tmp && sleep 5 && ls -lR /var/log > /tmp/b.tmp && diff /tmp/?.tmp

але там нічого не змінюється.

Тепер дивна річ у тому, що я також чую схему, коли відображається підказка просити мене ввести свою парольну фразу для розшифровки LVM.

Можливо, це щось у ядрі / системі, яку я щойно встановив, або у мене несправний жорсткий диск?

hdparm -tT /dev/sda повідомте про правильну швидкість HD (130 Гб / с без кешування, sata 6 ГБ), і я вже встановив і компілював з великих джерел (Emacs) без проблем, тому я не думаю, що система погана.

(HD - Seagate Barracude 500GB)


Ви впевнені, що цей шум видає шум, а не щось інше? (Перевірте вентилятори, включаючи вентилятор блоку живлення. Колись дуже дивні шум клацання, коли дуже тонкий кабель був занадто близько до вентилятора, а іноді дуже злегка торкався лез і відскакував на кілька «клацань» ...)
мат

@Mat: я вийму жорсткий диск поза корпусом (роз'єми повинні бути досить довгими), щоб бути впевненим, і я звітую про це; )
Седрік Мартін

2
Переконайтесь, що ваші дискові файлові системи встановлені в режимі реального часу чи часу. Читання файлів може спричиняти записи в inodes для запису часу доступу.
camh

Відповіді:


43

Ви спробували вивчити, які програми iotopпоказують? Він точно підкаже, який процес зараз записується на диск.

Приклад виведення:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
 1033 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [flush-8:0]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]

1
дякую за цю пораду. Я не знав про iotop . У Debian я зробив apt-кеш-пошук iotop, щоб дізнатися, що мені потрібно apt-get iotop . Дуже класна команда!
Седрік Мартін

3
Я використовую, iotop -o -b -d 10кожні 10 секунд друкує список процесів, які читають / записують на диск, і кількість використовуваної пропускної здатності IO.
ndemou

15

Ви можете ввімкнути налагодження IO через, echo 1 > /proc/sys/vm/block_dumpа потім переглянути повідомлення про налагодження в / var / log / syslog . Це має перевагу в отриманні певного типу журналу з минулою діяльністю, тоді як iotopвідображається лише поточна активність.


4
Абсолютно божевільним залишається активація системного блоку, коли активний блок_dump. Ведення журналу спричиняє активність на диску, що призводить до ведення журналів, що призводить до активності диска тощо. Краще зупиніть syslog, перш ніж увімкнути це (і використовувати dmesg для читання повідомлень)
dan3

Ви абсолютно праві, хоча ефект не такий драматичний, як ви описуєте його. Якщо ви просто хочете коротко заглянути в активність на диску, не потрібно зупиняти демон демона syslog.
scai

Я спробував це близько 2 років тому, і це зупинило мою машину. Одного дня, коли у мене нічого важливого не буде, я спробую його знову :)
dan3

Я спробував це, нічого насправді не сталося. Особливо через буферизацію файлової системи. Запис у syslog не відразу викликає запис на диск.
scai

1
Я б припустив, що існує обмеження загальної ставки для місцевих повідомлень журналу, яке також обробляє цей випадок (?)
Volker Siegel

5

Якщо припустити, що шум на диску відбувається через процес, що викликає запис, а не якусь проблему з поверненням диска , ви можете використовувати підсистему аудиту (встановити auditdпакет ). Поставте годинник на syncдзвінки та його друзів:

auditctl -S sync -S fsync -S fdatasync -a exit,always

Слідкуйте за журналами /var/log/audit/audit.log. Будьте обережні, щоб цього не зробити, якщо журнали аудиту будуть розмиті! Переконайтеся, /etc/auditd.confщо для цього flushпараметра встановлено значення none.

Якщо файли часто видаляються, ймовірним винуватцем є системні журнали. Наприклад, якщо ви зареєстрували невдалі спроби вхідного з'єднання і хтось пробує ваш апарат, це створить багато записів; це може призвести до того, що диск видає шум у стилі кулемета. За допомогою базового sysklogd демона журналу перевірте /etc/syslog.conf: якщо ім'я файлу журналу не передує -, то цей журнал видаляється на диск після кожного запису.


@StephenKitt Huh. Ні. Автор запитував Debian, тому я змінив його на посилання на пакет Debian.
Жил "ТАК - перестань бути злим"

3

Можливо, ваші накопичувачі автоматично відкручуються, в наші дні це робить багато споживачів. На жаль, навіть у незначно завантаженій системі це призводить до того, що накопичувачі постійно обертаються вниз, а потім знову повертаються вгору, особливо якщо ви використовуєте hddtemp або подібне для контролю температури приводу (більшість дисків тупо не дозволяють запитувати значення SMART температури не обертаючи приводу - крейдотно!).

Це не тільки дратує, воно може швидше зношувати накопичувачі, оскільки багато дисків мають лише обмежену кількість паркових циклів. наприклад, див. https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/952556 для опису проблеми.

Я вимикаю простої закрутки на всіх своїх дисках із наступним бітом коду оболонки. ви можете помістити його в /etc/rc.boot сценарій, або в /etc/rc.local або подібне.

для диска в / dev / sd? ; робити
  / sbin / hdparm -q -S 0 "$ диск"
зроблено

2
що ви не можете запитувати показання SMART без закручування накопичувача, залишає мене безмовною: - / Очевидно, що питання "відкручування вниз" може стати досить складним. Щодо відключення відкручування вниз: чи не це само по собі призведе до швидшого зносу HD? Я маю на увазі: це ніколи не «відпочиває», доки система вмикається?
Седрік Мартін

IIRC, ви можете запитувати деякі значення SMART, не спричиняючи накопичувач накопичувача, але температура не є жодною з них на жодному з перевірених нами дисків (включаючи моделі WD, Seagate, Samsung, Hitachi). Це, звичайно, божевільно, оскільки стурбованість температурою є однією з причин простою приводу. re: знос: AIUI 1. постійна швидкість менше зносу, ніж швидкість зміни. 2. накопичувачі повинні припаркувати голови в безпечній зоні, а привід оцінюється так багато разів (IIRC до декількох сотень тисяч - легко перевищується, якщо привід працює на холостому ходу і крутиться кожні кілька секунд)
cas

Триває суперечка щодо того, чи краще залишити диски працюючими або відкрутити їх. Особисто я вважаю, що найкраще залишати їх працювати - я вимикаю комп’ютер вночі, і коли я виходжу, окрім цього, я ніколи не відкручую свої накопичувачі. Деякі люди вважають за краще відкручувати їх, скажімо, вночі, якщо вони залишають комп'ютер увімкненим або якщо він не працює в режимі очікування на тривалий час, і в таких випадках перевага відкручувати їх на кілька годин проти того, щоб залишити їх працювати . Що ніколи не буває добре, коли жорсткий диск за короткий проміжок часу багато разів повторюється вниз і знову
Мішель Джонсон

Зауважте також, що віджимання приводу після простою протягом декількох годин є трохи нерозумним, тому що якщо він простоює кілька годин, то, швидше за все, його знову використовуватимуть протягом години. У такому випадку, здавалося б, краще негайно відкрутити привід, якщо він працює в режимі очікування (наприклад, протягом 10 хвилин), але також можливо, щоб накопичувач простоював протягом декількох хвилин, коли хтось користується комп'ютером і, швидше за все, це буде потрібно незабаром знову привід.
Мішель Джонсон

Я подумав, що це вирішить мою проблему, коли я чую, як привід видає періодичний звук клацання (3-4 рази в секунду), як він пише, навіть коли він не встановлений! Але я все одно чую шум після запуску цієї команди. Турбує, що це диск, який я використовую для резервного копіювання внутрішнього SSD ...
Майкл

1

Я щойно виявив, що смарт-телефон спричиняє, щоб зовнішній диск USB знову і знову обертався на моєму малиновому пі. Хоча SMART - це взагалі гарна річ, я вирішив її знову відключити, і з тих пір, здається, небажана дискова діяльність припинилася


Ви можете налаштувати розумний демон не сканувати USB-диски, більшість хороших дистрибутивів Linux це роблять за замовчуванням.
lzap

1

Ви можете трохи почекати на цьому. Слід звузити його більшість.

find / -mount -newer /proc -print

Надайте файли модифіковані після завантаження на фізичному пристрої системи / files. Знання файлів, ймовірно, допоможе визначити письменника.


1

Якщо вам потрібно звузити його до точного диска, використовуйте наступне:

запустіть lsblkі знайдіть номер пристрою. У випадку, що нижче9:126

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdb           8:16   0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdc           8:32   0   7.3T  0 disk  
└─sdc1        8:33   0   7.3T  0 part  /mnt/InternalFBE

запустіть lsof | grep '9,126'із :заміною ,порівняно з вищевказаним номером диска. У моєму випадку це відображається як:

bash      389162            root  cwd       DIR              9,126      4096  449183796 /mnt/InternalPhase/0000000001/CHANNEL01/LIVE/PHASE/DATA/2018/10/04

з PID 389162вбити цей процес, використовуючи:

kill -9 389162

-1

Проблема полягає в тому, що системі потрібно за замовчуванням передавати дані з дискових буферів на диск будь-коли 5 секунд. Таким чином, якщо диск все-таки відкручується, не буде іншої можливості, крім того, щоб повернути його назад, коли це має відбутися флеш. Таким чином, проблеми насправді не уникнути, окрім відключення поворотів або взагалі функцій керування живленням диска hdparm -B 255 /dev/hdax. Це, мабуть, кращий варіант, оскільки перезапуск настільки часто, безумовно, може бути більш згубним, ніж просто залишатися весь час.


1
Він збирається видаляти дані лише в тому випадку, якщо є якісь дані. Якщо диск насправді не використовується, то не буде жодних буферизованих даних для сплеску.
Мішель Джонсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.