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_connessione
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 SQL Le mie 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 l'evento si verifica più del normale, probabilmente indicando un problema di prestazioni, le cause tipiche includono le seguenti:
-
C'è un aumento improvviso delle nuove connessioni utente dall'applicazione alla tua RDS istanza Amazon.
-
La tua istanza DB non può elaborare nuove connessioni perché la CPU rete o la memoria sono 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.
Argomenti
- Identificare le sessioni e le query problematiche
- Seguire le best practice per la gestione delle connessioni
- Dimensiona verso l’alto la tua istanza se le risorse vengono limitate
- Controlla i principali host e i migliori utenti
- Interrogare le tabelle performance_schema
- Controlla lo stato del thread delle query
- Verifica le tue richieste e le query
- Crea pool delle connessioni al database
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 miei SQL carichi di lavoro di Amazon Aurora con Performance Insights
Per identificare sessioni e query che causano un collo di bottiglia
Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel pannello di navigazione scegli Approfondimenti sulle prestazioni.
-
Scegli l'istanza database.
-
In Carico del database, scegli Dividi per attesa.
-
Nella parte inferiore della pagina, scegli Top 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:
-
Utilizza il pooling di connessioni.
È possibile aumentare gradualmente il numero di connessioni secondo necessità. Per ulteriori informazioni, consulta il white paper Amazon Aurora My SQL
Database Administrator's Handbook. -
Usa un nodo lettore per ridistribuire il traffico di sola lettura.
Per ulteriori informazioni, consulta Repliche di Aurora e Connessioni endpoint Amazon Aurora.
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 CPU utilizzo elevato.
-
Rete
Verifica la presenza di un aumento del valore delle CloudWatch metriche
network receive throughput
e.network transmit throughput
Se la tua istanza ha raggiunto il limite di larghezza di banda di rete per la tua classe di istanza, valuta la possibilità di scalare l'RDSistanza a un tipo di classe di istanza superiore. Per ulteriori informazioni, consulta Classi di istanze DB Amazon Aurora. -
Memoria liberabile
Verifica se la metrica non è diminuita CloudWatch .
FreeableMemory
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 My SQL Advanced Auditing. Per informazioni su come attivare l'auditing, consulta Utilizzo del controllo avanzato con un cluster Amazon Aurora My DB SQL.
Crea pool delle connessioni al database
Prendi in considerazione l'utilizzo di Amazon RDS Proxy per la gestione delle connessioni. Utilizzando RDS Proxy, puoi consentire alle tue applicazioni di raggruppare e condividere connessioni al database per migliorarne la scalabilità. RDS Il proxy rende le applicazioni più resistenti agli errori del database connettendosi automaticamente a un'istanza DB in standby e preservando al contempo le connessioni delle applicazioni. Per ulteriori informazioni, consulta RDSProxy Amazon per Aurora.