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

Di Barbara Molisano 7 minuti di lettura
come-testare-la-velocita-del-disco-e-della-ram-del-tuo-server-linux

Se scrivi o leggi regolarmente file, la velocità del tuo disco può influire sulle prestazioni del tuo server. Ti mostreremo come misurare la velocità del tuo server e come capire come si posiziona rispetto alla concorrenza.

Come vengono misurate le prestazioni IO? Esistono molti modi diversi per leggere e scrivere su dischi, quindi nessun numero singolo esiste per la “velocità” che puoi misurare.

Il modo più semplice per misurare le prestazioni è calcolare quanto tempo ci vuole 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 nella pratica, specialmente in un ambiente server.

Una metrica migliore è la velocità di accesso casuale, che misura la velocità con cui puoi accedere ai file archiviati in blocchi casuali, imitando molto di più l’utilizzo nel mondo reale.

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

Tuttavia, le prestazioni del disco potrebbe non essere molto importante per determinati carichi di lavoro. Molte applicazioni memorizzano nella cache oggetti in memoria (se hai abbastanza RAM), quindi la prossima volta che vuoi leggere quell’oggetto, verrà invece letto dalla memoria (che è più veloce). Tuttavia, per carichi di lavoro pesanti in scrittura, è comunque necessario accedere al disco.

La velocità viene spesso misurata in MB / s, ma alcuni provider può misurare in IOPS (operazioni di input / output al secondo). Questo è semplicemente un numero più grande che significa la stessa cosa; puoi trovare quali IOPS da MB / s con questa formula:

IOPS = (MBps / dimensione blocco ) 1024 Tuttavia, alcuni provider potrebbero non fare un ottimo lavoro nel dirti quale benchmark usano per misurare gli IOPS, quindi è bene fare dei test da soli.

Installa fio per test di lettura / scrittura casuali Sebbene Linux abbia il dd , che può essere utilizzato per misurare le prestazioni di scrittura sequenziale, non è indicativo di come si comporterà in condizioni di stress del mondo reale. Ti consigliamo invece di testare la tua velocità di lettura e scrittura casuale.

fio è un’utilità in grado di gestirlo. Installalo dal gestore di pacchetti della tua distro:

sudo apt-get install fio Quindi, esegui un test di base utilizzando il seguente comando:

fio –randrepeat = 1 –ioengine = libaio –direct = 1 –gtod_reduce = 1 –name = test –filename = random_read_write.fio – bs = 4k –iodepth = 64 – dimensione = 250 M –readwrite = randrw –rwmixread = 80 Esegue test di lettura e scrittura casuali utilizzando un 250 MB di dati, con un rapporto di 80% legge in 20% scrive. I risultati verranno visualizzati in termini di IOPS e in MB / s:

Il test precedente è stato eseguito su un AWS gp2 SSD, un SSD abbastanza medio, che mostra abbastanza nella media prestazione. Le prestazioni in scrittura saranno sempre inferiori con qualsiasi tipo di I / O; molti SSD e HDD hanno una cache incorporata per il controller dell’unità da utilizzare, il che rende molte letture abbastanza veloci. Tuttavia, ogni volta che scrivi, devi apportare modifiche fisiche all’unità, che è più lenta.

Esecuzione del test su disco rigido l’unità mostra prestazioni IO miste casuali ridotte, che è un problema comune con i dischi rigidi:

I dischi rigidi, però, vengono in genere utilizzati per letture e scritture sequenziali di grandi dimensioni, quindi un test IO casuale non corrisponde al caso d’uso qui. Se vuoi cambiare il tipo di test, puoi passare un argomento diverso per – readwrite . fio supporta molti test diversi:

Lettura sequenziale: seqread Sequenziale Scrivi: seqwrite Lettura casuale: randread Scrittura casuale: randwrite IO misto casuale: randrw Inoltre, è possibile modificare la dimensione del blocco con – argomento bs . Lo abbiamo impostato su 4K, che è abbastanza standard per i test casuali, ma le letture e le scritture sequenziali possono mostrare prestazioni migliori o peggiori con blocchi di dimensioni maggiori. Dimensioni 16 KB a 32 KB potrebbe essere più vicino a quello che incontrerai sotto carico reale.

Testing Memory Performance fio non può testare la velocità della RAM, quindi se vuoi confrontare la RAM del tuo server, devi installare sysbench dal gestore di pacchetti della tua distribuzione:

sudo apt-get install sysbench Questo pacchetto può eseguire il benchmark molte metriche sulle prestazioni, ma ci concentriamo solo sul test della memoria. Il seguente comando alloca 1 MB di RAM, quindi esegue le operazioni di scrittura fino a quando non ha scritto 10 GB di dati, (non preoccuparti, non hai bisogno di 10 GB di RAM per eseguire questo benchmark.)

sysbench –test = memory –memory-block-size = 1M –memory-total-size = 10 G run Questo mostrerà la 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 testare con blocchi di dimensioni inferiori, il che mette più stress sulla memoria.

Realisticamente, la maggior parte della RAM andrà bene abbastanza per eseguire qualsiasi cosa, e di solito sarai più limitato dalla quantità di RAM che dalla sua velocità effettiva.

Condividi questo articolo
Exit mobile version