专用服务器停止在80请求/秒 – 是MaxRequestWorkers的原因?

我有一个物理的Ubuntu服务器( 请参阅这里的一些规格 ),与Apache 2.4.7,PHP 5.5.9,MySQL 14.14,mysqlite和Yii框架1.16安装。 服务器起初的performance令人惊讶,但突然间,给予足够的压力,它开始超时(80+请求/秒)。 任何时候都没有任何系统资源靠近上限。 CPU只能达到25%。

在Apache错误日志中,我发现了以下内容:

server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting 

我应该只是增加这个数字吗?或者我只是在这里解决问题的副作用?

此外,我不完全理解文档。 在关于MaxRequestWorkers的部分,它也将它与ServerLimit设置绑定在一起,但我不太确定这两者应该设置为了正确协作。

其他技术细节migth有用:

  • 我已经禁用了.htaccess文件,而是通过Apacheconfiguration来configurationmod_rewrite。
  • Apache也给出了以下的警告,如果重要或不重要,

    apache2:无法可靠地确定服务器的完全合格的域名,使用127.0.1.1。 全局设置“ServerName”指令以禁止此消息

  • 这是服务器上唯一安装的网站。

  • 当时制作的性能图表是最高的:

IO和网络性能其他统计

除非你可以改进perforamnced(和你的代码可能会是效率低下),你将不得不把硬件在它。

任何时候都没有任何系统资源靠近上限。 CPU只能达到25%。

通常情况下,数据库是事务性的,CPU是最小的问题。 检查你的IO负载 – 这可能是你没有足够的IO容量来处理数据库。 CPU只是三个关键资源之一,另外两个是IO和内存。

你已经达到了MaxRequestWorkers服务器的限制。 这意味着当你有大量的请求,只是等待被服务,并在这个等待PHP的时间。

既然你还有很多资源,你可以安全地增加MaxRequestWorkers 。 同时检查PHP的超时设置。