apache专栏

性能测试—Apache多处理模块MPM相关参数设置

PHPer 2022-04-22 415 0 1

本章节主要讲解:“Apache多处理模块MPM相关参数设置解析”,MPM模块常见的相关参数包括:

MaxSpareServers、MinSpareServers、ServerLimit、StartServers、ThreadsPerChild、MaxConnectionsPerChild 、MaxRequestWorkers、ListenBackLog、ListenCoresBucketsRatio、MaxMemFree和ReceiveBufferSize。

1) MaxSpareThreads

  • 表示最大空闲线程数
  1. 语法:MaxSpareThreads number
  2. 适合的MPM模块:event,worker,mpm_netware,mpmt_os2

该指令设置空闲子进程的最大数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数,此参数设的通常不能设置过大,直到空闲线程的数量小于该数量为止。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成“MinSpareServers+1”。

对于worker和event来说,该荐默认值为 MaxSpareThreads 250。
对于mpm_netware默认为 MaxSpareThreads 100。
mpmt_os2的工作与mpm_netware。对于 mpmt_os2默认值10。

注意:

MaxSpareThreads值的范围受到限制。Apache httpd将根据以下规则自动更正给定值:
mpm_netware该值需要大于 MinSpareThreads。

对于worker和event,该值必须大于或等于

MinSpareThreads和 ThreadsPerChild的和。

2) MinSpareServers

  • 表示可用于处理请求峰值的最小空闲线程数
  1. 语法:MinSpareThreads number
  2. 适合的MPM模块:event,worker,mpm_netware,mpmt_os2

表示处理请求峰值的最小空闲线程数。不同的MPM处理此指令的方式有所不同。

worker模块和event模块该项默认值为 MinSpareThreads 75。如果服务器的空闲线程数小于所设置的值,则会创建子线程,直到空闲线程数大于我们所设置的最小空闲线程数。

如果服务器中没有足够的空闲线程,则将创建子进程,直到空闲线程的数量大于number为止。如果ListenCoresBucketsRatio 启用,可能会创建其他进程/线程。mpm_netware模块的默认值为 MinSpareThreads 10,对于 mpmt_os2模块默认值为5。

3) ServerLimit

  • 表示可配置进程数的上限
  1. 语法:ServerLimit number
  2. 适合的模块:event,worker,prefork

对于preforkMPM来说是通过MaxRequestWorkers来配置的,因为preforkMPM是一个子进程只生成一个线程。

对于worker和eventMPM来说会通过ThreadLimit和MaxRequestWorkers两个参数来配置其最大值。MaxRequestWorkers指令可以在服务器重启过程中修改。

使用这个指令时必须特别注意的是,ServerLimit的值不能设置的比实际的使用的值高出太多,如果设置的值过大,则会分配很多我们并不需要使用的内存。如果将ServerLimit和MaxRequestWorkers都设置为高于系统可以处理的值,则Apache httpd可能无法启动,或者系统可能变得不稳定。

  • 注意:一般来说ServerLimit最大的值可以设置到20000,这是由服务器限制的,如果需要设置为更大的值,那么需要修改mpm源文件中的MAX_SERVER_LIMIT值。

4) StartServers

  • 表示服务器启动时创建的子进程数
  1. 语法:StartServers number
  2. 合适的MPM模块:event,worker,prefork,mpmt_os2
  3. StartServers指令用于设置启动时创建的子服务器进程的数量。通常会根据:MinSpareThreads、MaxSpareThreads、MinSpareServers、MaxSpareServers来动态调整StartServers的值。

缺省值因MPM而异。worker和event默认为StartServers 3,prefork默认为5,mpmt_os2 默认为2。

5) ThreadsPerChild

  • 表示每个子进程创建的线程数
  1. 语法:ThreadsPerChild number
  2. 适合的模块:event,worker,mpm_winnt

该指令表示设置每个进程创建的线程数,服务器启动时先是创建子进程数,再创建线程,如使用mpm_winnet模块,则只会生成一个子进程,那么该指令设置应该需要大于服务器处理的最大负载,如果使用worker模块,会生成多个子进程,则线程总数应大于服务器的负载。

  • mpm_winnt该指令的缺省值为25。其它的MPM缺省值ThreadsPerChild是 64。
  • ThreadsPerChild设置的值不能超过ThreadLimit的值。如果配置了更高的值,它将在启动时自动减小并记录警告日志信息。

6) MaxConnectionsPerChild

  • 表示每个线程最多可以处理的连接数
  1. 语法:MaxConnectionsPerChild number
  2. 默认:MaxConnectionsPerChild 0
  3. 模块:event,worker,prefork,mpm_winnt,mpm_netware,mpmt_os2
  4. 兼容性:可用的Apache HTTP Server 2.3.9和更高版本。老的版本该参数为MaxRequestsPerChild 。

MaxConnectionsPerChild这个指令主要是设置单个子进程最多可以处理的连接数。如果子进程伺服的连接数达到这个最大值,那么该子进程就会被杀掉。...

立即注册

更新于:2022-04-22 13:36:41
    您需要登录后才可以评论。 立即注册
    相关内容

    Centos7利用yum安装apache+mysql8+php7 一篇搞定!

    apache专栏

    性能测试—Apache多处理模块MPM相关参数设置

    apache配置ip地址

    apache服务无法启动的解决方法

    Centos7 安装Apache过程详解

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享