Quanto tempo ci vuole per ascoltare un volume?


9

Stiamo gestendo un sito Web che attualmente offre 3-5 milioni di pagine visualizzate. Il nostro sito è un sito di condivisione di file e quindi contiene 250.000 file e poche migliaia di collegamenti simbolici.

Il disco rigido è un disco SATA da 1500 GB.

Usando hdparmabbiamo scoperto che la nostra velocità del disco rigido è stata ridotta a 15-20 MB / s, che era 80 MB / s.

Quindi ora vogliamo correre fsckper risolvere il problema del disco.

  1. Sarà fsckrisolverà questo problema?
  2. Quanto tempo ci fsckvorrà per completare (vogliamo solo calcolare i tempi di inattività che avremo)?

Quale filesystem stai usando? È un array RAID o un semplice disco SATA?
Kyle Smith,

il semplice disco e file system SATA è ext3
khizar ansari

11
Perché esegui un server Web di produzione su un singolo disco? I server con dischi singoli non sono server: fanno scattare bombe a tempo.
Evan Anderson,

3
Sembra che quel disco stia morendo. Esegui immediatamente la migrazione dei tuoi dati (su un vero array RAID con un controller supportato da batteria hardware).
Joel E Salas,

Risposte:


8

Il degrado della velocità è prevedibile all'aumentare del numero di file a cui si accede contemporaneamente. Alle unità a disco rigido non piace accedere in parallelo: ogni volta che la testina di lettura / scrittura deve cambiare i cilindri perdi diversi millisecondi. Anche se due file si trovano sullo stesso cilindro o anche sulla stessa traccia, potrebbe essere necessario attendere una rotazione per spostarsi da uno all'altro. Se si misura la prestazione dell'unità in megabit al secondo, si prevede che diminuisca in modo esponenziale all'aumentare dell'accesso parallelo.

fsck non aiuta in questo: ripara solo i danni alla struttura delle directory, non esegue alcuna ottimizzazione.

La soluzione ideale sarebbe quella di passare allo storage a stato solido poiché questo non ha alcun limite fisico dei piatti rotanti. Ma è probabilmente un costo proibitivo.

Il prossimo passo sarebbe usare un RAID ottimizzato per l'accesso parallelo. Tieni presente che i RAID possono essere configurati per molti diversi profili delle prestazioni, quindi dovrai dedicare un po 'di tempo per apprendere le impostazioni di qualsiasi hardware e driver RAID.

Potrebbe essere possibile ridurre il problema utilizzando la memorizzazione nella cache del filesystem aggressivo. Se il tuo sistema ha RAM sufficiente, Linux dovrebbe già farlo abbastanza bene. Esegui un programma come topper vedere quanta RAM libera c'è. Ma se i file più comunemente utilizzati non si adattano alla RAM (o alla RAM che è probabile che tu acquisisca), questo non sarà di grande aiuto.

La soluzione di un povero sarebbe quella di dividere i file tra diversi dischi rigidi fisici (non solo partizioni diverse sulla stessa unità). Questa non è davvero una soluzione scalabile a lungo termine e finirebbe per costarti più di un RAID decente. Ma potrebbe essere una soluzione rapida se hai unità in giro.

Per qualsiasi soluzione che coinvolga unità a disco rigido, assicurarsi che abbiano una velocità di rotazione rapida e una latenza di ricerca bassa.

Ho scritto un articolo con alcune informazioni generali sulle prestazioni del disco rigido qui:

Suggerimenti UNIX - File system


Non vedo che il suo hdparmbenchmark abbia molto a che fare con l '"accesso parallelo". Mi sembra di più, come se avesse un disco guasto. Era più veloce in passato e ora non lo è. Probabilmente perché sta trasferendo settori.
Evan Anderson,

Questa è certamente una possibilità, anche se penso che il trasferimento su quella scala produrrebbe alcuni errori I / O. Sulla base della baseline molto lenta di 80 megabit al secondo, supponevo che il test fosse eseguito su un sistema attivo. Quindi ... ci sono errori I / O nel registro di sistema, come sono stati hdparmeseguiti i test ed i risultati sono stati in "megabit" o "megabyte" al secondo?
Seth Noble,

3

Mi aspetterei 5 ore per il completamento di fsck.

Vorrei invece considerare (ciò significa: test, testing e testing) una migrazione verso reiserfs.


2
  1. No (fsck può correggere metadati di filesystem danneggiati, non un disco rotto, né uno strumento di deframmentazione).
  2. Dipende dal filesystem. Con ext3, estremamente lungo, riserverei diverse ore. I filesystem più moderni come ext4 o xfs possono essere facilmente più veloci di un ordine di grandezza.

1

hdparm esegue una lettura sequenziale. Il disco del tuo server di file dovrebbe fare molta ricerca, come hanno detto gli altri.

Se ricevi errori HD, dovrebbero apparire nel tuo / var / log / da qualche parte.

Perché non provi "smartctl -t short / dev / sda" e poi "smartctl -t long / dev / sda" ?? ... Con la maggior parte del nuovo HDD, puoi emettere questo comando anche quando usi l'HD . Smart ti darà alcuni risultati. Puoi leggere la tua salute dell'HDD usando "smartctl --all / dev / sda" ..

Se stai inviando un hdparm all'HDD montato con accesso simultaneo, questa potrebbe essere la risposta al perché i tuoi risultati sono molto meno di prima.

Dovrei spostare i tuoi dati su una configurazione RAID al più presto.

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.