我已经运行网络服务器好几年了,但最近它开始运行了。我发现问题出在 mysql 上,因为查询需要的时间越来越长,重新启动它会解决问题。然而,昨晚,当服务器停滞得如此之多以至于我什至无法通过 SSH 连接到它时,整个事情在我的脸上爆炸了。
它是什么:这是一台CentOS 5 64位机器,8GB内存它正在运行的内容:LAMP有几个低流量网站,一个minecraft服务器和一个teamspeak服务器。大多数网站都在运行Wordpress。内存和CPU方面,当我意识到MySQL请求需要很长时间时,未经训练的眼睛看不到任何问题。MySQL使用开箱即用的配置运行,我从未更改过任何东西。
所以我今天开始查看MySQL状态,发现有几个数字是红色的:
- Innodb_buffer_pool_reads 813
- Handler_read_rnd 19.1 k
- Handler_read_rnd_next 6.3 米
- Created_tmp_disk_tables 1.1 千米
- Sort_merge_passes 1
- Opened_tables 12.5 千米
- Table_locks_waited 2
不幸的是,当涉及到这些数字时,我完全一无所知。我认为唯一奇怪的是开放的桌子。我无法告诉你为什么我会有 12k 张开桌。当我查看列表时,只有 85 个。该图在启动服务器后立即为 2K。
知道可能出了什么问题吗?我该怎么做才能调试呢?
如果问题是如何调试它,我想这是一个答案:
- 尝试重新生成 MySQL 表的统计信息(子问题:交易量是多少?
- 改善您的table_cache:如果opened_table的增加很快,尤其是,并且您的 RAM 像您所说的一样好
- 查看您的硬盘状态:已满?
- 隔离问题:尝试从sql plus进行一些简单的查询
起点。
问候,祝你好运