解决方案 »

  1.   


    已经解决了,是由于出发了mysql5.0.67的BUG导致的。    在mysql5.0.67版本中,动态视图information_schema.CLIENT_STATISTICS会统计连接Mysql的客户端的实时信息,其中CLIENT字段的长度是16字节(是不是跟最大长度的IP地址字符数一致?),它存储的是主机名,但是我在/etc/hosts中配置的主机名长度却超过了16个字符:
    # cat /etc/hosts
    192.168.1.104 abcdefghijklmn_xxxx
           这样就导致mysql5.0.67在往information_schema.CLIENT_STATISTICS里面统计客户端信息的时候,遇到BUG,这时mysql会不断地往里面重新插入记录,正常情况中,每个主机名只会生成一条统计记录,然后Mysql会实时更新它。但是此时主机名长度超过16字符触发了BUG,会导致mysql记录的client名称是“abcdefghijklmn_",它每次更新这个主机的动态信息时,都会重新生成一条记录,然而这条记录是没有任何意义的,除了client字段的值守“abcdefghijklmn_",其它所有字段的值都是"0"。
            随着APP不断地访问mysql,information_schema.CLIENT_STATISTICS动态视图的记录数会增长到”亿“级别,服务器的内存同时也被一点一点地占用了,并且是线性稳定增长的。       解决方法是: 修改/etc/hosts中主机名的长度,然后重启mysql实例。多谢哈,回复的有点晚。