Ottimizzare le prestazioni e le funzionalità

Completato

Dopo aver incorporato le procedure di dimensionamento, rete e gestione ottimali nel piano di distribuzione delle macchine virtuali Linux di Azure, prendere in considerazione le prestazioni e le funzionalità. Questa unità illustra come ottimizzare le risorse di rete e archiviazione per le distribuzioni di macchine virtuali Linux di Azure.

Ottimizzare le prestazioni di rete

Per ottimizzare le prestazioni di rete per le macchine virtuali Linux di Azure, è possibile usare le ottimizzazioni di rete basate su kernel e implementare la rete accelerata, se disponibile.

Ottimizzazioni di rete basate su kernel

I kernel Linux rilasciati dopo settembre 2017 includono opzioni di ottimizzazione della rete che consentono alle macchine virtuali Linux di Azure di ottenere una velocità effettiva di rete superiore. È possibile ottenere prestazioni di velocità effettiva significative usando il kernel Linux più recente.

Anche le macchine virtuali di Azure nuove ed esistenti possono trarre vantaggio dall'installazione della versione più recente di Linux Integration Services (LIS). L'ottimizzazione della velocità effettiva è parte di Linux Integration Services (LIS) dalla versione 4.2 e le versioni successive contengono ulteriori miglioramenti.

Rete accelerata

È possibile implementare la rete accelerata per ridurre al minimo la latenza, ottimizzare la velocità effettiva e ridurre l'utilizzo della CPU. La rete accelerata usa le funzionalità SR-IOV (Single-Root I/O Virtualization) dell'hardware host per migliorare le prestazioni di rete.

Senza rete accelerata, tutto il traffico di rete in ingresso e in uscita dalla VM deve attraversare l'host e il commutatore virtuale. Con la rete accelerata, il traffico di rete che arriva all'interfaccia di rete della macchina virtuale viene inoltrato direttamente alla macchina virtuale, ignorando l'host.

La rete accelerata si applica solo alla macchina virtuale in cui è abilitata. Per ottenere risultati ottimali, attivare questa funzionalità sulle macchine virtuali di Azure collegate alla stessa rete virtuale. Per le comunicazioni tra reti virtuali o in scenari ibridi, questa funzionalità ha un impatto minimo sulla latenza complessiva.

Azure supporta la rete accelerata nella maggior parte delle istanze di utilizzo generico e ottimizzate per il calcolo con due o più vCPU. Le istanze di macchine virtuali che usano l'hyperthreading supportano la rete accelerata nelle istanze con quattro o più vCPU.

Ottimizzare le prestazioni di archiviazione

Ogni macchina virtuale Linux di Azure ha almeno i due dischi virtuali seguenti:

  • Il disco del sistema operativo, etichettato come /dev/sda, con una capacità massima di 2 tebibyte (TiB) per i dischi nel formato MBR (Record di avvio principale, Master Boot Record) o 4 TiB per i dischi nel formato GPT (Tabella di partizione GUID, GUID Partition Table). L'immagine usata per effettuare il provisioning della macchina virtuale di Azure determina le dimensioni predefinite.

    Evitare di archiviare dati e installare applicazioni sul disco del sistema operativo, perché è ottimizzato per l'avvio rapido anziché l'esecuzione di carichi di lavoro non correlati al sistema operativo.

  • Un disco temporaneo etichettato come /dev/sdb e montato in /mnt fornisce spazio di archiviazione temporaneo. Le dimensioni e le prestazioni del disco dipendono dalle dimensioni della macchina virtuale e lo scopo principale è archiviare un file di scambio.

    • Il disco temporaneo funge da archiviazione a breve termine per i dati che possono essere rimossi o ricreati facilmente. Non usare il disco temporaneo per archiviare i file che devono essere persistenti tra operazioni quali il ridimensionamento, la ridistribuzione o i riavvii.

    • Per implementare la configurazione ottimale per un file di scambio, usare cloud-init per le immagini che lo supportano. Usare l’agente Linux della macchina virtuale di Azure per le immagini che non supportano cloud-init.

Dischi dati virtuali

Per archiviare i dati e installare applicazioni, è possibile creare dischi virtuali, collegarli a una macchina virtuale di Azure e montarli all'interno del sistema operativo. È possibile aggiungere altri dischi in base alle esigenze in base ai requisiti di archiviazione e operazioni di I/O al secondo. Tenere presente quanto segue:

  • Il numero massimo di dischi che è possibile collegare a una macchina virtuale di Azure dipende dalle dimensioni della macchina virtuale.
  • Il numero massimo di operazioni di I/O al secondo supportate da una macchina virtuale di Azure dipende non solo dalla velocità effettiva aggregata dei dischi, ma anche dalla velocità effettiva massima delle operazioni di I/O al secondo della macchina virtuale, che viene determinata dalle dimensioni della macchina virtuale. La velocità effettiva corrisponde al minore dei due valori.

Per fornire spazio di archiviazione per una macchina virtuale di Azure, è possibile usare volumi di archiviazione a livello di blocco gestiti da Azure. I dischi gestiti da Azure supportano i cinque tipi di disco seguenti per gestire scenari specifici dei clienti:

  • Dischi Ultra per carichi di lavoro con livelli elevati di I/O, come SAP HANA, database di livello superiore come SQL e Oracle e altri carichi di lavoro con un numero elevato di transazioni.
  • SSD Premium v2 per carichi di lavoro sensibili alle prestazioni e di produzione che richiedono costantemente bassa latenza, operazioni di I/O al secondo elevate e velocità effettiva elevata.
  • SSD Premium per carichi di lavoro di produzione e sensibili alle prestazioni.
  • SSD Standard per i server Web, le applicazioni aziendali poco utilizzate e gli scenari di sviluppo o di test.
  • Unità disco rigido standard (HDD) per i backup e i dati non critici con accesso poco frequente.

Barriere di scrittura per unità SSD Premium

Per ottenere le operazioni di I/O al secondo più elevate nei dischi SSD Premium con le relative cache impostate su ReadOnly o None, disabilitare le barriere di scrittura durante il montaggio del file system in Linux. Non sono necessarie barriere perché le scritture sui dischi supportati da Archiviazione Premium assicurano la durabilità per queste impostazioni della cache. Se la memorizzazione nella cache è impostata su Read/Write, mantenere le barriere abilitate per garantire la durabilità della scrittura.

  • Se si usa il file system reiserFS, disabilitare le barriere usando l'opzione di montaggio barrier=none.
  • Se si usa ext3/ext4, disabilitare le barriere usando l'opzione di montaggio barrier=0.
  • Se si usa XFS, disabilitare le barriere usando l'opzione di montaggio nobarrier.

Algoritmo di pianificazione di I/O per unità SSD Premium

Il kernel Linux offre due set di utilità di pianificazione di I/O su disco per riordinare le richieste: una per il vecchio sottosistema blk e una per il più recente sottosistema blk-mq. Per i dischi di Archiviazione Premium di Azure, usare un'utilità di pianificazione che passa le decisioni di pianificazione alla piattaforma di virtualizzazione sottostante.

  • Per i kernel Linux che usano il sottosistema blk, scegliere l'utilità di pianificazione noop.
  • Per i kernel Linux che usano il sottosistema blk-mq, scegliere l'utilità di pianificazione none.

Configurazioni su più dischi

Se i carichi di lavoro richiedono più operazioni di I/O al secondo rispetto a un singolo disco, usare una configurazione RAID (Redundant Array of Independent Disks) che combina più dischi. Azure offre la resilienza dei dischi a livello di infrastruttura di archiviazione, quindi è possibile concentrarsi sulle prestazioni implementando una striscia RAID-0.

In alternativa, è possibile installare Logical Volume Manager (LVM) e usarlo per combinare più dischi virtuali in un unico volume logico di archiviazione a striping singolo. In questa configurazione le operazioni di lettura e scrittura sono distribuite in più dischi contenuti nel gruppo di volumi, in modo simile a RAID-0. Per motivi di prestazioni, è consigliabile eseguire lo striping dei volumi logici in modo che le letture e le scritture usino tutti i dischi dati associati.