最近的性能优化笔记

来源:互联网 发布:怎么查游戏端口号 编辑:程序博客网 时间:2024/06/07 20:22

1. 不要盲目靠 ab 来断定性能好坏

Apache 提供了 ab 工具来检查 httpd 性能,当然也间接的求出 php 的执行效率。在以往开发底层框架时,我总是用 ab 来检验性能和瓶颈,但是由于测试环境一直都在本地或局域网内的测试机,因此网络传输几乎可以忽略不计的,包括在上一个项目,我们在中国移动的机器上,也是通常由服务器 A ab 服务器 B。在这次操作中,这个因素也被惯性忽略了,尽管机器也是在同一个机房,但是机器时 IDC 买的,带宽都有一定的限制。我们在本地测试时,可达到 500RPS 的页面,在线上只能到 15~20RPS,等我们发现时带宽原因时,我们已被误导做了不少错误的决定⋯⋯

2. 独立数据库并不是就会提速

上线计划里,我们是先使用单服务器来支撑 80 多个站点,但由于 MySQLCPU 高居不下,我们选择了把 MySQLSphinx 分离到另外一台服务器上,性能上当然是好了,但是 Web 服务器数据库服务器的往返数据流量也占用了一定的带宽,性能的提升并没有想象中这么理想,更重要的是成本增加了。

3. 小缓存不如不用

缓存应该尽可能做大,意思是,比如我们要缓存分类,而通常这些分类又不会是很大的数据量,比如 1000 行以内,那么我们可以直接对整个分类表进行大缓存,而获取某个分类的信息,可以直接通过分类 ID 从大缓存中获取,而无需单独做一个分类的小缓

4. memcached 并不总比 file

在我们的测试中,在 2000 个 cache 的情况下,memcached 甚至比 file 的性能还要差。