Perché il mio volume EBS SC1 o ST1 non raggiunge le prestazioni di throughput nominali?

4 minuti di lettura
0

Il mio volume Amazon Elastic Block Store (Amazon EBS) ST1 o SC1 non raggiunge le prestazioni di throughput elencate nella documentazione AWS.

Breve descrizione

Se utilizzi volumi Amazon EBS HDD, come SC1 e ST1, esamina i seguenti punti:

  • Questi volumi utilizzano sempre un token I/O da 1024 KiB indipendentemente dalle dimensioni I/O effettive utilizzate dal carico di lavoro sull'istanza. Se la dimensione effettiva di I/O del carico di lavoro dell'applicazione è impostata su 16 KiB, il volume utilizza comunque l'intera dimensione di 1024 KiB del token I/O. Ciò comporta lo spreco della maggior parte dello spazio del token. Per massimizzare l'efficienza, riempi tutti i 1024 KiB.
  • Quando la dimensione I/O di un carico di lavoro sequenziale è superiore a 32 KiB, Amazon EBS unisce sempre gli I/O in un'unica operazione di I/O di 1024 KiB. Questa fusione riempie l'intera dimensione del token.
  • Quando la dimensione dell'I/O è inferiore a 32 KiB o se il carico di lavoro è casuale, Amazon EBS non unisce gli I/O a 1024 KiB. Tuttavia, Amazon EBS utilizza ancora l'intera dimensione del token di 1024 KiB. Ciò lascia vuota la maggior parte dello spazio all'interno del token. Poiché gli I/O non sono uniti, l'istanza utilizza un maggior numero di IOPS per inviare la stessa quantità di dati al volume. Ciò riduce il burst balance anche se la velocità effettiva è inferiore al valore di base.

Risoluzione

Per consentire ai volumi EBS ST1 e SC1 di raggiungere il throughput nominale massimo, procedi nel seguente modo:

  • Configura l'applicazione per utilizzare una dimensione I/O superiore a 32 KiB.
  • Verifica che l'applicazione utilizzi un carico di lavoro sequenziale.

Esempio

Per calcolare il throughput, utilizza la seguente formula:

Velocità di trasmissione effettiva = I/Osize * IOPS

Se la dimensione di I/O è inferiore a 32 KiB, il volume raggiunge il limite di IOPS e limita la velocità effettiva. Quando ciò accade, il volume non raggiunge mai le prestazioni di velocità di trasmissione effettiva nominali.

Ad esempio, supponiamo di impostare la dimensione di I/O su 16 KiB e di inviare 3 MiB/s di dati:

3MiB/s/16KiB = 192 IOPS

Quando imposti la dimensione di I/O su 32 KiB con un carico di lavoro sequenziale/contiguo, Amazon EBS unirà fino a 1024 KiB. Amazon invia solo 3 IOPS in questo caso, come mostrato nel seguente calcolo:

3 MiB/s/1024 KiB = 3 IOPS

Ma supponiamo di utilizzare 0,5 TiB (500 GiB) di un volume ST1. In questo caso, il volume offre idealmente una prestazione di base di velocità di trasmissione effettiva di 20 MiB/s e può raggiungere una velocità massima di 125 MiB/s.

Se il volume raggiunge i 125 MiB/s e la dimensione di I/O dell'applicazione è di 1024 KiB, l'IOPS teorico massimo è pari a 125 IOPS.

Throughput/IOSize = 125 MiB/s/1024 KiB = 125 IOPS.

Tuttavia, se l'applicazione utilizza una dimensione I/O di 16 KiB, l'invio di 3 MiB di dati utilizza 192 IOPS. Poiché il volume raggiunge solo un massimo teorico di 125 IOPS, l'applicazione non può inviare 192 IOPS. In questo caso, il volume riduce gli IOPS a 125:

Velocità di trasmissione effettiva = 16 KiB\ * 125 = 1,95 MiB/s

Come mostrano i calcoli precedenti, l'IOPS è limitato a 125 IOPS e Amazon EBS limita il throughput a 1,95 MIB/s. Tale limitazione si verifica anche se la velocità di trasmissione effettiva teorica espandibile per il volume è di 125 IOPS, poiché l'applicazione ha utilizzato una dimensione di I/O di 1024 KiB.

Informazioni correlate

Caratteristiche e monitoraggio degli I/O

Tipi di volume Amazon EBS

AWS UFFICIALE
AWS UFFICIALEAggiornata 7 mesi fa