Serie Sviluppo di
Un’Applicazione
Back to Basics
Monitoring & Performance Tuning
Senior Solutions Architect, MongoDB Inc.
...
Agenda
• Riassunto
• Tools di Monitoring
– MongoDB command line e la shell
• Metriche chiave in MongoDB
• Logs
– Livelli d...
Q & A
• Virtual Genius Bar
– Use the chat to post
questions
– EMEASolution
Architecture / Support
team are on hand
– Make ...
Riassunto dell’Ultima Puntata
Tools di Backup e Approcci
• mongodump & mongorestore
• Copia del File system
• Snapshot del File system
• Non Usate mongo...
Mongodump
• Crea un file .bson
– (e un json di metadati)
– Sulla rete o direttamente sul file system
>mongodump –h myhost ...
Architetture di Backup
• Usate il secondary per il backup
– O un hidden secondary
• Fsync+Lock
• Il bilanciatore e’ off
– ...
Monitoring Tools
Tools
• I Tool chiave di MongoDB
– Mongostat
– Mongo shell
– Mongo Management Service mms
• Mtools
– Logs
• OS
– iostat
Architettura di MMS
Gli Alert di MMS
Collezione di Metriche e
Reportistica
Dati di Profile e Log
Mongostat
• Accesso alle statistiche chiave
– CollegareaunmongodounmongosfotIclusterinshardind
– Viualizzaoperazioneal sec...
Mongo shell
• Comandi per accedere alle metriche
– db.serverStatus()
– workingSet analyzer
//to access a subset of serverS...
WorkingSet analyzer
• Utile per stimare il ‘working set’ di un database
– Numero di ‘pagesInMemory’accessed in RAM su il
‘...
Le Metriche di MongoDB
• Queued readers | writers
• Page faults
• OpCounters
• Background flush process
• Memory usage
• Lock %
• Btree misses
• ...
Queued Reader | Writers
• Numero di
operazioni in attesa
per:
• Read Lock
• Write Lock
Page Faults
• Frequenza con cui
state andando su
disco a leggere I
dati?
• Può essere un problema se
l’IO del disco è satu...
Background Flush Process
• Quantità di tempo
per effettuare il
flush dei dati du
disco
• Anche questo può
indicare la
satu...
Memoria
• Virtual
• Mapped
• Resident
Lock %
• Percentuale di
tempo del lock
globale
Indici Btree
• Accessi
• Hits: valori trovati in
memoria
• Misses
• Male!
• Indica indici non
in memoria
Connessioni
• Connessioni al
database
• Crescono nel
tempo?
• Controllate la
logica di pool
nella vostra
applicazione
Logs
• Aumentate il livello di log
– Per vedere maggior informazioni sulle performance delle operazioni
– Efficienza degli indi...
• Problemi di Pinpoint
– In questoesempiopossiamovedere che c’èstatounospostamentodeldocumento
Esempio di output del Log
2...
• Analisi dei Log (esempio di sintassi)
– Mostrami le query che hanno impiegato più di 1000 ms
dalle 6 di mattina alle 6 d...
Mtools output
Saturazione del Disco
• iostat
– Utilizzo dell’IO dei dischi
– Controllate la % di utilizzo del disco
– Un’alta percentuale
• Se è sostenuta, do...
Riassunto
Riassunto
• Controllate regolarmente
– Settate degli allarmi a fronte di cambiamenti
• Controllate velocemente con la shel...
Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning
Upcoming SlideShare
Loading in...5
×

Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning

260

Published on

L’ultimo webinar della serie discuterà quali metriche sono importanti e come gestire e monitorare la vostra applicazione per migliorare le performance.

Massimo Brignoli:

Massimo ha 44 anni e vive a Milano. Ha lavorato nell’IT per 23 anni per aziende di trasporti, società web e database company. Nel 1998 è entrato una una piccola startup come sviluppatore aiutandola a diventare il più importante portale web italiano, venduto 3 anni più tardi per 700 milioni di dollari. E’ entrato a lavorare in MySQL come pre-vendita viaggiando in tutto il mondo e aiutando le società telecom ad adottare MySQL Cluster. Nel 2012 è entrato in SkySQL come product manager, seguendo l’integrazione con MariaDB e successivamente ha deciso di entrare in MongoDB per seguire nuove sfide professionali. Attualmente e’ Senior Solutions Architect.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
260
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • mongodump -d cms -c articles
    connected to: myhost
    2014-04-16T12:54:56.758+0100 DATABASE: cms to dump/cms
    2014-04-16T12:54:56.759+0100 cms.articles to dump/cms/articles.bson
    2014-04-16T12:54:56.816+0100 7 documents
    2014-04-16T12:54:56.817+0100 Metadata for cms.articles to dump/cms/articles.metadata.json
  • mongodump -d cms -c articles
    connected to: myhost
    2014-04-16T12:54:56.758+0100 DATABASE: cms to dump/cms
    2014-04-16T12:54:56.759+0100 cms.articles to dump/cms/articles.bson
    2014-04-16T12:54:56.816+0100 7 documents
    2014-04-16T12:54:56.817+0100 Metadata for cms.articles to dump/cms/articles.metadata.json
  • Webinar Italiano: Back-to-Basics: Sessione 8 - Monitoraggio e Performance Tuning

    1. 1. Serie Sviluppo di Un’Applicazione Back to Basics Monitoring & Performance Tuning Senior Solutions Architect, MongoDB Inc. massimo@mongodb.com Massimo Brignoli #mongodb
    2. 2. Agenda • Riassunto • Tools di Monitoring – MongoDB command line e la shell • Metriche chiave in MongoDB • Logs – Livelli di Log – mtools • Saturazione del Disco
    3. 3. Q & A • Virtual Genius Bar – Use the chat to post questions – EMEASolution Architecture / Support team are on hand – Make use of them during the sessions!!!
    4. 4. Riassunto dell’Ultima Puntata
    5. 5. Tools di Backup e Approcci • mongodump & mongorestore • Copia del File system • Snapshot del File system • Non Usate mongoimport & mongoexport! //Esempio di mongodump server> mongodump -h myhost -d cms -c articoli
    6. 6. Mongodump • Crea un file .bson – (e un json di metadati) – Sulla rete o direttamente sul file system >mongodump –h myhost -d cms -c articles connected to: myhost 2014-04-16T12:54:56.758+0100 DATABASE: cms to dump/cms 2014-04-16T12:54:56.759+0100 cms.articles to dump/cms/articles.bson 2014-04-16T12:54:56.816+0100 7 documents 2014-04-16T12:54:56.817+0100 Metadata for cms.articles to dump/cms/articles.metadata.json
    7. 7. Architetture di Backup • Usate il secondary per il backup – O un hidden secondary • Fsync+Lock • Il bilanciatore e’ off – In sharded cluster mongodump
    8. 8. Monitoring Tools
    9. 9. Tools • I Tool chiave di MongoDB – Mongostat – Mongo shell – Mongo Management Service mms • Mtools – Logs • OS – iostat
    10. 10. Architettura di MMS
    11. 11. Gli Alert di MMS
    12. 12. Collezione di Metriche e Reportistica
    13. 13. Dati di Profile e Log
    14. 14. Mongostat • Accesso alle statistiche chiave – CollegareaunmongodounmongosfotIclusterinshardind – Viualizzaoperazioneal secondo/memoriausate,page faults,codeecc. >mongostat -h localhost --port 27017 connected to: localhost:27017 insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn time *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:24 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:25 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:26 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:27 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:28 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:29 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:30 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:31 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.1% 0 0|0 0|0 62b 5k 2 09:08:32 *0 *0 *0 *0 0 1|0 0 1.67g 5.78g 29m 0 .:0.0% 0 0|0 0|0 62b 5k 2 09:08:33
    15. 15. Mongo shell • Comandi per accedere alle metriche – db.serverStatus() – workingSet analyzer //to access a subset of serverStatus output specify the sub document >db.serverStatus().mem { "bits" : 64, "resident" : 266, "virtual" : 5920, "supported" : true, "mapped" : 1712, "mappedWithJournal" : 3424 }
    16. 16. WorkingSet analyzer • Utile per stimare il ‘working set’ di un database – Numero di ‘pagesInMemory’accessed in RAM su il ‘overSeconds’ numero di secondi. – Page di Default è 4k – overSecond – delta tra il più vecchio e il nuovo >db.serverStatus({ workingSet : 1 }) { "note" : "thisIsAnEstimate", "pagesInMemory" : 723, "computationTimeMicros" : 4601, "overSeconds" : 2311 } overSeconds decreasing or small, workingSet could be larger than RAM
    17. 17. Le Metriche di MongoDB
    18. 18. • Queued readers | writers • Page faults • OpCounters • Background flush process • Memory usage • Lock % • Btree misses • connections Metriche Chiave Available from : • MMS • db.serverStatus() • mongostat
    19. 19. Queued Reader | Writers • Numero di operazioni in attesa per: • Read Lock • Write Lock
    20. 20. Page Faults • Frequenza con cui state andando su disco a leggere I dati? • Può essere un problema se l’IO del disco è saturo • Da usare assieme a iostat
    21. 21. Background Flush Process • Quantità di tempo per effettuare il flush dei dati du disco • Anche questo può indicare la saturazione del disco
    22. 22. Memoria • Virtual • Mapped • Resident
    23. 23. Lock % • Percentuale di tempo del lock globale
    24. 24. Indici Btree • Accessi • Hits: valori trovati in memoria • Misses • Male! • Indica indici non in memoria
    25. 25. Connessioni • Connessioni al database • Crescono nel tempo? • Controllate la logica di pool nella vostra applicazione
    26. 26. Logs
    27. 27. • Aumentate il livello di log – Per vedere maggior informazioni sulle performance delle operazioni – Efficienza degli indici – Spostamenti di documenti – Tempo di esecuzione delle operazioni Definite il livello di log //Increase log level verbosity from the shell > db.adminCommand( { setParameter:1, logLevel:1 } ) { "was" : 0, "ok" : 1 } > -v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv)
    28. 28. • Problemi di Pinpoint – In questoesempiopossiamovedere che c’èstatounospostamentodeldocumento Esempio di output del Log 2014-05-02T13:55:02.047+0100 [conn7] update cms.articles query: { _id: ObjectId('532198379fb5ba99a6bd4063') } update: { $inc: { comment_count: 1 }, $push: { comments: { $each: [ { date: new Date(1399035302013), text: "Data locality provides an amazing performance boost over relational" } ], $slice: -10, $sort: { date: 1 } } } } nscanned:1 nscannedObjects:1 nmoved:1 nMatched:1 nModified:1 keyUpdates:0 numYields:0 locks(micros) w:33529 33ms
    29. 29. • Analisi dei Log (esempio di sintassi) – Mostrami le query che hanno impiegato più di 1000 ms dalle 6 di mattina alle 6 di sera: • Ora, fai un grafico: Mtools prompt> mlogfilter mongodb.log --from 06:00 --to 18:00 -- slow 1000 > mongodb-filtered.log prompt> mplotqueries --logscale mongodb-filtered.log
    30. 30. Mtools output
    31. 31. Saturazione del Disco
    32. 32. • iostat – Utilizzo dell’IO dei dischi – Controllate la % di utilizzo del disco – Un’alta percentuale • Se è sostenuta, dovresti aumentare l’IO del disco – Sharding – RAID 1+0 – Partizionare su dischi differenti – Provisioned IOPS Tool del Sistema Operativo prompt> iostat –xmt 1
    33. 33. Riassunto
    34. 34. Riassunto • Controllate regolarmente – Settate degli allarmi a fronte di cambiamenti • Controllate velocemente con la shell e a linea di comando • Controllate i trend con I grafici di MMS • In caso di alto livello di utilizzo – Aumentate la RAM, l’IO del disco – Scalate orizzontalmente – (Controllate gli indici!!)
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×