Riduzione massiccia e imprevedibile delle prestazioni di I / O in Linux


11

Sto usando i test Debian senza problemi per ~ 6 anni (lo sto solo aggiornando regolarmente), ma recentemente ha iniziato a mostrare un comportamento casuale che può essere riassunto come "Prestazioni di I / O basse che persistono fino al riavvio".

Il problema è che improvvisamente tutte le letture e le scritture del disco rallentano a ~ 5 MB / sec, il che si traduce in continue letture e scritture. Poiché la velocità è così bassa, i dischi non sono sottoposti a problemi meccanici o stressati, ma tutto rallenta fino al riavvio.

Il sottosistema I / O del computer è costituito da un SSD OCZ Vertex 3 e due HDD WD Caviar Black. SSD detiene parte pesante del sistema operativo e una partizione sull'HDD detiene il resto.

Per diagnosticare il problema ho provato quanto segue senza successo:

  • top non mostra alcuna attività in fuga né nell'uso della CPU né dell'I / O.
  • hdparmrestituisce le normali valutazioni delle prestazioni dei dischi (ho controllato solo -tperò).
  • smartctlnon mostra alcun problema di prestazioni nei dischi. Test lunghi hanno dimostrato che i dischi sono come nuovi.

Il sistema ha un chipset Z77, 16 GB di RAM e CPU Intel i7 3770K e le statistiche non mostrano segni di saturazione in RAM, I / O o CPU, ma non ho esperienza di debug di problemi come questo (specialmente nello spazio del kernel). Qualsiasi aiuto sarà apprezzato.

Aggiornamento 1:

  • Ho eseguito (forzato) fsck su ogni partizione per precauzione. Tutte le FS sono pulite.
  • Per inciso ho trovato un aggiornamento del BIOS che è uscito un mese fa e l'ho applicato.
  • Nessuna partizione è riempita per più del 50%.

Aggiornamento 2:

Il problema non si presenta per due giorni. L' fsckaggiornamento del BIOS ha eliminato alcuni zoccoli nel sistema. Sto ancora monitorando il problema e chiuderò la domanda con una risposta post mortem.

Aggiornamento 3:

Il problema è riemerso e ho scavato un po 'di più. Vedi la risposta


1
potrebbe essere un problema di frammentazione atopche ti direbbe quanto sono occupati i dischi (come quando cerchi sempre).
Stéphane Chazelas,

1
Solo per escludere alcune stranezze, disabilitare NCQ e impostare lo scheduler I / O su noop.
frostschutz,

1
"Prestazioni di I / O basse che persistono fino al riavvio" può essere un dispositivo guasto / difettoso che si blocca troppo spesso per troppo tempo, il che è stranamente difficile da diagnosticare se non si sostituisce l'hardware.
msw,

1
Quindi la prossima cosa da controllare sarebbe controllare i log per errori e controllare che ci sia molta memoria allocata ai buffer / cache (vedi output di free)
symcbean

1
Potresti essere in grado di vedere iowaitecc se stai raccogliendo dati sar. Abiliterei sysstatse non fosse già in esecuzione. Puoi controllare con la sar -Amaggior parte delle piattaforme intervalli di campionamento di dieci minuti.
Bratchley,

Risposte:


12

Sono riuscito a riprodurre nuovamente il problema ed è stato il risultato di una grande cache del disco. La cache del mio disco può crescere di oltre 8 GB e sembra che ad alcune applicazioni non piaccia e che soffra l'I / O.

Eliminare la cache del disco con echo 3 > /proc/sys/vm/drop_cachesil problema come rimedio root. Al momento non so perché grandi cache del disco causino questo degrado I / O.

Ultimo aggiornamento: dopo ulteriori indagini ho scoperto che il numero di file nella cache stava innescando il problema. Stava distruggendo i dischi mentre cercava di eseguire il commit di molti piccoli file sul disco. Da quando uso il sistema da dieci anni, ho fatto il grande passo e reinstallato con Debian a 64 bit. Ora funziona senza problemi. Probabilmente è stato un effetto collaterale di dieci anni di aggiornamento con la ricerca di limiti del sistema operativo a 32 bit.


2

Ci sono messaggi sospetti in dmesg?

Alcuni altri strumenti che potresti provare per ottenere alcuni approfondimenti sui colli di bottiglia del tuo sistema:

  • dstat
  • latencytop
  • sysprof

Niente di sospetto in nessun registro. TBH nessuna voce di registro relativa a questo problema. Proverò comunque gli strumenti. Non ci dovrebbe essere un collo di bottiglia in un PC di fascia alta mentre si è inattivi senza nulla in esecuzione su di esso. Penso che una cache o qualcosa relativa al sottosistema I / O vada storto.
Bayindirh

.... e iotop, fio
symcbean,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.