Newsgroup: it.comp.os.linux.ubuntu
Titolo: Load average alle stelle quando scrivo su disco

Ciao a tutti.
Uso una Ubuntu Lucid. Da un po' di tempo a questa parte ho alcuni
problemi quando il sistema va ad utilizzare il disco in scrittura con
file grandi (leggi come centinaia di mega).
Il disco è un sata da 250GB, la partizione una ext3.
Il kernel è 
Linux lucidluke 2.6.32-24-generic-pae #41-Ubuntu SMP Thu Aug 19 02:43:57
UTC 2010 i686 GNU/Linux
(output da uname -a)
Quando vado a fare un'operazione di scrittura di un file grosso (che sia
una compressione, decompressione, copia, poco importa), il sistema
schizza in su come load average (supera anche il valore 6) e tutto il
sistema si inchioda.
Da dmesg non mi sembra di vedere cose strane (nessun errore evidente sul
bus sata), e hdparm mi restituisce dei valori realistici sulle velocità
di accesso (1.2GB/s per la modalità cached, 63 MB/s per quella buffered). 
Non mi sembra di aver toccato nulla di particolare (lo so che questa
frase può significare tutto e niente :-) ).
Qualche idea su cosa posso cercare per capirne la causa?
La modalità compatible per il controller SATA è disabilitata, poiché uso
solo Linux.
Altre ricerche che ho fatto non hanno portato a risultati.
TIA

 sistema si inchioda.
dovresti dirci i parametri di mount della partizione. Quelli che sono
presenti in fstab.
p.s.: prendi in  considerazione anche l'idea di migrare a ext4. La
migrazione può essere fatta senza formattare (cerca qualche howto a
riguardo).
-- 
Wikipedia Admin: "wikipedia non è un blog"
Iosif Stalin: "i compagni hanno scambiato il partito per un circolo di
discussione"

 
La riga in fstab è questa
UUID=e7d727f3-d61c-426e-8371-283567895ef9 /               ext3   
errors=remount-ro 0       1
quella reperibile dal comando mount è invece
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
Non ho utilizzato impostazioni particolari.
A memoria non mi sembra che al momento dell'installazione (circa
maggio/giugno di quest'anno) ci fossero questi problemi di velocità
DB

 
capisco, però devi procedere un po' per tentativi.
Puoi usare l'opzione "noatime" o "relatime", in questo modo:
UUID=e7d727f3-d61c-42.... /   ext3 errors=remount-ro,relatime 0 1
Dopo puoi:
- installare 'atop'. quindi digiti atop e premi il taso 'd' per vedere
  quale software rompe le scatole.
- installare smartmontools e vedere se trovi strani messaggi nei log.
  Smaartd invia pure una mail in caso di problemi. 


 
ok.
domani provo e verifico un po'
nel frattempo ti ringrazio.
DB

 
Fatto ora, non potevo aspettare.
il relatime non ha cambiato la situazione.
Con atop vedo che il disco è scarico. Quando faccio la copy di un file da più di
200MB (la iso di ubuntu), vedo una riga rossa sul drive e 99% di occupazione del
disco, e il loadaverage s'impenna.
Quando interrompo il comando, il sistema torna a rispondere.
Ho poi lanciato smartctl -a per avere tutte le info.
Queste righe non promettono nulla di buono, giusto?
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED 
WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   117   099   006    Pre-fail  Always       -
      118211107
  3 Spin_Up_Time            0x0003   098   098   000    Pre-fail  Always       -
      0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -
      1244
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -
      0
  7 Seek_Error_Rate         0x000f   075   060   030    Pre-fail  Always       -
      34446196
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -
      2177
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -
      0
 12 Power_Cycle_Count       0x0032   099   099   020    Old_age   Always       -
      1240
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -
      0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -
      0
188 Unknown_Attribute       0x0032   100   099   000    Old_age   Always       -
      4295032979
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -
      0
190 Airflow_Temperature_Cel 0x0022   060   052   045    Old_age   Always       -
      40 (Lifetime Min/Max 24/44)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -
      89
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -
      14
193 Load_Cycle_Count        0x0032   071   071   000    Old_age   Always       -
      59662
194 Temperature_Celsius     0x0022   040   048   000    Old_age   Always       -
      40 (0 15 0 0)
195 Hardware_ECC_Recovered  0x001a   054   043   000    Old_age   Always       -
      118211107
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -
      0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -
      0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -
      0
Non so bene che età abbia l'hard disk (non è quello originale del pc, l'ho
recuperato da un portatile che mi hanno regalato a cui era deceduto il monitor),
ma se non leggo male sembra che sia vicino alla fine del suo ciclo vitale.
Se mi confermi la diagnosi, comprerò asap un nuovo disco.
Fortunatamente ho un backup giornaliero dell'intero sistema (forse un po'
eccessivo, ma preferisco "buttare" 500GB in backup piuttosto che il sistema
intero per mancanza di backup).
DB

 Always       - 118211107
ahiahiahi .... da me in quella riga riporta 0
A questo punto controlla cavo e disco.
Se hai settori dove non è possibile scrivere smartd lo scriverà nei log
e ti invierà una mail.


 
It might be a good idea to do the test again but this time run
	smartctl -A
before and after the test. Compare the outputs and see if you got a 
large number of soft (corrected) read or seek errors. If so it may be 
time to think of replacing the disk.


 
Per il cavo sarà un po' difficile, trattandosi di un portatile.
Per il disco ...
Domanda veloce: questi contatori si riferiscono a errori "interni" del disco,
cioé originati e rilevati nel e dal disco stesso o possono dipendere anche dal
sistema a cui il disco è collegato?
Perché trattandosi di un disco recuperato da un portatile danneggiato (era
danneggiato il monitor, ma a questo punto inizio a temere che ci fosse anche
qualcos'altro), gli errori potrebbero essere schizzati a causa del vecchio sistema. 
Oggi vado comunque a prendere un nuovo disco.
Poche decine di euro non sono, per fortuna, un problema, specie se paragonate al
tempo che dovrei perdere in caso di un recupero di emergenza.
Tnx

 
Gotcha.
Nuovo hard disk, sto arrivando :-)

199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -      0
Quelli che contano sono quelli sopra.  Gli ultimi tre dicono che va
tutto bene.  Il primo dà un numero nmotevole di soft errors, cioè errori
abbastanza piccoli da poter essere corretti dal codice di correzione.  A
dir la verità non so se c'è da ritenere che siano troppi, prova a fare
qualche ricerca sull'argomento.

 ha scritto:

Grazie.
Per il momento ho deciso di andare sul sicuro (se questo non funziona, cambierò
direttamente il portatile :-) ).
Ho preso un disco nuovo e sto riversando tutto il sistema sul nuovo disco.
Sono al quasi al 20% del lavoro, con un load average al 3 e transfer rate che
vanno da 1MB/s a 25MB/s nella lettura rispettivamente di file piccoli (500MB
solo di thumbnails O_o ) e di file grandi.
Appena messo in sicurezza il portatile con il nuovo disco, mi dedicherò, forse,
all'analisi.
Grazie

 Quelli che contano sono quelli sopra. 
però io non capisco una cosa:
Errori: 118211107
Errori corretti: 118211107
Cioè, ci sono gli errori, però sono stati corretti tutti. Quindi per il
momento non sembrano essere settori danneggiati.
p.s.: il problema è che pure io ho errori simili in uno dei due dischi
del mio RAID1 (che per fortuna è RAID così dormo sonni più tranquilli).


del mio RAID1 (che per fortuna è RAID così dormo sonni più tranquilli).
Prova a leggere il resto del mio messaggio :)

:

ya, right!


 
Inizio a sospettare di non aver capito molto e di essere andato un po' in
confusione.
I dati recuperati dallo smart da dove vengono?
Perché la situazione curiosa è che ho cambiato disco, ho preso un 500GB
(comperato con un guscio USB), e ci ho riversato su tutto il mio vecchio sistema.
Stavolta il disco è nuovo (oppure il produttore dei dischi esterni USB spaccia
dischi usati, ma non credo).
Lancio ancora smartctl -a e trovo ... praticamente gli stessi dati.
A questo punto i casi sono 2:
1) i dati in questione non dipendono dal disco (ma mi sembrerebbe assurdo)
2) HP (è un portatile HP) fa con i dischi lo stesso gioco che fa con la batteria
che da 3200mAh viene riconosciuta come 2000mAh (non come ultimo livello di
carica, ma proprio come capacità di targa), e come fanno molti produttori di
stampanti: passato un certo tempo inquina i dati.
Mi verrebbe da pensare anche che il disco manda dati avariati, ma due dischi
(seppure della stessa marca, manco farlo apposta) di cui uno nuovo ... 
E il problema del load average alto rimane.
Trattandosi di un portatile mi risulta molto difficile verificare la connessione
tra l'hard disk e il controller sata sulla mobo. Il connettore è direttamente
sulla mobo.
Pessimismo e fastidio.
:-(
DB

Lancio ancora smartctl -a e trovo ... praticamente gli stessi dati.
Mah, come ti dicevo non so se i dati che hai mandato prima sono
anomali.  Forse è normale, ti sei informato come ti suggerivo?

 
Nei prossimi giorni vedo di indagare sul significato dei singoli valori, ma non
sono più convinto della loro affidabilità.
Vedere "Disco vecchio" o "pre-fail" su un disco nuovo, e gli stessi dati a
prescindere dal disco mi fa realmente dubitare che smart stia lavorando
correttamente. (o al limite che il front-end stia interpretando i dati
correttamente)
Anche i test del disco non rilevavano anomalie.
Dal cambio disco la situazione sembra un po' migliorata (ho un load average
inferiore a 2 adesso).
Domanda: potrebbe essere semplicemente perché il disco di prima era pieno in
media per l'85% (200GB su circa 230, ma ho anche riempito il disco in modo
completo un paio di volte)?
Adesso sono sotto al 50% di utilizzo, avendo raddoppiato la capacità.
Diciamo che ho il backup giornaliero del sistema (quindi al limite mi perdo una
sola giornata), per ora considero conclusa la questione.
Grazie a tutti per le info.
DB

 disco in modo completo un paio di volte)?
Un filesystem quasi pieno è soggetto a frammentazione.
Con ext2 era matematico, poiché i nuovi dati andavano a scovrascrivere
gli offset. Con ext3/ext4 non conosco bene il meccanismo.
Comunque, offset o non offset, in un filesystem quasi pieno le
difficoltà a trovare settori contigui sono maggiori è la frammentazione
è logico che avvenga.


completo un paio di volte)?
Non lo so.  In linea di principio potrebbe essere eccessivamente
frammentato visto che era stato riempito, ma che io sappia di solito non
è un problema.