Questo contenuto è obsoleto. Questa versione di Framework Well-Architected è ora disponibile all'indirizzo: https://docs.aws.amazon.com/it_it/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 2: In che modo selezioni la soluzione di calcolo?

La soluzione di calcolo ottimale per un determinato carico di lavoro varia in base alla progettazione dell'applicazione, ai modelli di utilizzo e alle impostazioni di configurazione. Le architetture possono utilizzare diverse soluzioni di elaborazione per vari componenti e consentire funzioni diverse per migliorare le prestazioni. Selezionare la soluzione di calcolo sbagliata per un'architettura può portare a una riduzione dell'efficienza delle prestazioni.

Risorse

Amazon EC2 foundations (CMP211-R2)
Powering next-gen Amazon EC2: Deep dive into the Nitro system
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
Optimize performance and cost for your AWS compute (CMP323-R1)
Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)
Cloud Compute with AWS
EC2 Instance Types
Processor State Control for Your EC2 Instance
EKS Containers: EKS Worker Nodes
ECS Containers: Amazon ECS Container Instances
Functions: Lambda Function Configuration

Best practice:

Piano di miglioramento

Valutazione delle opzioni di elaborazione disponibili

  • Valutazione delle opzioni di elaborazione: Decidi quale opzione di elaborazione soddisfa i requisiti. Da una prospettiva riguardante le prestazioni, le istanze possono essere utilizzate per applicazioni a esecuzione prolungata, in particolare quelle con stato e cicli di calcolo di lunga durata; le funzioni possono essere utilizzate per applicazioni stateless ed avviate da eventi che necessitano di tempi di risposta rapidi; infine i container consentono di utilizzare in modo efficiente le risorse di un'istanza.
    Cloud Compute with AWS
  • Definizione dei requisiti prestazionali per l'elaborazione: Identifica i parametri delle prestazioni di calcolo importanti per il carico di lavoro e implementa i requisiti utilizzando un approccio basato sui dati che prevede benchmark o test di carico. Utilizza tali dati per identificare i punti in cui la soluzione di calcolo è vincolante ed esamina le opzioni di configurazione per migliorare la soluzione.
  • Identificazione delle opzioni di configurazione dell'elaborazione disponibili

  • Informazioni sulle opzioni di configurazione disponibili: Per l'opzione di elaborazione selezionata, utilizza opzioni di configurazione disponibili per l'ottimizzazione in base ai requisiti di prestazione.I sistemi Nitro di AWS ti consentono di utilizzare appieno le risorse di elaborazione e memoria dell'hardware host. Le schede Nitro dedicate consentono prestazioni di rete ed EBS di elevata velocità, oltre all'accelerazione I/O.
    AWS Nitro System
  • Raccolta dei parametri relativi all'elaborazione

  • Raccolta dei parametri relativi all'elaborazione: Amazon CloudWatch è in grado di raccogliere i parametri per tutte le risorse di calcolo nel tuo ambiente. Utilizza una combinazione di CloudWatch e altri strumenti di registrazione dei parametri per tracciare i parametri a livello di sistema all'interno del tuo carico di lavoro. Registra dati quali i livelli di utilizzo della CPU, la memoria, I/O del disco e la rete per ottenere informazioni più dettagliate sui livelli di utilizzo o colli di bottiglia. Tali dati sono cruciali per comprendere le prestazioni del carico di lavoro e l'utilizzo effettivo delle risorse. Utilizza tali parametri come parte di un approccio basato sui dati per ottimizzare e ottimizzare le risorse del tuo carico di lavoro.
    Amazon CloudWatch
  • Definizione della configurazione richiesta in base al corretto dimensionamento

  • Modifica della configurazione del carico di lavoro in base al corretto dimensionamento: Al fine di ottimizzare le prestazioni e l'efficienza complessiva, determina le risorse necessarie per il tuo carico di lavoro. Seleziona le istanze ottimizzate per la memoria per i sistemi che richiedono più memoria rispetto alla CPU, oppure istanze ottimizzate per il calcolo per i componenti che effettuano l'elaborazione dati che non necessita di molta memoria. Il dimensionamento consente al tuo carico di lavoro di funzionare nel miglior modo possibile utilizzando solo le risorse di cui necessita.
  • Utilizzo dell'elasticità disponibile delle risorse

  • I vantaggi dell'elasticità: L'elasticità corrisponde all'offerta di risorse disponibili rispetto alla relativa domanda. Istanze, container e funzioni forniscono tutti meccanismi di elasticità, in combinazione con il ridimensionamento automatico o sotto forma di funzionalità del servizio. Utilizza l'elasticità all'interno della tua architettura per assicurarti di disporre della capacità sufficiente per rispettare i requisiti di prestazione a tutti i livelli di utilizzo. Verifica che i parametri per il dimensionamento delle risorse elastiche siano convalidati rispetto al tipo di carico di lavoro distribuito. Se distribuisci un'applicazione di transcodifica video, è previsto il 100% di CPU e non deve essere il parametro principale. In alternativa, puoi misurare la profondità della coda dei processi di transcodifica in attesa di dimensionare i tipi di istanze. Assicurati che le distribuzioni dei carichi di lavoro siano in grado di gestire eventi di dimensionamento. Ridimensionare in modo sicuro i componenti del carico di lavoro è fondamentale quanto ricalibrare le risorse quando richiesto dalla domanda. Crea scenari di test per eventi di ridimensionamento per garantire che il carico di lavoro si comporti come previsto.
  • Rivalutazione delle esigenze di elaborazione sulla base dei parametri

  • Applicazione di un approccio basato sui dati per ottimizzare le risorse: Al fine di ottenere il massimo delle prestazioni e dell'efficienza, utilizza i dati raccolti nel tempo dal tuo carico di lavoro per mettere a punto e ottimizzare le risorse. Osserva le tendenze nell'utilizzo del tuo carico di lavoro delle risorse attuali e determina in che punto puoi effettuare cambiamenti per soddisfare al meglio le esigenze del tuo carico di lavoro. Quando le risorse sono sovra-impegnate, le prestazioni del sistema diminuiscono, sebbene il sottoutilizzo delle risorse le renda meno efficienti e i costi siano più elevati.