2009-06-30

    Mysql关于sleep进程 - [mysql]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://bbayou.blogbus.com/logs/41686826.html

    最近公司更换新服务器,出了不少问题,用户登录不上,初步诊断Mysql服务器问题,然后在服务器下uptime和top,发现负载平衡最高达到了36,mysql的CPU占用到了90%,真是大跌眼镜。

    进入Mysql,show processlist,有200多个sleep进程,并且有locked进程。杀掉locked,优化了该条语句。但是情况还未好转,后来问了DBA,发现他正进行mysql大数据的操作,汗死。随后关掉网站,提示用户。

    过了两天,数据导完。发现sleep进程还是特别多,发现程序用了长连接,pconnect()的链接方式会检查是否有已经存在的链接,如果有的话就是用旧的链接,没有才会开启新链接。mysql_close无法关闭。这种连接方式会占用部分资源,如果不及时关闭,性能不佳的服务器甚至会导致瘫痪。

    因此想到修改配置文件:interactive_timeout,wait_timeout这两个值,默认是8小时,改未60秒。然后后台运行kill掉sleep进程的PHP。

    可问题是:DBA说sleep连接不用杀,因为系统用得到,我想可能是别的部门在用这台Mysql服务器吧,也就没管了,因为processlist的时候,看到的sleep进程不是我们这边发起的,也就没管了。记录下。

     


    收藏到:Del.icio.us




    Tag:Mysql
    引用地址: