调试MySQL崩溃 - 12k打开的表?

问题描述:

我一直在运行一个网络服务器好几年了,但最近它开始行动了。我发现这个问题与MySQL有关,因为查询需要的时间越来越长,重新启动它可以解决问题。然而,昨天晚上,当服务器停滞不前时,整个事情都在我的脸上炸了,甚至连SSH都无法连接。调试MySQL崩溃 - 12k打开的表?

它是什么:它是一个CentOS 5 64位机器,8GB RAM 它运行的是什么:LAMP与几个低流量网站,一个Minecraft服务器和一个团队协议服务器。大多数网站正在运行Wordpress。 内存& CPU明智的是,当我发现MySQL请求需要很长时间时,我的未经训练的眼睛才能看到问题。 MySQL以开箱即用的配置运行,我从不改变任何东西。

所以我开始寻找今天的MySQL的状态,发现有几个数字是红色:

  • Innodb_buffer_pool_reads 813
  • Handler_read_rnd 19.1ķ
  • Handler_read_rnd_next 6.3米
  • Created_tmp_disk_tables 1.1ķ
  • Sort_merge_passes 1
  • Opened_tables 12.5 k
  • Table_locks_waited 2

可惜我完全无言以对,当涉及到这些数字。唯一我认为很奇怪的是开放表格。我无法告诉你为什么我会有12k张桌子。当我查看列表时,只有85.该数字在启动服务器后立即在2K。

任何想法可能是错误的?我能做些什么来调试?

+1

您应该将此问题发送到http://dba.stackexchange.com/ –

如果问题是如何调试,我想这是一个答案一点点:(潜艇的问题?:什么是容量法)

  • 努力重建你的MySQL表的统计
  • 改善你的table_cache:如果opens_table的增加速度很快,特别是,你的内存一样正如你所说
  • 看看你的硬盘驱动器状态:完整?
  • 隔离问题:尝试从SQL加上一些简单的查询

起点。

问候,好运