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)
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]
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.
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
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.
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
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