我拥有一个大约12.000个用户的社区网站(写得很重),单个VPS上有100个并发用户,1Gb内存.负载很少超过3,响应非常好.
目前,一个简单的文件缓存用于存储数据库查询结果,以减轻数据库的负载,但该网站仍然可以减慢220多个并发用户(负载测试).
我怎样才能找出瓶颈是什么?
我认为数据库很好,因为缓存工作正常,但磁盘IO可能会导致问题.每个页面加载有大约10个包含和来自DB或文件缓存的10-20个查询,以及大量的php处理.
我尝试使用memcache而不是文件缓存,但令我惊讶的是,负载测试似乎更喜欢文件缓存.
我计划使用Alternative PHP Cache,但我仍然不太了解缓存是如何失效的.我有一个单独的index.php来处理所有请求.缓存是否会存储每个请求的结果?如果我的一个包含(或缓存中的查询结果)发生变化,它会自动清除缓存吗?
找到瓶颈的任何其他建议(试过xdebug)?
谢谢,哈姆雷特