Le Prestazioni di DataSunrise Sotto Condizioni di Alto Traffico
DataSunrise riceve spesso domande sulle sue prestazioni in presenza di volumi di traffico che superano i limiti tipici. I clienti sono particolarmente preoccupati se DataSunrise perderà traffico, sperimenterà ritardi o gestirà la situazione diversamente. Questo post esplora come DataSunrise affronta tali scenari.
Capacità Operativa e Metriche di Prestazione
Per capire come DataSunrise si comporta sotto pressione, è fondamentale comprendere le sue soglie operative su varie configurazioni di server. Qui di seguito sono riportate le operazioni massime per secondo per diverse istanze Amazon EC2, che spingono l’uso della CPU al 100% per attività di proxying e auditing:
- m5.8xlarge: 24.500 operazioni/sec
- m5.4xlarge: 18.700 operazioni/sec
- m5.2xlarge: 15.350 operazioni/sec
- m5.xlarge: 7.800 operazioni/sec
- m5.large: 3.900 operazioni/sec
Questi risultati sono basati su nostri test utilizzando RDS Postgres su un’istanza m5.2xlarge dotata di storage da 12.000 IOPS.
Identificare e Gestire i Colli di Bottiglia
Colli di Bottiglia del Sistema di Audit
Se lo storage di audit non riesce a tenere il passo con un picco di traffico, DataSunrise utilizza una coda interna all’interno del suo sistema Journal di Audit, in grado di gestire diverse migliaia di eventi a seconda delle impostazioni del sistema (vedere il parametro AuditHighWaterMark). Se i picchi di traffico superano la capacità della coda, gli eventi potrebbero essere rifiutati. Tuttavia, questo comportamento predefinito può essere modificato affinché DataSunrise si metta in pausa e aspetti fino a quando ci sarà spazio nella coda per registrare nuovi eventi (vedere il parametro AuditPutThreadQueueWait). Durante questa attesa, il traffico dell’applicazione potrebbe essere temporaneamente arrestato, generalmente per millisecondi o secondi, a seconda delle prestazioni del sistema di auditing.
Per ottimizzare il vostro sistema di audit, considerare quanto segue:
- Migliorare le prestazioni del database selezionando server con maggiore CPU e memoria.
- Verificare la configurazione della rete poiché la latenza incide significativamente sulle prestazioni; idealmente, l’host DataSunrise e lo storage di audit dovrebbero essere sulla stessa subnet.
- Rivedere e adattare le regole e gli eventi di audit per focalizzarsi solo su quelli critici per le vostre politiche di conformità.
Colli di Bottiglia del Sistema di Parsing di DataSunrise
Se il vostro sistema di auditing funziona correttamente, l’uso della CPU diventa il prossimo collo di bottiglia potenziale. La modalità di gestione – passiva o attiva – influenza notevolmente l’impatto sull’applicazione:
- Modalità Passiva. Qui, il traffico è gestito in modo asincrono in un pool separato di thread prima di essere re-inviato al server. Il traffico è temporaneamente memorizzato in una coda interna, che può bufferizzare i picchi e potenzialmente migliorare le prestazioni dell’applicazione (vedere i parametri MessageHandlersGlobalQueueHighWaterMark e MessageHandlersLocalQueueHighWaterMark). Se questo buffer si riempie, DataSunrise smetterà di analizzare nuovo traffico su quella connessione e riceverà un avviso nel Monitor eventi. Questa situazione non degraderà le prestazioni dell’applicazione, ma alcuni eventi potrebbero essere persi nell’audit.
- Modalità Attiva. In questa modalità, il traffico non può essere gestito in modo asincrono poiché DataSunrise deve prendere decisioni in tempo reale sulle operazioni. Non vengono utilizzate code e le prestazioni sono direttamente correlate alla capacità della CPU. Durante i picchi di traffico, DataSunrise processa quanto più possibile, il che potrebbe aumentare la latenza nelle query della vostra applicazione.
Comprendere questi meccanismi e impostazioni può aiutare a ottimizzare la configurazione di DataSunrise per una migliore gestione dei volumi elevati di traffico e prevenire potenziali colli di bottiglia nelle prestazioni.
Per ulteriori letture su come scegliere il database per lo storage di audit e migliorare le sue prestazioni, considerare la nostra guida dettagliata Come Scegliere il Database per lo Storage di Audit: Un’Analisi delle Prestazioni.