A che punto EBS utilizza il collo di bottiglia?


10

Ho un sito ospitato su Amazon che utilizza un'istanza EC2 supportata da un volume EBS. Durante i fine settimana, il traffico aumenta e io ingrandisco l'istanza, il che aiuta parecchio: non vedo più l'utilizzo della CPU al 100% e il server non risponde.

Tuttavia, noto che anche le letture del disco sono molto alte (non posso essere aiutate, non credo) e mi chiedo, a che punto vedrò una sorta di errore perché il disco non può mantenere su?

Come puoi vedere dallo screenshot allegato, ha raggiunto il massimo a 80 MB / minuto durante il fine settimana. Qualcuno ha esperienza con AWS e sa a che punto dovrò passare a istanze bilanciate a carico multiplo perché EBS diventa il collo di bottiglia?

Grafico di utilizzo EBS


2
Penso che abbiamo bisogno di alcuni dettagli a livello di applicazione qui. Qual è l'attività di lettura del disco? Accesso casuale per immagini / risorse? Letture sequenziali di grandi dimensioni (ad es. Backup di database o analisi)? Si noti che è possibile eseguire più volumi EBS collegati a una singola istanza utilizzando il software RAID-0 per migliorare le cose.
rmalayter,

la maggior parte di queste letture sono file più piccoli (meno di 1 MB, molti meno di 500k) ma non file "piccoli". Non ho idea se questo è un carico per un volume EBS o se questa quantità di traffico è trivalente e non ho idea di come capirlo.
ESW,

Stavo solo scrivendo una risposta con RAID ed EBS quando ho letto il tuo commento, malayter. Aggiungerei che RAID10 potrebbe essere una soluzione più flessibile, poiché dovrebbe migliorare le letture E le scritture.
Tsykoduk,

@tsykoduk In generale, tutti i tipi di archiviazione AWS hanno prestazioni in qualche modo non ovvie e anche se potrebbe sembrare che RAID10 possa migliorare le prestazioni, è davvero meglio provare il benchmarking con il tipo di schemi di accesso e caricare che la tua vera applicazione probabilmente sperimenterà . Anche in questo caso è probabile che le tue prestazioni possano variare in modo considerevole nell'ambiente AWS rispetto a una soluzione self-host in cui hai più controllo - e quindi più prevedibilità - sulle prestazioni di archiviazione. In generale, avere più di un volume in una configurazione RAID potrebbe avere un impatto positivo.
aculich,

Risposte:


5

La prima cosa da tenere a mente che avrà il maggiore impatto sulle prestazioni I / O è il tipo di istanza che si sta utilizzando.

Instance Type   I/O Performance
-------------   ---------------
t1.micro        Low
m1.small        Moderate
m2.xlarge       Moderate
c1.medium       Moderate
m1.large        High
m1.xlarge       High
m2.2xlarge      High
m2.4xlarge      High
c1.xlarge       High
cc1.4xlarge     Very High (10 Gigabit Ethernet)
cc2.8xlarge     Very High (10 Gigabit Ethernet)
cg1.4xlarge     Very High (10 Gigabit Ethernet)

Per quanto riguarda i volumi EBS e le prestazioni che otterrai, come suggeriscono le FAQ di AWS , dovrai confrontare la tua applicazione per vedere cosa aspettarti:

D: Che tipo di latenza e velocità di trasmissione posso aspettarmi di vedere dai volumi Amazon EBS? La latenza da un'istanza Amazon EC2 a un volume Amazon EBS è simile alla latenza che vedresti dall'unità di archiviazione dell'istanza Amazon EC2 locale. Le velocità di I / O possono variare in modo significativo in base alla dimensione delle richieste, alla casualità dei modelli di accesso e alla strategia di memorizzazione nella cache utilizzata dall'applicazione. Pertanto, la misura più accurata è quella di confrontare la tua specifica applicazione su un volume Amazon EBS.

Ciò significa che le tariffe EBS ottenute da molti non sono necessariamente peggiori o migliori dell'archiviazione di istanze locali; dipende davvero dal comportamento di accesso ai dati.

Ulteriori informazioni sono disponibili sulla pagina EBS di AWS :

Prestazioni di volume di Amazon EBS

I volumi Amazon EBS sono progettati per offrire un throughput più elevato rispetto ai negozi di istanze Amazon EC2 per le applicazioni che eseguono molti accessi casuali attraverso il tuo set di dati. È inoltre possibile collegare più volumi a un'istanza e eseguire lo striping tra i volumi per ottenere ulteriori aumenti della velocità effettiva.

Le prestazioni esatte dipenderanno dall'applicazione (ad es. I / O casuale o sequenziale o dimensioni di richieste grandi o piccole), quindi la misura migliore è confrontare le tue applicazioni reali con il volume. Poiché i volumi Amazon EBS richiedono l'accesso alla rete, vedrai prestazioni di throughput più veloci e coerenti con istanze più grandi.

Inoltre, tieni presente che le prestazioni I / O non includono solo l'IO del disco, ma anche il traffico di rete ... quindi, maggiore è il traffico di rete che l'istanza riceve, minore sarà l'IO del disco.

A seconda di ciò che stai servendo, la memorizzazione nella cache degli oggetti nella memoria può aiutare notevolmente se ciò è possibile per il tuo tipo di applicazione.

Inoltre, ecco alcuni post sul blog che mettono a confronto le prestazioni di EBS e i volumi (effimeri) locali in varie configurazioni RAID e modifiche per ottenere buone prestazioni di I / O:

Dischi effimeri EC2 vs volumi EBS in RAID

Prestazioni I / O Amazon EC2: dischi effimeri locali e volumi EBS a strisce RAID 0

Ottenere un buon IO dall'EBS di Amazon


2
Anche questo sito sembra avere buone informazioni: ec2instances.info
Gianfranco P.
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.