我们的系统是PHP+mysql(5.1.38)+memcache, 对数据的读取使用了memcache进行了缓存。
但是写入没有经过缓存,是同时向memcache和mysql写入一份。昨天进行了压力测试(每2秒内1万并行访问),跑了10分钟左右,mysql的服务器CPU占用10%以内,我查看mysql最大连接数133,没有产生慢查询,测试用的表只有600多条数据,有20多个字段但是,我修改了mysql配置,配置的最大连接数是2000。在压力测试期间,我手动连接,会产生连接mysql失败的报错。我的问题是:
    怎么调整才能够让mysql(接近)满负荷运行?
或者说:
    什么原因可能导致mysql能频繁产生连接失败最大连接数却上不去?谢谢

解决方案 »

  1.   

    没试过,能不能写一程序,每个里面10次单独不同连接号;
    再试一下。
    因为一个执行通常只连一次,你的apache并发能达到多少? apache并发数决定了你的连接数,可调调看
      

  2.   


    用的是nginx+fastcgi,我发出的并发数是可承受的
      

  3.   

    nginx能否查询并发状态?压力用自已程序测一测试试,加随机参数另外,nginx有没有缓存,有去掉
      

  4.   

    曾经我在压力测试的时候遇到过这样一个问题  并发访问越调越大 web服务器端和数据库服务器的压力只在开始的时候与测试压力成正比 之后始终无法到达最大 
    后来查到的原因是 发出并发请求机器所在局域网的路由器有瓶颈,很多请求都困死在局域网内了 
    可参考查一下