MongoDB CPU 利用率高,分析慢请求
Jemeter 压测过程,发现mongodb的CPU均达到100%,需要查看mongodb的执行情况,使用mongo自带的profiling功能。
profiling将请求的执行情况记录在DB下的 system.profile
集合里,profiling 有3种模式:
在mongodb的客户端执行:
>db.getProfilingLevel()
根据返回值
0 代表不开启
1 代表记录慢指令(默认100ms)
2 代表记录所有指令
更改此值,使其生效。
db.setProfilingLevel(1)
Profile默认是记录超过100ms的请求,也可以通过添加-slowms启动参数配置或调用db.setProfilingLevel时加上第二个参数控制。
db.setProfilingLevel(level,slowms);
>db.setProfilingLevel(1,100);
接下来就是查看最新的profile记录:
>db.system.profiling.find().sort({$natural:-1}).limit(30)