日期:2014-05-17  浏览次数:20452 次

服务器运行了三十天,部分请求变慢了求解决
部署在阿里云上的服务器,双核,内存4G。centos6.4,apache,php5.3,mysql,Yii框架。PV一天三万多,负载并不高。
运行了三十天,这两天变得不太稳定,有时候出现请求时间长,大约1-10秒内。

通过MYSQL的profile记录了一下查询超过0.03秒的SQL语句,发现有时候update,closing tables,end,query end其中一两个耗时比较长,从0.几秒到几秒不等。而这些语句都是比较简单的update , insert , select语句。

还有一些请求是运行时间长,又没有SQL慢查询记录的。

同一样的请求,有时候就慢,有时候就快。。top命令监测下,CPU基本在10%多,内存30%,CPU wa一般都在30%以下,偶尔会到四十多。

求各位大神帮看看是什么原因。。
服务器 centos mysql php

------解决方案--------------------
感觉是数据库设计问题,索引设计的问题。但是说mysql没有慢查询,就不清楚了。
------解决方案--------------------
查看一下各项日志,如:apache日志,mysql日志,看是否有异常现象。
------解决方案--------------------
阿里云的IO瓶颈问题不是一天两天了...
------解决方案--------------------
怎么说呢,觉得,国内的云服务器目前不是很靠谱,之前有用几台云服务器,时不时就不稳定,但是没遇过IO问题,主要是连不上,或者机器卡死。
------解决方案--------------------
数据量大了,自然查询速度就慢了。。。

你说的有时慢有时快,这跟并发量有关,也跟网络当前状况有关,还跟db当前的负载有关。


数据库的锁有时也会影响写的速度。尤其是你在运用了大量MYISAM表时,表级锁对于同时有读写操作的表来说是致命的。所以尽量都用innodb,除非你100%确定某个表对于用户来说永远没有写操作。