Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui un benchmark dei volumi Amazon EBS
Puoi testare le prestazioni dei volumi Amazon EBS simulando i carichi di lavoro. I/O Di seguito è riportato il procedimento:
-
Avvia un'istanza. EBS-optimized
-
Creare nuovi volumi EBS.
-
Collega i volumi alla tua EBS-optimized istanza.
-
Configurare e montare il dispositivo a blocchi.
-
Installa uno strumento per confrontare I/O le prestazioni.
-
Effettua un benchmark delle I/O prestazioni dei tuoi volumi.
-
Eliminare i volumi e terminare l'istanza per non incorrere in ulteriori addebiti.
Importante
Alcune delle procedure comporteranno la distruzione dei dati esistenti sui volumi EBS di cui si esegue il benchmarking. Le procedure di benchmarking si devono utilizzare su volumi appositamente creati a scopo di test, non su volumi di produzione.
Configurare un'istanza
Per ottenere prestazioni ottimali dai volumi EBS, ti consigliamo di utilizzare un' EBS-optimizedistanza. EBS-optimized le istanze offrono larghezza di banda dedicata tra Amazon EC2 e Amazon EBS, con specifiche che dipendono dal tipo di istanza.
Per creare un' EBS-optimized istanza, scegli Launch come EBS-optimized istanza quando avvii l'istanza utilizzando la console Amazon EC2 o specifica --ebs-optimized quando usi la riga di comando. Assicurati di selezionare un tipo di istanza che supporti questa opzione.
Impostazione dei volumi SSD con capacità di IOPS allocata o SSD per uso generale
Per creare volumi SSD con capacità di IOPS allocata (io1 e io2) o SSD per uso generale (gp2 e gp3) utilizzando la console Amazon EC2, per Tipo di volume scegli SSD con capacità di IOPS allocata (io1), SSD con capacità di IOPS allocata (io2), SSD per uso generale (gp2) o SSD per uso generale (gp3). Nella riga di comando specifica io1, io2, gp2 o gp3 per il parametro --volume-type. Per io1io2, e per gp3 i volumi, specificate il numero di I/O operazioni al secondo (IOPS) per il --iops parametro. Per ulteriori informazioni, consulta Tipi di volume Amazon EBS e Creazione di un volume Amazon EBS.
(Solo istanze Linux) Per i test di esempio, si consiglia di creare un array RAID 0 con 6 volumi, che offra un elevato livello di prestazioni. Dato che verranno addebitati i gigabyte assegnati (e il valore di capacità di IOPS allocata per i volumi io1, io2 e gp3) e non il numero dei volumi, non ci sono costi aggiuntivi se si creano più volumi di minori dimensioni e li si utilizza per creare un set di striping. Se utilizzato per il benchmarking dei volumi, Oracle Orion può simulare lo striping allo stesso modo di Oracle ASM, perciò ti consigliamo di lasciare che sia Orion a eseguire lo striping. Se utilizzi uno strumento diverso per il benchmarking, devi eseguire lo striping dei volumi autonomamente.
Per ulteriori informazioni su come creare un array RAID 0, vedereCrea un array RAID 0.
Configurare i volumi HDD (st1) o Cold HDD (sc1) con throughput Optimized
Per creare un volume st1, scegliere Throughput Optimized HDD quando si utilizza la console Amazon EC2 oppure specificare --type st1 se si utilizza la riga di comando. Per creare un volume sc1, scegli Cold HDD quando utilizzi la console Amazon EC2 oppure specifica --type sc1 se utilizzi la riga di comando. Per informazioni sulla creazione dei volumi EBS, consulta Creazione di un volume Amazon EBS. Per informazioni sul collegamento di questi volumi alla tua istanza, consulta Collega un volume Amazon EBS a un'istanza Amazon EC2.
(solo istanze Linux) AWS fornisce un modello JSON da utilizzare che semplifica questa procedura di configurazione. CloudFormation Accedere al modello st1 i volumi. Il modello crea un'istanza della generazione corrente e un volume st1 da 2 TiB e collega il volume all'istanza su /dev/xvdf.
(Solo istanze Linux) Per creare un volume HDD utilizzando il modello
Apri la CloudFormation console all'indirizzo. https://console.aws.amazon.com/cloudformation
-
Scegli Create Stack (Crea stack).
-
Scegliere Upload a Template to Amazon S3 (Carica un modello su Amazon S3) e selezionare il modello JSON ottenuto in precedenza.
-
Assegnare allo stack un nome come "ebs-perf-testing" e selezionare un tipo di istanza (il predefinito è r3.8xlarge) e la chiave SSH.
-
Scegliere due volte Next (Avanti), quindi selezionare Create Stack (Crea stack).
-
Quando lo stato della nuova pila passa da CREATE_IN_PROGRESS e COMPLETE, scegli Outputs (Output) per ottenere la voce DNS pubblica per la nuova istanza, a cui sarà collegato a un volume
st1da 2 TiB. -
Eseguire la connessione al nuovo stack usando SSH come utente
ec2-user, con l'hostname ottenuto dalla voce DNS nella fase precedente. -
Passa a Installare strumenti di benchmarking.
Installare strumenti di benchmarking
Le tabelle seguenti elencano alcuni dei possibili strumenti che è possibile utilizzare per confrontare le prestazioni dei volumi EBS.
| Strumento | Descrizione |
|---|---|
|
fio |
Per l'analisi comparativa delle prestazioni I/O . (Tenere presente che fio ha una dipendenza su Per installare fio su Amazon Linux, eseguire questo comando:
Per installare fio su Ubuntu, eseguire questo comando:
|
|
Per calibrare I/O le prestazioni dei sistemi di storage da utilizzare con i database Oracle. |
| Strumento | Description |
|---|---|
| DiskSpd |
DiskSpd è uno strumento per le prestazioni dello storage creato dai team di progettazione di Windows, Windows Server e Cloud Server Infrastructure di Microsoft. È disponibile per il download all'indirizzo https://github.com/Microsoft/diskspd/releases Dopo aver scaricato il file Copiare il file eseguibile Il codice sorgente di DiskSpd è ospitato GitHub su: https://github.com/Microsoft/diskspd |
|
CrystalDiskMark |
CrystalDiskMark è un semplice software di benchmark su disco. È disponibile per il download all'indirizzo. https://crystalmark.info/en/software/crystaldiskmark/ |
Questi strumenti per il benchmarking supportano un'ampia varietà di parametri di test. Devi utilizzare comandi aderenti ai carichi di lavoro che i volumi possono supportare. I comandi mostrati di seguito sono esempi per aiutarti a iniziare.
Scegliere la lunghezza della coda del volume
Scegliere la migliore lunghezza della coda del volume in base al carico di lavoro e al tipo di volume.
Lunghezza della coda sui volumi SSD-backed
Per determinare la lunghezza della coda ottimale per il carico di lavoro sui SSD-backed volumi, ti consigliamo di impostare una lunghezza di coda per ogni 1000 IOPS disponibili (valore di base per i volumi SSD General Purpose e importo assegnato per i volumi SSD Provisioned IOPS). Si possono quindi monitorare le prestazioni della tua applicazione e regolare il valore in base ai requisiti dell'applicazione.
Aumentare la lunghezza della coda è vantaggioso fino al raggiungimento del valore della capacità di IOPS allocata, della velocità di trasmissione effettiva o della lunghezza di coda ottimale del sistema, attualmente impostato su 32. Ad esempio, un volume con capacità di IOPS allocata di 3.000 IOPS deve indicare una lunghezza della coda di 3. Devi provare a regolare verso l'alto o verso il basso questi valori per trovare quelli che hanno le prestazioni migliori per la tua applicazione.
Lunghezza della coda sui volumi HDD-backed
Per determinare la lunghezza della coda ottimale per il carico di lavoro sui HDD-backed volumi, ti consigliamo di impostare una lunghezza della coda di almeno 4 durante l'esecuzione sequenziale di 1 MiB. I/Os Si possono quindi monitorare le prestazioni della tua applicazione e regolare il valore in base ai requisiti dell'applicazione. Ad esempio, un st1 volume da 2 TiB con velocità effettiva a raffica di 500 MiB/s e IOPS di 500 dovrebbe avere una lunghezza di coda di 4, 8 o 16 con prestazioni sequenziali rispettivamente di 1.024 KiB, 512 KiB o 256 KiB. I/Os Devi provare a regolare verso l'alto o verso il basso questi valori per trovare quelli che hanno le prestazioni migliori per la tua applicazione.
Disabilita C-states
Prima di eseguire il benchmarking, è necessario disabilitare il processore C-states. I core temporaneamente inattivi di una CPU supportata possono immettere un valore C-state per risparmiare energia. Quando il core viene chiamato per riprendere l'elaborazione, passa un determinato lasso di tempo perché diventi pienamente operativo. Questa latenza può interferire con le routine di benchmarking del processore. Per ulteriori informazioni C-states e sui tipi di istanze EC2 che li supportano, consulta Controllo dello stato del processore per l'istanza EC2.
Puoi disattivarlo C-states su Amazon Linux, RHEL e CentOS nel modo seguente:
Ottieni il numero di. C-states
$cpupower idle-info | grep "Number of idle states:"Disabilita il valore C-states da c1 a cN. Idealmente, i core dovrebbero essere nello stato c0.
$for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done
Puoi disabilitare C-states su Windows come segue:
-
In PowerShell, ottieni l'attuale schema di potenza attiva.
$current_scheme = powercfg /getactivescheme -
Acquisire il GUID della combinazione per il risparmio di energia.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID -
Ottenere il GUID dell'impostazione per il risparmio di energia.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID -
Ottenere il GUID di un sottogruppo di impostazioni per il risparmio di energia.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID -
Disabilita C-states impostando il valore dell'indice su 1. Il valore 0 indica che C-states sono disattivati.
powercfg /setacvalueindex<power_scheme_guid><power_setting_subgroup_guid><power_setting_guid>1 -
Imposta lo schema attivo per assicurarti che le impostazioni vengano salvate.
powercfg /setactive<power_scheme_guid>
Esecuzione del benchmarking
Le procedure seguenti descrivono i comandi di benchmarking per i diversi tipi di volume EBS.
Eseguite i seguenti comandi su un' EBS-optimized istanza con volumi EBS collegati. Se i volumi EBS sono creati da snapshot, ricorda di inizializzarli prima di eseguire il valore di riferimento. Per ulteriori informazioni, consulta Inizializza manualmente i volumi dopo la creazione.
Suggerimento
È possibile utilizzare gli istogrammi di I/O latenza forniti dalle statistiche dettagliate sulle prestazioni di EBS per confrontare la distribuzione delle prestazioni nei test di benchmarking I/O . Per ulteriori informazioni, consulta Statistiche dettagliate sulle prestazioni di Amazon EBS.
Una volta terminato il test dei volumi, consultate i seguenti argomenti per aiutarvi a ripulire l'istanza e terminare l'istanza. Eliminazione di un volume Amazon EBS https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html
Benchmark dei volumi SSD con capacità di IOPS allocata e SSD per uso generale
Eseguire fio sull'array RAID 0 creato.
Il seguente comando esegue 16 KB di operazioni di scrittura casuali.
$sudo fio--directory=/mnt/p_iops_vol0--ioengine=psync--namefio_test_file--direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Il seguente comando esegue 16 KB di operazioni di lettura casuali.
$sudo fio--directory=/mnt/p_iops_vol0--namefio_test_file--direct=1 --rw=randread --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap
Per ulteriori informazioni sull'interpretazione dei risultati, consulta il tutorial: Inspecting disk IO performance with fio (Ispezione delle prestazione IO del disco con fio)
Eseguire DiskSpd sul volume creato.
Il comando seguente eseguirà un I/O test casuale di 30 secondi utilizzando un file di test da 20 GB presente sull'C:unità, con un rapporto di scrittura del 25% e una lettura del 75% e una dimensione del blocco di 8K. Utilizzerà otto thread di lavoro, ciascuno con quattro in sospeso I/Os, e un valore di entropia di scrittura di 1 GB. I risultati del test verranno salvati in un file di testo chiamato DiskSpeedResults.txt. Questi parametri simulano un carico di lavoro OLTP di SQL Server.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Per ulteriori informazioni sull'interpretazione dei risultati, consulta il tutorial: Inspecting disk IO performance with DiskSPd
Confronta i volumi st1 e sc1 (istanze Linux)
Esegui fio sul tuo volume st1 o sc1.
Nota
Prima di eseguire questi test, imposta il buffer I/O sulla tua istanza come descritto in. Aumenta il read-ahead per carichi di lavoro ad alta velocità e ad alta velocità di lettura su st1 e sc1 (Solo istanze Linux)
Il seguente comando esegue 1 MiB di operazioni di lettura sequenziali rispetto a un dispositivo a blocchi st1 (ad esempio, /dev/xvdf):
$sudo fio--filename=/dev/<device>--direct=1 --rw=read--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180--name=fio_direct_read_test
Il seguente comando esegue 1 MiB di operazioni di scrittura sequenziali rispetto a un dispositivo a blocchi st1 collegato:
$sudo fio--filename=/dev/<device>--direct=1 --rw=write--randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180--name=fio_direct_write_test
Alcuni carichi di lavoro eseguono un misto di letture e scritture sequenziali su diverse parti del dispositivo a blocchi. Per il benchmarking di un carico di lavoro simile, ti consigliamo di utilizzare processi fio separati e simultanei per le letture e le scritture e di utilizzare l'opzione fio offset_increment per mirare a posizioni diverse del dispositivo a blocchi per ciascun processo.
L'esecuzione di questo carico di lavoro è un po' più complicato rispetto a un carico di lavoro di lettura o scrittura sequenziale. Utilizza un editor di testo per creare un file del processo fio, chiamato fio_rw_mix.cfg in questo esempio, che contenga quanto segue:
[global] clocksource=clock_gettime randrepeat=0 runtime=180 [sequential-write] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device>do_verify=0 rw=write rwmixread=0 rwmixwrite=100 [sequential-read] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device>do_verify=0 rw=read rwmixread=100 rwmixwrite=0 offset=100g
Quindi, esegui il comando riportato di seguito:
$sudo fiofio_rw_mix.cfg
Per ulteriori informazioni sull'interpretazione dei risultati, consultate questo tutorial: Ispezione I/O delle prestazioni del disco con fio.
fioLavori multipli per Direct I/O, anche se utilizzano operazioni di lettura o scrittura sequenziali, possono comportare una velocità effettiva e un volume inferiori al previsto. st1 sc1 È consigliabile utilizzare un solo I/O processo diretto e utilizzare il iodepth parametro per controllare il numero di operazioni I/O simultanee.