【问题标题】:PHP and Redis - Performance - PHP is a BottleneckPHP 和 Redis - 性能 - PHP 是一个瓶颈
【发布时间】:2012-04-17 05:59:34
【问题描述】:

我已经在我的 Ubuntu 桌面 11.10、8 核和 8 GB 内存上设置了 Redis 2.4。

运行 redis-benchmark 工具时,我始终看到每秒 100K 的 SETS 和 GETS 以及 4096 字节的包。 Apache 每秒将提供 24k 的 index.html 页面,所以这些数字非常好。

在测试总堆栈 - Apache - PHP5(使用 Fastcgi)和 Redis 的性能时,最大吞吐量为每秒 250 个请求。

如果我注释掉对 Redis 的调用,我仍然每秒收到 250 个请求。

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

所以问题是我应该实际期望这种组合的吞吐量是多少?

软件详情:

PHP 5.4 和 Apache 2.2.20 Linux 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 20:45:39 UTC 2012 x86_64

【问题讨论】:

  • 这将取决于 PHP 脚本将做什么以及硬件偏离路线。否则无法说明任何真正有用的内容。
  • 是的 - 当然 - 我明白这一点,但是我可以添加更多信息 - 我编译了 phpredis,github.com/nicolasff/phpredis 并设法将请求率提高到平均每秒 2000 个。我会将 php 文件精简到最低限度并添加函数以查看其作用。

标签: php linux performance apache redis


【解决方案1】:

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

【讨论】:

  • 感谢 vamur - 我做了更多研究 - 发现了一个基于 C 的库,可以显着提高性能 - phpredis。它是一个 PHP 扩展,具有基于脚本的框架的所有功能,但包含 10 倍的 r/s。
猜你喜欢
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多