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