2012-04-17 118 views
0

我在Ubuntu桌面11.10,8核和8 GB RAM上设置了Redis 2.4。PHP和Redis - 性能 - PHP是瓶颈

运行redis-benchmark工具我总是可以看到每秒100K的SETS和GETS以及一个4096byte的包。 Apache将每秒服务器的index.html页面增加24k,因此这些数字非常好。

在测试整个堆栈上的性能时,Apache-PHP5(使用Fastcgi)和Redis maxthroughput是每秒250个请求。

如果我将Redis调用注释掉,我仍然会每秒获得250个请求。

使用htop,CPU使用率为95%PHP和5%Redis,Apache几乎看不见。

所以问题是我应该如何真实地期待吞吐量与这种组合?

软件的详细信息:

PHP 5.4和Apache 2.2.20的Linux 3.0.0-17泛型#30 Ubuntu的SMP周四3月8日二十时45分39秒UTC 2012 x86_64的

+1

这将取决于PHP脚本将会做什么以及硬件的关闭。否则,没有什么真正有用的可以说的。 – 2012-04-17 06:42:56

+0

是的 - 当然 - 我明白,但是我可以添加更多信息 - 我编译了phpredis,https://github.com/nicolasff/phpredis,并设法将请求速率提升至平均每秒2000次。我将把php文件剥离到最低限度,并添加函数来查看它的功能。 – Kylea 2012-04-17 15:15:59

回答

0

我会建议使用PHP的微框架而不是更大的框架。另外,如果您包含许多PHP文件,性能将下降(即使使用APC)。另外,PHP r/s不会匹配静态html r/s。

+0

感谢vamur - 我做了一些更多的研究 - 并发现了一个基于C的库,可显着提高性能 - phpredis。它是一个PHP扩展,它具有基于脚本的框架的所有功能,但包含10倍的r/s。 – Kylea 2012-04-19 21:45:33