用命令過濾MySQL慢查詢日誌
有一台web伺服器異常.
CPU耗盡導致所有請求阻塞,偶發,一般期間5-10分鐘.
在該時間段,資料庫整體負載正常.
使用命令查詢慢日誌.
指定某個IP,找到查詢時間大於100s,並且顯示當時執行的SQL
cat slow-log | sed '/\#/{N;N;s/\n//g}' | grep "Query_time: [1-9][0-9]\{2\}\." -n20
或者
cat slow-log | sed '/\#/{N;N;s/\n//g}' | grep "127\.0\.0\.1.*Query_time: [1-9][0-9]\{2\}\." -A5
-bash-4.1$ cat slow-log | sed '/\#/{N;N;s/\n//g}' | grep "Query_time: [1-9][0-9]\{2\}\."
# Time: 151117 15:49:01# User@Host: xx[xx] @ [IP] Id: 12827130# Query_time: 103.301519 Lock_time: 0.000080 Rows_sent: 716360 Rows_examined: 1782770
# Time: 151117 15:57:41# User@Host: xx[xx] @ [IP] Id: 12827130# Query_time: 102.565315 Lock_time: 0.000088 Rows_sent: 1066410 Rows_examined: 1066410
# Time: 151117 16:33:51# User@Host: xx[xx] @ [IP] Id: 12827970# Query_time: 265.482413 Lock_time: 0.000253 Rows_sent: 423799 Rows_examined: 5864759
# Time: 151117 16:34:02# User@Host: xx[xx] @ [IP] Id: 12827913# Query_time: 314.793697 Lock_time: 0.000266 Rows_sent: 897670 Rows_examined: 6338629
本文永久更新連結地址: