如何对Apache服务器进行性能调整?

如何对Apache服务器进行性能调整?

我们有一个 Apache 服务器 2.4.X,我们将其用作一个 Java 应用程序前端的反向代理。我们已启用 Apache 状态模块Apache 状态我们可以看到空闲工作线程的数量始终为零,因此我们的应用程序性能不佳。我们的托管服务器有32 个核心和 64 GB RAM. 我们正在使用 Apache 的 mpm_worker 模块。Apache mpm_worker.我们当前的 mpm_worker 配置是:

 <IfModule mpm_worker_module>
    ServerLimit            150
    StartServers             8
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadsPerChild         25
    MaxRequestWorkers      150
    MaxConnectionsPerChild   10000
</IfModule>

我们经历了Apache 性能调优文章发现我们可以2930 请求工人根据我们的服务器配置。我的问题是。

  1. 改变最大请求工作者数单独到2930就可以吗?

  2. 我们需要改变吗每个子线程数 还 ?

  3. 启动服务器代表 Apache 子进程也需要更改/或者我们是否也可以根据我们的服务器配置更改它以获得最佳性能。

  4. 应该服务器限制更新的值最大请求工作者数情况是 2930 吗?

答案1

为了能够为您的服务器创建合适的配置文件,您需要了解此指令的每个配置的含义:

  • 服务器限制
    服务器将创建的最大进程数
  • 启动服务器
    服务器启动时将创建的进程数
  • 每个子线程数
    每个进程将创建的线程数
  • 最小空闲线程数
    必须存在的最小线程数。(主要在启动时)
  • 最大空闲线程数
    服务器将保持运行的最大线程数。
  • 最大请求工作者数
    服务器可以同时接受的最大连接数。
  • 每个子节点的最大连接数
    每个进程可接受的最大连接数。这决定了子进程的生命周期。

话虽如此。通常有多少个子进程在运行?
您已经达到ServerLimit子进程的上限了吗?

您还应该查看MaxClients设置,以确保它能接受所有传入的请求。

如果没有可用的工作线程,则增加MaxSpareThreads

启动新的子进程将消耗CPU 周期因此,在繁忙的站点上,MaxSpareThreads限制应该很大。

但处置旧进程也会释放你的系统内存,所以你应该限制生命时光与 的 过程MaxConnectionsPerChild.

另一方面应用程序运行时让你的线程保持忙碌。快点和你的Java应用程序将释放线程和内存。

举例来说:接收每秒 50 个请求每个请求都需要4 秒完成。你需要200 个线程满足这一需求。
如果每个请求仅需要2 秒你可以只用100 个线程

相关内容