Come testare la velocità del disco e la RAM del tuo server Linux

Contenuti

installazione su rack del server

Se scrivi o leggi file regolarmente, la velocità del tuo disco può influenzare le prestazioni del tuo server. Ti mostreremo come misurare la velocità del tuo server e capire come si confronta con la concorrenza.

Come si misurano le prestazioni IO??

Esistono molti modi diversi per leggere e scrivere i dischi, por lo que no existe un número único para la “velocità” que pueda medir.

Il modo più semplice per misurare le prestazioni è misurare il tempo necessario per leggere file di grandi dimensioni o eseguire copie di file di grandi dimensioni. Questo misura la velocità di lettura e scrittura sequenziale, che è una buona metrica da conoscere, ma raramente vedrai velocità così elevate in pratica, soprattutto in un ambiente server.

Una metrica migliore è la velocità di accesso casuale, che misura la velocità con cui puoi entrare nei file archiviati in blocchi casuali, molto più imitando l'uso del mondo reale.

Elenco delle velocità di lettura e scrittura.

Gli SSD in genere hanno velocità di accesso casuale elevate rispetto ai dischi rigidi, che li rende molto più adatti per un uso generale. I dischi rigidi hanno ancora velocità di lettura e scrittura sequenziali decenti, che li rende utili per l'archiviazione e il recupero dei dati.

Nonostante questo, le prestazioni del disco potrebbero non avere molta importanza per determinati carichi di lavoro. Molte applicazioni memorizzano nella cache gli oggetti (se hai abbastanza RAM), quindi la prossima volta che vuoi leggere quell'oggetto, verrà letto dalla memoria (che è più veloce). Nonostante questo, per carichi di lavoro ad alta intensità di scrittura, il disco deve ancora essere inserito.

La velocità viene spesso misurata in MB / S, ma alcuni fornitori possono misurare su IOPS (operazioni di input / uscita al secondo). Questo è semplicemente un numero più grande che significa la stessa cosa.; può scoprire cosa MB IOPS / s con questa formula:

IOPS = (MBps / Misura del blocco) * 1024

Nonostante questo, alcuni fornitori potrebbero non fare un buon lavoro nel dirti quale benchmark usano per misurare IOPS, quindi è bene che tu lo faccia da solo.

Installa fio per leggere i test / scrittura casuale

Anche se Linux ha built-in dd , che può essere utilizzato per misurare le prestazioni di scrittura sequenziale, non indicativo di come si comporterà sotto stress del mondo reale. Anziché, ti consigliamo di testare la tua velocità di lettura e scrittura casuale.

fio è un'utilità in grado di gestire questo. Installalo dal gestore di pacchetti della tua distribuzione:

sudo apt-get install fio

Successivamente, esegui un test di base con il seguente comando:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M -- readwrite=randrw --rwmixread=80

Questo esegue test di lettura e scrittura casuali usando 250 MB di dati, in un rapporto di 80% dalle letture a 20% di atti. I risultati verranno visualizzati in termini di IOPS e MB / S:

Il test sopra è stato eseguito su un AWS gp2 SSD, un SSD abbastanza mediocre, mostrando una performance abbastanza nella media. Le prestazioni in scrittura saranno sempre inferiori con qualsiasi tipo di E / S; molti SSD e HDD hanno una memoria cache integrata per l'utilizzo da parte del controller dell'unità, il che rende molte letture abbastanza veloci. Nonostante questo, ogni volta che scrivo, è necessario apportare modifiche fisiche all'unità, che è più lento.

L'esecuzione del test su un disco rigido mostra prestazioni E scadenti / Misti casuali, che è un ostacolo comune con i dischi rigidi:

risultati del test del disco rigido fio

Nonostante questo, i dischi rigidi vengono regolarmente utilizzati per letture e scritture sequenziali di grandi dimensioni, quindi un test E / Random S non corrisponde al caso d'uso qui. Se vuoi cambiare il tipo di test, puoi passare un argomento diverso a --readwrite. fio supporta molti test diversi:

  • Lettura sequenziale: seqread
  • Scrittura sequenziale:seqwrite
  • Lettura casuale: randread
  • Scrittura casuale: randwrite
  • IO misto casuale: randrw

Allo stesso tempo, puoi ridimensionare il blocco con il --bs discussione. Lo impostiamo su 4K, che è abbastanza standard per i test casuali, ma letture e scritture sequenziali possono mostrare prestazioni migliori o peggiori con blocchi di dimensioni maggiori. Le dimensioni di 16 KB a 32 KB potrebbe essere più vicino a quello che troverai sotto carico effettivo.

Test delle prestazioni della memoria

fio non è possibile testare la velocità della ram, quindi se vuoi confrontare la RAM del tuo server, deve installare sysbench dal gestore di pacchetti della tua distribuzione:

sudo apt-get install sysbench

Questo pacchetto può confrontare molte metriche sulle prestazioni, ma ci concentriamo solo sul test della memoria. Il seguente comando assegna 1 MB di RAM, quindi esegue operazioni di scrittura fino a quando non ha scritto 10 GB di dati (Non preoccuparti, non ha bisogno 10 GB di RAM per eseguire questo benchmark).

sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run

Questo mostrerà la velocità della memoria in MiB / S, così come la latenza di accesso ad esso associata.

Risultati dei test di velocità della memoria in MiB / S, così come la latenza di accesso ad esso associata.

Questo test misura la velocità di scrittura, ma puoi aggiungere --memory-oper=read per misurare la velocità di lettura, che dovrebbe essere un po' più alto per la maggior parte del tempo. Puoi anche provare blocchi di dimensioni più piccole, cosa mette più pressione sulla memoria.

Nonostante questo, realisticamente, la maggior parte della RAM sarà sufficiente per eseguire qualsiasi cosa, e in generale sarà più limitato dalla quantità di RAM che dalla velocità effettiva.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.