我有一台服务器莫名其妙地严重减速了 12 多个小时,之后才完全恢复。该服务器在 CentOS 5.4 上运行 mysql 5.5、redis、mongodb 和 apache http,内存很大。
在速度降低期间,受影响最严重的服务是 mysql,它需要 2 分钟才能运行一个通常只需一秒钟的简单查询。速度降低结束后,查询将在一秒钟内再次正常运行。所有其他服务仅受到轻微影响。
我在 mysql 上运行了标准测试:
- 显示完整进程列表
- 解释查询
- 记录慢速查询
- 分析并优化表格
- 检查服务器 CPU 和内存利用率
- 检查 IO 等待状态
- 测试硬盘访问时间
- 测试了从头编译的第二个 mysql 实例(失败,很慢)
- 重启mysql
- 重新启动 CentOS
虽然 mysql 显示 CPU 利用率最高达到了 12 个核心的 500%,但这些测试都没有出现任何异常。
简单的 SQL 查询包含一个连接。如果我删除连接,则该语句将立即运行。
我觉得,像这样看不见、无法追踪的减速一定表明内核坏了。
我还能检查什么来找出原因?因为这是该服务器第二次出现此问题。