• MongoDB Database Profiler


    数据库profiler细粒度收集mongodb的写操作、游标、数据库命令等。可以在数据库级别或者实例级别开启profiling。

    profiler将收集到的数据写入system.profile集合中。

    profiling的级别:

    0, 关闭profile,但是mongod会将超过slowOpThresholdMs的值操作写入日志

    1, 只抓取slow操作,缺省是超过100毫秒的操作

    2, 抓取所有数据库操作

    1.查看是否开启profile功能:

    > db.getProfilingLevel()
    0
    > 
    

    2.关闭profile功能:

    > db.setProfilingLevel(0)
    

    3.设置profile级别:

    > db.setProfilingLevel(1,50)
    { "was" : 0, "slowms" : 100, "ok" : 1 }
    >
    

    setProfilingLevel的第一个参数是设置当前数据的profiling级别,第二个参数是设置整个mongod实例的慢操作阈值。

    4.设置整个mongod的profiling级别

    #启动时,指定参数profile的值
    ./mongod --profile=1 --slowms=15
    

    示例:

    查看profiler数据
    数据库的profiler日志信息位于system.profile集合中。

    > db.setProfilingLevel(1,50)
    { "was" : 1, "slowms" : 50, "ok" : 1 }
    > db.profilingTest.insert({i:1})
    WriteResult({ "nInserted" : 1 })
    > db.profilingTest.find()
    { "_id" : ObjectId("56e3f62673c59411c4b1234c"), "i" : 1 }
    > db.profilingTest.find({$where:'sleep(70)'})
    > db.system.profile.find().pretty()
    {
            "op" : "insert",
            "ns" : "test.currentOpTest",
            "query" : {
                    "insert" : "currentOpTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3ebb713b6892d02827dde"),
                                    "i" : 6411413
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1),
                                    "w" : NumberLong(1)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 50,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:13:11.073Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "insert",
            "ns" : "test.currentOpTest",
            "query" : {
                    "insert" : "currentOpTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3ebb713b6892d02827de6"),
                                    "i" : 6411421
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1),
                                    "w" : NumberLong(1)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 166,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:13:11.252Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "insert",
            "ns" : "test.currentOpTest",
            "query" : {
                    "insert" : "currentOpTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3ed7e13b6892d028f10a4"),
                                    "i" : 7235419
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1),
                                    "w" : NumberLong(1)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 58,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:20:46.223Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "insert",
            "ns" : "test.currentOpTest",
            "query" : {
                    "insert" : "currentOpTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3eea513b6892d02975bee"),
                                    "i" : 7778981
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1),
                                    "w" : NumberLong(1)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 149,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:25:41.989Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "insert",
            "ns" : "test.currentOpTest",
            "query" : {
                    "insert" : "currentOpTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3f2bf13b6892d02b4401b"),
                                    "i" : 9672402
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1),
                                    "w" : NumberLong(1)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 143,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:43:11.201Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "insert",
            "ns" : "test.profilingTest",
            "query" : {
                    "insert" : "profilingTest",
                    "documents" : [
                            {
                                    "_id" : ObjectId("56e3f62673c59411c4b1234c"),
                                    "i" : 1
                            }
                    ],
                    "ordered" : true
            },
            "ninserted" : 1,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(2),
                                    "w" : NumberLong(2)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1),
                                    "W" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "w" : NumberLong(1),
                                    "W" : NumberLong(1)
                            }
                    }
            },
            "responseLength" : 25,
            "protocol" : "op_command",
            "millis" : 88,
            "execStats" : {
    
            },
            "ts" : ISODate("2016-03-12T10:57:42.769Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "query",
            "ns" : "test.profilingTest",
            "query" : {
                    "find" : "profilingTest",
                    "filter" : {
    
                    }
            },
            "keysExamined" : 0,
            "docsExamined" : 1,
            "cursorExhausted" : true,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 0,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(2)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "r" : NumberLong(1)
                            }
                    }
            },
            "nreturned" : 1,
            "responseLength" : 145,
            "protocol" : "op_command",
            "millis" : 94,
            "execStats" : {
                    "stage" : "COLLSCAN",
                    "filter" : {
                            "$and" : [ ]
                    },
                    "nReturned" : 1,
                    "executionTimeMillisEstimate" : 0,
                    "works" : 3,
                    "advanced" : 1,
                    "needTime" : 1,
                    "needYield" : 0,
                    "saveState" : 0,
                    "restoreState" : 0,
                    "isEOF" : 1,
                    "invalidates" : 0,
                    "direction" : "forward",
                    "docsExamined" : 1
            },
            "ts" : ISODate("2016-03-12T10:57:55.996Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    {
            "op" : "query",
            "ns" : "test.profilingTest",
            "query" : {
                    "find" : "profilingTest",
                    "filter" : {
                            "$where" : "sleep(70)"
                    }
            },
            "keysExamined" : 0,
            "docsExamined" : 1,
            "cursorExhausted" : true,
            "keyUpdates" : 0,
            "writeConflicts" : 0,
            "numYield" : 1,
            "locks" : {
                    "Global" : {
                            "acquireCount" : {
                                    "r" : NumberLong(8)
                            }
                    },
                    "Database" : {
                            "acquireCount" : {
                                    "r" : NumberLong(4)
                            }
                    },
                    "Collection" : {
                            "acquireCount" : {
                                    "r" : NumberLong(4)
                            }
                    }
            },
            "nreturned" : 0,
            "responseLength" : 109,
            "protocol" : "op_command",
            "millis" : 1030,
            "execStats" : {
                    "stage" : "COLLSCAN",
                    "filter" : {
                            "$where" : undefined
                    },
                    "nReturned" : 0,
                    "executionTimeMillisEstimate" : 70,
                    "works" : 3,
                    "advanced" : 0,
                    "needTime" : 2,
                    "needYield" : 0,
                    "saveState" : 1,
                    "restoreState" : 1,
                    "isEOF" : 1,
                    "invalidates" : 0,
                    "direction" : "forward",
                    "docsExamined" : 1
            },
            "ts" : ISODate("2016-03-12T10:58:07.439Z"),
            "client" : "127.0.0.1",
            "allUsers" : [ ],
            "user" : ""
    }
    > 
    

    5.修改system.profile集合的大小

    #1.关闭profiling
    > db.setProfilingLevel(0)
    #2.删除system.profile集合
    > db.system.profile.drop()
    #3.创建新得system.profile
    > db.createCollection( "system.profile", { capped: true, size:4000000 } )
    #4.重新开启profiling功能
    > db.setProfilingLevel(1)
    
  • 相关阅读:
    阿里巴巴2018秋招面经之前端岗(1~5面)
    面试分享:2018阿里巴巴前端面试总结(题目+答案 30题)
    2018年各大互联网前端面试题三(阿里)
    阿里巴巴2016前端工程师面试题
    2016 阿里校招笔试前端题目,你还记得吗?
    2018阿里前端校招分享(笔试篇)
    2017 阿里校招前端笔试题小结
    阿里2018校招编程题
    ko.js学习一
    简单的3d变换
  • 原文地址:https://www.cnblogs.com/abclife/p/5269752.html
Copyright © 2020-2023  润新知