mongodb启用Profiling定位问题
建议使用方法三,最简单且容易查看
一:如果mongodb已经运行了很长时间,此时查看mongod.log很大,没法打开查看相应信息
#ps -ef|grep mongod
找到相应的mongod的进程的pid
然后kill -SIGUSR1 pid 这样mongod就会重新生成一个日志文件
> db.setProfilingLevel(2);
{"was" : 0 , "ok" : 1}
> db.getProfilingLevel()
上面斜体的级别可以取0,1,2 三个值,他们表示的意义如下:
0 – 不开启
1 – 记录慢命令 (默认为>100ms)
2 – 记录所有命令
开启profiling后在mongod节点的log日志中查看
cat mongod.log
或是tail -300 mongod.log
二.
以后你们遇到了这种某个操作慢的问题直接从数据库里在小数据下打开第5级log,看看它访问了那些表格,直接去看Py中有没有index
一般说来只要系统不瘫痪,没有index是慢的直接原因
db.adminCommand({logRotage:1})
kill -SIGUSR1 xxx
db.setLogLevel(1, "query")
db.setLogLevel(1, "command")
三
为了以后尽快的定位专属MongoDB的问题,请你们如果发现哪个操作或者并行操作性能慢的话帮忙抓取一下MongoDB log。
分为两方面:
Profiling: 如果我们定义所有的慢于100ms的数据库操作多为慢操作的话做如下操作:
use MyDomain
db.setProfilingLevel(1, 100), 用你测试的Domain 替换MyDomain
这样所有的慢操作都会在 db.system.profile这里显示。
db.setProfilingLevel(2) 是打开所有操作profile, 可以实验用,或者短时打开。但是一定要及时关闭。
show collections 会看到多了一个collection 叫system.profile
然后db.system.profile.find().pretty()
Log: 用db.setLogLevel(1,command)可以看到所有的操作,每个操作的用时都会记录下来。
记得定位后用db.setLogLevel(0,command)改回去。
mongodb启用Profiling定位问题的更多相关文章
- mongodb启用auth,使用密码登录
更新操作: db.users.update({'currentVersion':3},{$set:{'currentVersion':5}}) 首先安装下载(略过) mongod 启动服务,有多重启动 ...
- MongoDB分析工具之二:MongoDB分析器Profile
MongoDB优化器profile 在MySQL 中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB 中是否有类似的功能呢?答案是肯定的,那就是MongoDB Database Prof ...
- [MongoDB]Profiling性能分析
摘要 上篇文章介绍了mapReduce这个聚合操作.本篇将继续学习,db有了,collection和document也有,基本上够用了,但是随着项目上线后,发现业务数据越来越多,查询效率越来越慢,这时 ...
- MongoDB 存储引擎:WiredTiger和In-Memory
存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引 ...
- MongoDB的真正性能-实战百万用户一-一亿的道具
使用情景 开始之前,我们先设定这样一个情景: 1.一百万注册用户的页游或者手游,这是不温不火的一个状态,刚好是数据量不上不下的一个情况.也刚好是传统MySql数据库性能开始吃紧的时候. 2.数据库就用 ...
- Mongodb Manual阅读笔记:MongoDB教程
Mongodb教程的说明,可以当手册用 Getting Started Install MongoDB on Linux Systems Install MongoDB on Red Hat Ente ...
- MongoDB的真正性能-实战百万用户
阅读目录 一.第一个问题:Key-Value数据库可以有好多的Key,没错,但对MongoDB来说,大错特错 二.第二个问题:FindOne({_id:xxx})就快么? 三.第三个问题:精细的使用U ...
- MongoDB CPU使用较高,如何排查?
前言 首先,我们简单梳理一下,CPU 在什么情况下才算负载较高?负载查看是通过"uptime"命令查看.大家都知道,命令显示的结果分别表示1分钟.5分钟.15分钟的负载情况,这点就 ...
- mongodb存储引擎
存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引 ...
随机推荐
- hdu5021 树状数组+二分
这 题 说 的 是 给 了 一 个 K—NN 每次查询离loc 最近的k个数 然后将这k个数的权值加起来除以k 赋值给 loc 这个位置上的 权值 我说说 我的做法 假如 查询的是loc 这个 ...
- 使用nagios+python监控nginx进程数
1.编写python脚本监控nginx #!/usr/bin/python # -*- coding: utf-8 -*- import os, sys, time import string imp ...
- SQL case when 多条件查询
基于列的逻辑表达式,其实就是CASE表达式.可以用在SELECT,UPDATE,DELETE,SET以及IN,WHERE,ORDER BY和HAVING子句之后.下面给个简单示例:
- Linux学习笔记之Linux通过yum安装桌面
Centos系统最小化安装以后,进入默认是命令行模式,所以需要进一步安装桌面. 1,本文使用的是CentOS 7 Minimal版本. 2,启动linux操作系统,进入后没有图形界面,但是有时候还是希 ...
- SQL学习笔记三(补充-3)之MySQL完整性约束
阅读目录 一 介绍 二 not null与default 三 unique 四 primary key 五 auto_increment 六 foreign key 七 作业 一 介绍 约束条件与数据 ...
- bzoj1008 / P3197 [HNOI2008]越狱
P3197 [HNOI2008]越狱 考虑所有状况:显然是$m^{n}$ 考虑所有不合法状况: 显然相邻两个数不相等 那么后面$n-1$个数就有$(m-1)^{n-1}$种取法 第一个数前面没有相邻的 ...
- 20145326 《Java程序设计》实验五——Java网络编程及安全实验报告
实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和20145211黄志远http://www.cnblogs.com/nostalgia-/组 ...
- Xilinx Uboot网卡驱动分析
1.MAC控制器.网卡.PHY.MDIO.mii.gmii.rgmii概念扫盲 网卡在功能上包含OSI模型的两个层,数据链路层和物理层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准 ...
- openwrt编译系统生成ubi镜像的各变量解析
1.MKUBIFS_OPTS的作用 传递参数给mkfs.ubifs 2.MKUBIFS_OPTS传递了哪些参数? 传递了最小输入输出单元大小.逻辑擦除块大小.最大物理擦除块的个数,分别由选项-m.-e ...
- SqlBulkCopy 批量导入数据 转换表字段类型
在使用SqlBulkCopy导入数据时,要有一个跟数据库里面同样的DataTable 要赋值表名 要求每个列跟数据库中列同名,并且列的类型要赋值跟数据库中列的类型对应的NET类型 要求数据库中为Nul ...