美文网首页我爱编程
mongodb 性能优化文档

mongodb 性能优化文档

作者: 陆遥远 | 来源:发表于2018-04-10 15:11 被阅读0次

    检查现有系统的运行

    ps -ef | grep mongo

    检查系统是不是宕机

    sudo grep mongod /var/log/messages

    查看mongodb的进程和子线程

    pstree -p | grep mongo

    按照内存大小排序显示进程

    ps aux --sort=%mem

    查看端口

    netstat -tunpl | grep 27018

    查看端口号对应的进程

    netstat -antp|grep 2897

    mg1的启动配置 内网IP: 10.30.41.83

    /usr/local/src/mongodb/bin/mongod -f /usr/local/src/mongodb/bin/mongodb.conf
    /usr/local/src/mongodb/bin/mongod -f /usr/local/mongoShard/mongodb.conf
    mongos --configdb configRS/10.30.41.83:37017,10.30.40.71:37017,10.25.33.111:37017 --port 27018 --fork --logpath=/usr/local/mongoRouter/log/mongo.log

    停止mongodb的正确方法

    pkill mongod

    停止mongodb的不正确做法,会锁表,必须删除锁才能启动

    kill -9 pid
    killall mongod
    rm -fr data/mongod.lock

    服务器信息

    db.serverStatus()
    db.printShardingStatus()

    连接和内存 mapped:映射到内存的数据大小、visze:占用的虚拟内存大小、res:实际使用的内存大小

    db.serverStatus().connections #连接数
    db.serverStatus().mem
    db.serverStatus().dur #日志Journal相关

    命令行参数

    db.serverCmdLineOpts()

    查看集群的大小

    db.stats();

    查看库的大小

    db.mscrm.stats();

    查看链接当前db的物理主机

    db.getMongo();

    显示所有的库

    show databases;

    切换ku

    use mscrm

    查看表

    show collections;

    查看表

    db.t_project_cwarehouse.find().limit(1);

    查看当前的操作

    db.currentOp()
    db.currentOP({"ns":"crm_mshuoke_com"})

    查系统中所有的索引

    db.system.indexes.find();

    查一个库上的所有的索引,ns是数据库名.集合名

    db.system.indexes.find({"ns":"mylearndb.user"});

    在数据库空闲时创建索引,不会阻塞数据库服务,但还是会很耗费系统

    db.user.ensureIndex({"name":1,"registered":-1},{"background":true});

    得到指定名称的聚集集合(table)

    db.getCollection("account");

    获取当前db下的所有集合

    db.getCollectionNames();

    显示当前db所有聚集索引的状态

    db.printCollectionStats();

    命令可以统计当前DB内的collection数目,DB可支持collection数量是由于nssize参数指定的,它指定了dbname.ns磁盘文件的大小,也就指定了DB可支持的最大collection数目,ns为namespace缩写。默认nssize为16MB

    db.system.namespaces.count()

    查看慢查询的状态

    db.getProfilingStatus();

    设置慢日志的状态,1000毫秒就记录

    db.setProfilingLevel(2,100);

    查看慢日志

    db.system.profile.find()

    按照插入顺序逆序查看最近3条

    db.system.profile.find().sort({$natrual: -1}).limit(3)
    db.system.profile.find().limit(3).sort({ ts : -1 }).pretty()

    db.project_customers_5993e3a426d509663164d676.find({ callStat.called: { $gte: 2 }, $or: [ { callStat.answered: { $exists: false } }, { callStat.answered: 0 } ], created: { $lte: new Date

    (1508000412807) } })explain("executionStats")
    db.project_customers_5993e3a426d509663164d676.find({ callStat.called: { $gte: 2 }, $or: [ { callStat.answered: { $exists: false } }, { callStat.answered: 0 } ], created: { $lte: new Date

    (1508000412807)}})explain("executionStats")
    db.project_customers_5993e3a426d509663164d676.find()
    db.project_customers_5993e3a426d509663164d676.find({callStat.called:{ $gte:2})

    慢日志查看

    db.system.profile.find().pretty()
    db.system.profile.find({op:'command'}).limit(1)

    返回所有的操作,除command类型的

    db.system.profile.find( { op: { $ne : 'command' } } ).pretty()

    返回大于10秒慢的操作

    db.system.profile.find( { millis : { $gt : 50000 } } ).pretty()

    相关文章

      网友评论

        本文标题:mongodb 性能优化文档

        本文链接:https://www.haomeiwen.com/subject/xhhnhftx.html