部署在阿里云上的服务器,双核,内存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%以下,偶尔会到四十多。求各位大神帮看看是什么原因。。服务器centosmysqlphp

解决方案 »

  1.   

    感觉是数据库设计问题,索引设计的问题。但是说mysql没有慢查询,就不清楚了。
      

  2.   

    查看一下各项日志,如:apache日志,mysql日志,看是否有异常现象。
      

  3.   


    如果是数据库设计问题的话,一些简单的语句应该不会有问题吧。。像Insert , update主键,select主键这些语句有时候都可以用1秒多
      

  4.   

    数据量大了,自然查询速度就慢了你说的有时慢有时快,这跟并发量有关,也跟网络当前状况有关,还跟db当前的负载有关。
    数据库的锁有时也会影响写的速度。尤其是你在运用了大量MYISAM表时,表级锁对于同时有读写操作的表来说是致命的。所以尽量都用innodb,除非你100%确定某个表对于用户来说永远没有写操作。