CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了centos – 如何配置Apache“worker”以实现最大并发性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

希望这是一个很好的问题,对类似情况下的任何人都有用.我最近从我公司的一位非常高级的 Linux管理员那里接手,并且我第一次必须建立一个新的服务器来为我们的客户提供服务.我的前任在这个问题上留下了有限的文件,因为在他离开时其他事情的优先级更高.我已经广泛地提到了我的文档,以及以前服务器的配置和大量的在线阅读来设置所有内容. 我正在构建的服务器的“堆栈”如下:CentOS 7,Apache 2.4.6
希望这是一个很好的问题,对类似情况下的任何人都有用.我最近从我公司的一位非常高级的 Linux管理员那里接手,并且我第一次必须建立一个新的服务器来为我们的客户提供服务.我的前任在这个问题上留下了有限的文件,因为在他离开时其他事情的优先级更高.我已经广泛地提到了我的文档,以及以前服务器的配置和大量的在线阅读来设置所有内容.

我正在构建的服务器的“堆栈”如下:CentOS 7,Apache 2.4.6,MariaDB 5.X,Tomcat 7服务JSP / Servlet.之前的生产安装使用了CentOS 5,旧版本的Apache和MySQL以及tomcat 5.X.

Apache是​​前端,它使用AJP连接到tomcat后端.大多数流量都是https.

服务器,我认为是Gen 9 HP服务器,它在RAID 1阵列中有32GB RAM和SSD.在开始工作之后,我现在关注的是最大化其同时为用户提供服务的能力,我预计数百名用户的爆发并不罕见.为此,我希望在堆栈中的任何一点防止出现瓶颈:从tomcat和MariaDB开始,采取特定于这些措施,我满意的措施.然而,继续使用Apache,我发现理解我应该做什么更加困难.

有3种不同类型的“工人”,我有3个主要问题优化:
1.有三个选项,prefork,mpm_worker和mpm_event.我真的不明白如何配置它们然我对每个用途有一般性的了解.
2.与之前服务器中的Apache不同,StartServers,ServerLimit,MaxrequestsPerChild等选项未在/etc/httpd/conf/httpd.conf中列出.我可以手动覆盖认设置吗?除了“上次手动添加它们”之外还有什么理由可以在较旧的httpd.conf中找到设置而不是新的设置吗?

我指的是这个,在较旧的httpd.conf中,我在新的配置文件中看不到任何类似的东西,只有一个规范:

请注意,我用//替换了哈希符号以表示httpd.conf中的注释,因为哈希符号会使文本显示标题.

为了解决我在新服务器上遇到的问题,我不知道哪个工作器在旧服务器上使用,prefork和mpm_worker都有设置,但是没有我能找到的实际规范.

>稍微调整之后,如果我愿意,我可以用mpm_worker启动服务器(必须首先禁用PHP.conf文件)但是我不确定控制一切的模块是否是线程安全的(虚拟主机模块,openssl,mod_proxy_ajp) . mod_proxy_ajp是我唯一使用的东西,在任何意义上都是不寻常的.

服务器尚未投入生产,因此我没有选择在大量当前客户端上获取平均内存使用量来帮助确定最大客户端的“完美”数量,此外,我并不关心获取完美的数字,只是一个适当的数字.

如果我想确保大约约400人可能会在给定时间使用服务器,没有人看到http 500类型错误,我应该为Apache使用哪些设置?

在此先感谢,希望这不是太苛刻.

这里似乎有很多可能的问题,对于“响应”来说有点非结构化.
让我看看我是否可以帮助回答一些问题.

>确定正在使用的多处理模块(MPM).

“最简单”的方法是转储任何当前运行的模块并选择mpm,以查看正在运行的模块.这有两种方法

# apachectl -M | grep mpm
mpm_worker_module (shared)
# httpd -V | grep MPM
Server MPM:     worker

>更改正在使用的MPM

在CentOS7上,现在可以在名为/etc/httpd/conf.modules.d/00-mpm.conf的配置文件中控制它.它是一个文件,任何时候都只能取消注释一个LoadModule.

LoadModule mpm_worker_module modules / mod_mpm_worker.so

更改后需要重新启动服务以激活所需的MPm.
>设置所需的配置值

许多模块的配置指令在未指定时具有认值.
当使用prefork = 5时,使用worker的StartServers将认为3.在此处查看更多:https://httpd.apache.org/docs/current/mod/mpm_common.html#startservers.
我建议创建一个文件来包含您的覆盖,而不是编辑现有的覆盖.

像/etc/httpd/conf.modules.d/10-worker.conf这样的东西:

<IfModule mpm_worker_module>
    ServerLimit             250
    StartServers             10
    MinSpareThreads          75
    MaxSpareThreads         250
    ThreadLimit              64
    ThreadsPerChild          32
    MaxClients             8000
    MaxrequestsPerChild   10000
</IfModule>

与任何事情一样,调整确切的数字由您来测试您的工作负载和应用程序 – 像ab和siege这样的工具可以提供帮助.

> https://httpd.apache.org/docs/2.4/programs/ab.html
> https://www.joedog.org/siege-home/

大佬总结

以上是大佬教程为你收集整理的centos – 如何配置Apache“worker”以实现最大并发性全部内容,希望文章能够帮你解决centos – 如何配置Apache“worker”以实现最大并发性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。