5.3. Apache HTTPD 性能调优
Apache httpd 形成卫星的核心部分,充当处理通过卫星 Web UI 或公开 API 发出请求的 Web 服务器。为增加操作的并发性,httpd 形成了第一个调优点,有助于提高 Satellite 的性能。
5.3.1. 配置 Apache httpd 可以启动多少个进程
默认情况下,HTTPD 使用预派生请求处理机制。借助预派生处理请求的模型,httpd 会启动一个新的进程来处理客户端的传入连接。
当 Apache 的请求数超过可启动以处理传入连接的子进程的最大数量时,httpd 将引发 HTTP 503 服务 Unavailable Error。amidst httpd 从进程之外进行处理,传入的连接也会导致您的卫星一侧出现多个组件故障,因为 httpd 进程可用性上的 Pulp 等组件依赖 Pulp。
您可以根据预期的峰值负载调整 HTTPD prefork 的配置,以处理更多并发请求。
对可能要处理 150 个并发内容主机注册的服务器修改示例(请参阅如何使用 custom-hiera.yaml
文件);这会修改配置文件 /etc/httpd/conf.modules.d/prefork.conf
:
您可以修改 /etc/foreman-installer/custom-hiera.yaml
:
apache::mod::prefork::serverlimit: 582 apache::mod::prefork::maxclients: 582 apache::mod::prefork::startservers: 10
apache::mod::prefork::serverlimit: 582
apache::mod::prefork::maxclients: 582
apache::mod::prefork::startservers: 10
将 ServerLimit 参数设置为 raise MaxClients 值。
如需更多信息,请参阅 httpd 文档中的 ServerLimit Directive。
设置 MaxClients 参数,以限制 httpd 可以启动以处理传入请求的子进程的最大数量。
如需更多信息,请参阅 httpd 文档中的 MaxRequestWorkers Directive。
5.3.2. 为 Apache HTTPD 配置 Open Files 限制
通过调整后,Apache httpd 可以在服务器上轻松打开很多文件描述符,这可能会超过大多数 Linux 系统的默认限制。为了避免因为在系统中超过最大打开文件限制而出现的任何问题,请创建以下文件和目录并设置下例中指定的文件内容:
流程
在
/etc/systemd/system/httpd.service.d/limits.conf
中设置最大打开文件限制:Copy to Clipboard Copied! Toggle word wrap Toggle overflow [Service] LimitNOFILE=640000
[Service] LimitNOFILE=640000
- 将您的更改应用到卫星服务器。更多信息请参阅 第 5.1 节 “应用配置”。
5.3.3. 调优 Apache Ice Child 过程
默认情况下,httpd 使用事件请求处理机制。当 httpd 的请求数超过可以启动来处理进入连接的最大子进程数时,httpd 会引发 HTTP 503 Service Unavailable 错误。amidst httpd 无法处理进程,进入的连接也可以导致 Satellite 服务的多个组件失败,因为 httpd 进程的可用性某些组件。
您可以调整 httpd 事件的配置,以根据您的预期的峰值负载处理更多并发请求。
在 custom-hiera.yaml
中配置这些数字会锁定它们。如果您使用 satellite-installer --tuning=My_Tuning_Option
更改这些数字,您的 custom-hiera.yaml
将覆盖此设置。只有在您有特殊需要时才设置您的数字。
流程
通过更改或添加以下行来修改 '/etc/foreman-installer/custom-hiera.yaml' 中的并发请求数:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apache::mod::event::serverlimit: 64 apache::mod::event::maxrequestworkers: 1024 apache::mod::event::maxrequestsperchild: 4000
apache::mod::event::serverlimit: 64 apache::mod::event::maxrequestworkers: 1024 apache::mod::event::maxrequestsperchild: 4000
示例与在 Satellite 服务器中运行
satellite-installer --tuning=medium
或更高版本相同。- 将您的更改应用到卫星服务器。更多信息请参阅 第 5.1 节 “应用配置”。