是一个商城系统,ZENCART的点击量每天也有几十万次吧现在是我的独立服务器基本上无法连续运行24小时过,
一般连续运行不到20小时,就会出现数据库停止不运行的情况。
这时当然就无法连接数据库了。但是其它方面没问题的,象APACHE,PHP都是能正常运行的,而且页面还可以打开,就是MYSQL停止不运行了,这个时候只有重启服务器才可以继续运行。所以我感觉是MYSQL内存占用过大,所以MYSQL停止了象这种问题我该如何来解决呢?总不能不用MYSQL了吧max connections 这个值目前设置的是175
interactive timeout这个值是 28800
wait timeout 这个值是 2
请问跟上面三个值有关系吗?另外就是,是不是max connections 我设置小一点,比如10,当达到这个值后,MYSQL进程就会重新启动呢?因为现在的服务器一停,就数据库几小时连接不上,除非重启服务器。
如果想让MYSQL服务自动重启的话, max connections 是不是要设置为 10 ,这样达到这个值的时候MYSQL服务是否会自动重启呢?
一般连续运行不到20小时,就会出现数据库停止不运行的情况。
这时当然就无法连接数据库了。但是其它方面没问题的,象APACHE,PHP都是能正常运行的,而且页面还可以打开,就是MYSQL停止不运行了,这个时候只有重启服务器才可以继续运行。所以我感觉是MYSQL内存占用过大,所以MYSQL停止了象这种问题我该如何来解决呢?总不能不用MYSQL了吧max connections 这个值目前设置的是175
interactive timeout这个值是 28800
wait timeout 这个值是 2
请问跟上面三个值有关系吗?另外就是,是不是max connections 我设置小一点,比如10,当达到这个值后,MYSQL进程就会重新启动呢?因为现在的服务器一停,就数据库几小时连接不上,除非重启服务器。
如果想让MYSQL服务自动重启的话, max connections 是不是要设置为 10 ,这样达到这个值的时候MYSQL服务是否会自动重启呢?
再查看执行的那条语句,把语句单独在mysql执行。找出原因,所以一般不要去改到apache。原因最多的是while,for,进入死循环所致。
另外,由于是PHP的,可能经常有死连接。你可以写个脚本,定期杀掉那些死连接。
网上有很多例子。
show processlists;
mysql当掉原因。是调整mysql配置参数,还是调整mysql的
mysql当掉原因。是调整mysql配置参数,还是调整mysql的架构。
所以最终原因,还是内存占用过大的问题但我不知道如何来解决这个问题,上面这位版主说的有很多死连接,这应该是一个原因,不知道怎样才能把这些死连接进程全杀掉,有这样的PHP脚本吗,还是服务器上哪里设置?
我做了优化,把很多MYSQL查询的地方全改为数组来实现,比如有8000个产品,每个对应一个不同的产品价格,以前是每次都从数据库通过产品ID来查这个产品价格。现在我改为将这8000个产品定义为数组,KEY就是产品ID,VALUE就是产品价格,然后每次调用产品时,直接使用这个数组的值,就可以得到产品价格了,这样就省去了调用数据库。难道这样做不对吗?因为大家所熟悉的一些把数据缓存到内存中的做法,都是这样的吧。
省去了从硬盘拿数据,又省去了调用MYSQL进程。便做了数组定义内存中以后,服务器死机更快了,我真不知道该如何去优化了。
别的查询就是ZENCART的标准查询,应该没什么BUG因为我要大量用API拿产品数据,空间商说跟用 file_get_contents和CURL 大量拿数据也有关
show variables like '%cache%'
看看都有哪些值,
调整一下
至少现在MYSQL停止的原因找到了,那就是内存不够用,也就是MEMERY USED占的百分比太大了。所以现在我的优化重点要放在如何减少内存占用上
还有内存实际有多大?