MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Analisi delle query lente in MongoDB

Siamo felici di annunciare al pubblico la disponibilità del nostro analizzatore di query lente per MongoDB! Utilizzando l'analizzatore di query lente puoi identificare rapidamente le query lente su qualsiasi server in un determinato periodo di tempo. Per impostazione predefinita, le "query lente" sono definite come query che richiedono più di 100 ms.

Mappa di calore a query lente

La mappa termica ti offre una rapida panoramica visiva delle query lente nel tuo sistema. L'asse verticale del grafico è il tempo esponenziale. Ciò significa che più alta è la bolla nel grafico, più lenta sarà la query (per ordini di grandezza), quindi tieni d'occhio le bolle che si trovano costantemente nella parte superiore del grafico. Puoi anche fare clic su un fumetto per vedere i dettagli della query sottostante.

Le query dello stesso tipo hanno lo stesso colore. Ciò ti consente di identificare facilmente i modelli nelle tue query lente. Puoi anche selezionare porzioni del grafico per ingrandire un determinato intervallo di tempo.

Per esempio. Nell'esempio sopra puoi vedere un gruppo di punti rossi che impiegano più di 10 secondi. Puoi anche vedere che un lavoro in background che viene eseguito una volta all'ora impiega 28 secondi per essere eseguito. Puoi fare clic sul punto dati per ottenere la query effettiva.

Tabella dati query lente

La tabella dei dati della query lenta offre una visualizzazione tabellare di tutti i dati della query lenta. Le tabelle di dati mostrano diverse metriche importanti sulle tue query lente:

  • Digita - Tipo della query:interroga, inserisci, aggiorna, rimuovi ecc.
  • Banca dati e raccolta – Il Db e la raccolta della query
  • Richiesta – La query effettiva con i parametri della query rimossi
  • Conte – Il numero di volte in cui la query è stata eseguita nel periodo di tempo selezionato
  • nScansionato – Il numero di voci scansionate nell'indice + il numero di oggetti scansionati dalla raccolta
  • Durata(ms) – Il tempo medio di esecuzione della query in ms
  • Lunghezza della risposta (byte) – La lunghezza media della risposta del risultato della query in byte
  • nRestituito - Il numero medio di documenti restituiti per esecuzione della query
  • Blocco lettura (micro secondi) – Il tempo medio di blocco della lettura in micro secondi
  • Blocco scrittura (micro secondi) – Il tempo medio di blocco della scrittura in micro secondi

Puoi ordinare la tabella delle query lente in base a una qualsiasi delle colonne precedenti per creare la visualizzazione di cui hai bisogno. I dati della query possono anche essere scaricati in Excel per l'analisi. Fare clic sul collegamento "Scarica dati come CSV" per scaricare i dati della query lenta ed eseguire l'analisi personalizzata in Excel.

Per identificare facilmente le query problematiche, forniamo una serie di viste integrate.

Query lente ordinate per "Più frequenti"

Questa visualizzazione presenta (in ordine decrescente) le query eseguite più frequentemente nel sistema. Si desidera prestare particolare attenzione alle prime query nell'elenco. Se il loro valore nScanned è alto o la durata è alta, devi aggiungere l'indice appropriato per questa query. Ciò riduce il numero di documenti scansionati dal disco.

Query lente ordinate per "Numero massimo di documenti/indici scansionati"

Questa visualizzazione presenta (in ordine decrescente) le query che esaminano la maggior parte delle voci di indice o la maggior parte dei documenti in una raccolta. Un valore "nScanned" alto implica che non hai un indice o non hai l'indice giusto. Potrebbe non essere possibile aggiungere un indice per ogni query nel sistema, ma dovresti assicurarti che almeno le query ad alta frequenza siano tutte ben indicizzate.

Query lente ordinate per "Query più lenta"

Questa visualizzazione presenta (in ordine decrescente) le query che richiedono il tempo massimo per l'esecuzione. Se la query viene eseguita molto di rado, puoi decidere se desideri ottimizzarla.

Query lente ordinate per "Numero massimo di documenti restituiti"

Questa visualizzazione presenta (in ordine decrescente) le query che restituiscono il maggior numero di risultati. La restituzione di molti risultati spesso comporta un carico di rete sul sistema. Dovresti anche assicurarti di restituire solo i campi di cui hai bisogno dal documento e non tutti i campi.

Query lente ordinate per "Blocco lettura"

Questa visualizzazione presenta (in ordine decrescente) le query che consumano il tempo massimo di blocco della lettura in micro-secondi. Se stai utilizzando il motore di archiviazione WiredTiger, questo in genere non è un problema poiché WiredTiger utilizza il blocco a livello di documento.

Query lente ordinate per "Blocco scrittura"

Questa visualizzazione presenta (in ordine decrescente) le query che consumano il tempo massimo di blocco della scrittura in micro-secondi. Se stai utilizzando il motore di archiviazione WiredTiger, questo in genere non è un problema poiché WiredTiger utilizza il blocco a livello di documento.