如何在处理多个同时请求时稳定PHP响应时间?

时间:2013-02-14 18:49:42

标签: php performance apache optimization

我正在使用API​​构建一个PHP应用程序,该API能够对所有请求进行非常快速(100毫秒内)的响应,并且每秒最多可以处理200个查询(请求采用JSON,并且响应需要每次DB查找+保存)。对于单个请求,我的代码运行速度非常快(非常一致,大约30毫秒),但只要每秒响应多个请求,响应时间就会开始在整个地方跳转。

我不认为这是一个内存问题(PHP的内存限制设置为128MB,代码的内存使用量仅为3.5MB左右)或MySQL问题(代码之前任何数据库请求是因为与DB交互的位可能会成为瓶颈。

因为时间非常重要,所以我需要尽可能保持响应时间。所以我的问题是:在处理多个同时发出的请求时,是否有任何简单的调整(php.ini或Apache)来稳定PHP的响应时间?

1 个答案:

答案 0 :(得分:1)

根据瓶颈方面,我在服务器方面遇到的最慢的事情(最容易修复)将是您的文件系统和硬盘驱动器。我认为加快这一步将有助于其他所有领域。 因此,您可以升级httpdocs和数据库所在的硬盘驱动器。例如,您可以将它放在SSD驱动器上。甚至制作一张RAM磁盘并将所有文件放在其上。

或者,您可以setup your database使其在内存存储引擎上运行。 (相关信息here

当然,对于所有你需要大量物理内存的东西。同样重要的是要注意,如果您的网络/应用程序托管是共享的,那么您将遇到共享内存问题。

Tune Mysql

Tune Apache

Performance tune PHP

启用Zend Optimizer,或查看APCeAccelerator

以下是来自IBM的一些基本LAMP tuning tips

这里的a slideshare也提供了一些很好的建议