背景:發現新裝的mysql空跑(除了prometheus監控),單核100%,比較奇怪……
使用strace看看到底發生了啥:
strace -o /tmp/strace_output.txt -T -tt -f -e trace=read,open -p 'mysql_pid'
查看輸出文件:
153207 10:41:20.846346 open("/dev/shm/#sql_a7cd_2.MAD", O_RDWR|O_CLOEXEC) = 66 <0.000008>
153207 10:41:20.846620 open("/dev/shm/#sql_a7cd_2.MAI", O_RDWR|O_CREAT|O_TRUNC|O_NOFOLLOW|O_CLOEXEC, 0660) = 65 <0.000009>
153207 10:41:20.846958 open("/dev/shm/#sql_a7cd_2.MAD", O_RDWR|O_CREAT|O_TRUNC|O_NOFOLLOW|O_CLOEXEC, 0660) = 66 <0.000009>
發現的不停的有臨時表被打開(strace玩的不熟,只能解讀到這裏),來來回回就這麼點輸出內容,看來真的是空跑啊
情況無比詭異。爲啥會有臨時表的創建…
root@[(none)] 04:13:08 >show variables like 'innodb_buffer_pool_size';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| innodb_buffer_pool_size | 5242880 |
+-------------------------+---------+
也是醉了,5M,再看下配置文件,果然,innodb_buffer_pool_size=64
木有單位…
好吧~ 塵歸塵土歸土
學習鏈接:
1. binlog rotate引發的MySQL阻塞事件
2. Strace命令
3. 使用truss、strace或ltrace診斷軟件的”疑難雜症”