Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

226
views

Published on

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

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
226
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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
  • Transcript

    • 1. Serie Sviluppo di Un’Applicazione Back to Basics Monitoring & Performance Tuning Senior Solutions Architect, MongoDB Inc. massimo@mongodb.com Massimo Brignoli #mongodb
    • 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. 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. Riassunto dell’Ultima Puntata
    • 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. 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. Architetture di Backup • Usate il secondary per il backup – O un hidden secondary • Fsync+Lock • Il bilanciatore e’ off – In sharded cluster mongodump
    • 8. Monitoring Tools
    • 9. Tools • I Tool chiave di MongoDB – Mongostat – Mongo shell – Mongo Management Service mms • Mtools – Logs • OS – iostat
    • 10. Architettura di MMS
    • 11. Gli Alert di MMS
    • 12. Collezione di Metriche e Reportistica
    • 13. Dati di Profile e Log
    • 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. 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. 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. Le Metriche di MongoDB
    • 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. Queued Reader | Writers • Numero di operazioni in attesa per: • Read Lock • Write Lock
    • 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. Background Flush Process • Quantità di tempo per effettuare il flush dei dati du disco • Anche questo può indicare la saturazione del disco
    • 22. Memoria • Virtual • Mapped • Resident
    • 23. Lock % • Percentuale di tempo del lock globale
    • 24. Indici Btree • Accessi • Hits: valori trovati in memoria • Misses • Male! • Indica indici non in memoria
    • 25. Connessioni • Connessioni al database • Crescono nel tempo? • Controllate la logica di pool nella vostra applicazione
    • 26. Logs
    • 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. • 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. • 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. Mtools output
    • 31. Saturazione del Disco
    • 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. Riassunto
    • 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!!)