it-swarm-eu.dev

Jak zjistit, který proces se pravidelně zapisuje na disk?

Jak zjistím, který proces neustále zapisuje na disk?

Líbí se mi, že moje pracovní stanice je tichá a právě buduji nový systém (P8B75-M + Core i5 3450s - 's', protože má nižší maximální TDP) s tichými ventilátory atd. A nainstaloval jsem 64bitový Debian Wheezy na to.

A něco se mi dostává do nervů: slyším nějaký vzorec, jako kdyby pevný disk psal nebo hledal něco (tick ... tick ... tick ... tick ... trrrrrr vypláchněte a opakujte každý sekunda).

V minulosti jsem měl podobný problém v minulosti (před mnoha, mnoha lety) a ukázalo se, že to byl nějaký protokol CUPS nebo něco a prostě jsem přesměroval ten (ne důležitý) záznam do (reálného) RAM disk.

Ale tady si nejsem jistý.

Vyzkoušel jsem následující:

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

ale nic se tam nemění.

Nyní je zvláštní, že slyším také vzorec, když se zobrazí výzva, která mě žádá o zadání mého hesla pro dešifrování LVM.

Mohlo by to být něco v jádře/systému, který jsem právě nainstaloval, nebo mám vadný pevný disk?

hdparm -tT /dev/sda nahlásit správnou rychlost HD (130 GB/s bez mezipaměti, sata 6 GB) a já jsem již nainstaloval a kompiloval z velkých zdrojů (Emacs) bez problémů, takže si nemyslím, že je systém špatný.

(HD je Seagate Barracude 500 GB)

44
Cedric Martin

Zkusili jste prozkoumat, jaké programy typu iotop se zobrazují? To vám přesně řekne, jaký proces právě zapisuje na disk.

příklad výstupu:

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]
43
mnmnc

Můžete povolit ladění IO ladění pomocí echo 1 > /proc/sys/vm/block_dump a pak sledujte ladicí zprávy v / var/log/syslog. Výhodou je získání určitého typu souboru protokolu s minulými aktivitami, zatímco iotop zobrazuje pouze aktuální aktivitu.

15
scai

Za předpokladu, že zvuky disku jsou způsobeny procesem způsobujícím zápis a nikoli nějaký problém se spindownem disk , můžete použít subsystém audit (nainstalovat auditd package ). Sledujte hovory sync a její přátele:

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

Sledujte protokoly /var/log/audit/audit.log. Dávejte pozor, abyste tak neučinili, pokud jsou protokoly auditu samotné proplachovány! Nahlásit /etc/auditd.conf že volba flush je nastavena na none.

Pokud jsou soubory vyprázdněny často, je pravděpodobným viníkem systémový protokol. Pokud například zaznamenáte neúspěšné pokusy o příchozí připojení a někdo sonduje vaše zařízení, bude vygenerováno mnoho položek; to může způsobit, že disk bude vydávat zvuky ve stylu kulometu. U základního logového démona sysklogd zaškrtněte /etc/syslog.conf: pokud názvu souboru protokolu nebude předcházet -, pak se protokol po každém zápisu vyprázdní na disk.

Může se jednat o to, že se vaše jednotky automaticky točí, v dnešní době to dělá spousta jednotek pro spotřebitele. Bohužel na mírně zatíženém systému to vede k tomu, že se disky neustále točí dolů a pak se točí znovu, zvláště pokud používáte hddtemp nebo podobné pro sledování teploty disku (většina disků hloupě vám nedovolí dotazovat SMART hodnota teploty bez roztočení pohonu - křehký!).

To není jen nepříjemné, může to rychlejší opotřebení pohonů, protože mnoho pohonů má pouze omezený počet parkovacích cyklů. např. Popis problému naleznete v části https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/952556 .

Zakážu naprázdno na všech discích pomocí následujícího kódu Shell. můžete to vložit do /etc/rc.boot skriptu, nebo do /etc/rc.local nebo podobně.

 pro disk v/dev/sd? ; do 
/sbin/hdparm -q-S 0 "$ disk" 
 hotovo 
4
cas

Můžete se na to trošku ponořit. Měl by to zúžit na většinu.

find / -mount -newer /proc -print

Poskytujte soubory upravené od spuštění na fyzickém zařízení systému souborů /. Znalost souborů pravděpodobně pomůže identifikovat spisovatele.

2
user190618

Zjistil jsem, že s.m.a.r.t způsobuje, že se externí disk USB znovu a znovu roztočí na Raspberry Pi. Přestože SMART je obecně dobrá věc, rozhodl jsem se ji znovu zakázat a od té doby se zdá, že nežádoucí činnost disku se zastavila

1
jro

V případě, že ji potřebujete zúžit na přesný disk, použijte následující postup:

spusťte lsblk a vyhledejte číslo zařízení. V níže uvedeném případě je to 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

spusťte lsof | grep '9,126' s : nahradit , ve srovnání s výše uvedeným číslem disku. V mém případě se to projeví jako:

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

s PID 389162 zabijte tento proces pomocí:

kill -9 389162
1