mongodb 的 cpu 佔用一直很高,長期保持在150%。準確的說是cpu時間片的佔用,所用的伺服器是4核心的實體機,cpu佔用在30%到40%之間,不知道這樣是否正常。
服務讀寫都不是特別高
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1025 mongodb 20 0 7632304 340452 291908 S 157.8 4.2 87414:58 m
*0 *0 *0 *0 0 26181|0 0 3.5G 7.3G 334.0M 0 0|0 0|0 3m 2m 28 18:20:00
*0 *0 *0 *0 0 22740|0 0 3.5G 7.3G 334.0M 0 0|0 0|0 2m 1m 28 18:20:01
*0 *0 *0 *0 0 19667|0 1 3.5G 7.3G 334.0M 0 0|0 0|0 2m 1m 28 18:20:02
*0 *0 *0 *0 0 19194|0 0 3.5G 7.3G 334.0M 0 0|0 0|0 2m 1m 28 18:20:03
*0 *0 *0 *0 0 19212|0 0 3.5G 7.3G 334.0M 0 0|0 1|0 2m 1m 28 18:20:04
*0 *0 *0 *0 0 19168|0 0 3.5G 7.3G 334.0M 0 0|0 1|0 2m 1m 28 18:20:05
*0 *0 *0 *0 0 19205|0 0 3.5G 7.3G 334.0M 0 0|0 0|0 2m 1m 28 18:20:06
*0 *0 *0 *0 0 19207|0 0 3.5G 7.3G 334.0M 0 0|0 1|0 2m 1m 28 18:20:07
*0 *0 *0 *0 0 19218|0 0 3.5G 7.3G 334.0M 0 0|0 0|0 2m 1m 28 18:20:08
*0 *0 *0 *0 0 19206|0 0 3.5G 7.3G 334.0M 0 0|0 1|0 2m 1m 28 18:20:09
mongotop
ns total read write 2015-09-16T18:21:42+08:00
log_info.log_info_2015_09_16 164ms 164ms 0ms
log_data.log_data_2015_ms 164ms 0ms
log_data.log_data_2015_00901630ms 163ms
pprt.pprt_sub 130ms 130ms 0ms
pprt.pprt_hub 128ms 128ms 0ms
admin.system.roles 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
local.startup_log 0ms 0ms 0ms
local.system.indexes 0ms 0ms 0ms
local.system.namespaces 0ms 0ms 0ms
用 iostat 跑一下是不是系統 I/O出問題了。
建索引了嗎?
應該是缺索引
看看mongo日誌,找到查詢多和慢的查詢
針對性的創建索引