io/socket/sql/client_connection - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

io/socket/sql/client_connection

L’evento io/socket/sql/client_connection si verifica quando un thread sta per gestire una nuova connessione.

Versioni del motore supportate

Queste informazioni sull'evento di attesa sono supportate per le seguenti versioni del motore:

  • Aurora MySQL versioni 2 e 3

Context

L'evento io/socket/sql/client_connection indica che mysqld è impegnato a creare thread per gestire le nuove connessioni client in arrivo. In questo scenario, l'elaborazione della manutenzione delle nuove richieste di connessione client rallenta mentre le connessioni attendono l'assegnazione del thread. Per ulteriori informazioni, consulta Server MySQL (mysqld).

Probabili cause di aumento delle attese

Quando questo evento si verifica più del normale, probabilmente indicando un problema di prestazioni, le cause tipiche includono le seguenti:

  • C'è un improvviso aumento delle nuove connessioni utente dall'applicazione alla istanza Amazon RDS.

  • L'istanza database non è in grado di elaborare nuove connessioni perché la rete, la CPU o la memoria sono state limitate.

Azioni

Se io/socket/sql/client_connection domina l'attività del database, non indica necessariamente un problema di prestazioni. In un database che non è inattivo, un evento di attesa è sempre in primo piano. Agisci solo quando le prestazioni diminuiscono. Consigliamo azioni diverse a seconda delle cause dell'evento di attesa.

Identificare le sessioni e le query problematiche

Se l'istanza database sta riscontrando un collo di bottiglia, il primo compito è quello di trovare le sessioni e le query che lo causano. Per un utile post sul blog, consulta Analizza i carichi di lavoro di Amazon Aurora MySQL con Performance Insights.

Per identificare sessioni e query che causano un collo di bottiglia
  1. Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione scegli Approfondimenti sulle prestazioni.

  3. Scegli l'istanza database.

  4. In Carico del database, scegli Dividi per attesa.

  5. Nella parte inferiore della pagina scegli Prime Instruzioni SQL.

    Le query nella parte superiore dell'elenco causano il carico più alto sul database.

Seguire le best practice per la gestione delle connessioni

Per gestire le tue connessioni, considera le seguenti strategie:

Dimensiona verso l’alto la tua istanza se le risorse vengono limitate

Cerca esempi di limitazione nelle seguenti risorse:

  • CPU

    Controlla i CloudWatch parametri di Amazon per un utilizzo elevato della CPU.

  • Rete

    Verifica la presenza di un aumento del valore delle CloudWatch metriche network receive throughput e. network transmit throughput Se l’istanza ha raggiunto il limite di larghezza di banda di rete per la classe di istanza, è consigliabile dimensionare verso l’alto l'istanza RDS a un tipo di classe di istanza superiore. Per ulteriori informazioni, consulta Aurora Classi di istanze database.

  • Memoria liberabile

    Verifica la presenza di un calo della CloudWatch metricaFreeableMemory. Inoltre, prendi in considerazione l'attivazione del monitoraggio avanzato. Per ulteriori informazioni, consulta Monitoraggio dei parametri del sistema operativo con il monitoraggio avanzato.

Controlla i principali host e i migliori utenti

Usa Performance Insights per controllare i principali host e i migliori utenti. Per ulteriori informazioni, consulta Per analizzare il parametro utilizzando il pannello di controllo di Performance Insights.

Interrogare le tabelle performance_schema

Per ottenere un conteggio accurato delle connessioni correnti e totali, eseguire una query sulle tabelle performance_schema. Con questa tecnica, si identifica l'utente o l'host di origine responsabile della creazione di un numero elevato di connessioni. Ad esempio, interrogare le tabelle performance_schema come indicato di seguito.

SELECT * FROM performance_schema.accounts; SELECT * FROM performance_schema.users; SELECT * FROM performance_schema.hosts;

Controlla lo stato del thread delle query

Se il problema relativo alle prestazioni è continuo, controlla lo stato del thread delle query. Nel client mysql, eseguire il comando seguente.

show processlist;

Verifica le tue richieste e le query

Per verificare la natura delle richieste e delle interrogazioni provenienti dagli account utente, usa AuroraAurora MySQL Advanced Auditing. Per informazioni su come attivare l'auditing, consulta Utilizzo dell'audit avanzato con un cluster di database Amazon Aurora MySQL.

Crea pool delle connessioni al database

Valuta l'utilizzo di Amazon RDS Proxy per la gestione della connessione. Con RDS Proxy, è possibile consentire alle applicazioni di creare pool delle connessioni di database e condividerle per migliorare la loro capacità di dimensionamento. RDS Proxy rende le applicazioni più resilienti agli errori del database connettendosi automaticamente a un'istanza database di standby, mantenendo al contempo le connessioni delle applicazioni. Per ulteriori informazioni, consulta Utilizzo di Server proxy per Amazon RDS per Aurora.