我测量了使用VPS租赁服务器的网络服务器(Apache)能够同时处理的最大案件数量。


出版日期:2020年12月31日。



INFOMARTION > 我测量了使用VPS租赁服务器的网络服务器(Apache)能够同时处理的最大案件数量。

概述。

我测量了网络服务器(Apache)在同一时间能够处理的最大案件数,我想把结果写出来。 我们对可以提供的最大请求数量感到好奇,所以我们进行了一项调查。 将此作为选择VPS服务器规格的参考。

这次只对WEB(Apache)进行了测量,但对WEB/AP服务器(Apache和Tomcat)的测量,请参考下面的文章。

我测量了使用VPS租赁服务器的WEB/AP服务器(Apache和Tomcat)在同一时间可以处理的最大数量。

目录

  1. 测量
  2. 测量结果的细节
  3. 摘要

1. 测量

1-1. 测量环境

以下是将进行测量的环境。

■租赁服务器信息

CPU2core
memory1GB
SSD50GB

■服务器信息

OSCentOS 7.4 64bit
网络服务器Apache HTTP Server 2.4.41

1-2. 测量方法

我想用JMeter来测量这个问题。 JMeter是一个在Java中运行的负载测量工具。 该工具允许在同一时间抛出大量请求。 我们想用JMeter逐步增加同时请求的数量,并增加负载,直到不能再处理为止。

具体条件包括。

  • 要求间隔时间・・・5秒。
  • 同时请求的数量・・・10例。(测量结果逐渐增加,每次10例。)
  • 测量时间・・・60秒。

测量时间为 "60秒",请求间隔为 "5秒",所以你要重复访问系统12次(60÷5)。

1-3. 测量结果

最后,很多人对服务器能处理什么规格、能处理多少的结论感兴趣,所以我想先说明一下结论。

CPU:2core
memory:1GB
SSD:50GB
最多可以同时处理120个请求。

这一测量的结果显示了上述情况。 上述结果表明,可以推断出以下几点。 在选择服务器规格时,尽量将此作为一个标准。

CPU:1core
memory:512MB
SSD:25GB
最多可以同时处理60个请求。
CPU:2core
memory:1GB
SSD:50GB
最多可以同时处理120个请求。
CPU:3core
memory:2GB
SSD:100GB
最多可以同时处理240个请求。

即使是 "CPU:1核"、"内存:512MB "和 "SSD:25GB "的规格,也发现一个约60人的系统可以顺利运行。

2. 测量结果的细节

我们在前面已经描述了测量结果,如果你对我们描述的是什么样的结果感兴趣,也请你查看未来将描述的测量结果细节。

2-1. WEB服务器(Apache)的测量

针对用HTML创建的页面,重复的请求被抛出。 这是一个简单的页面,没有PHP处理或JavaScript的复杂性。

测量结果显示如下。

  • 对于10个同时的请求⇒OK
  • 对于20个同时请求⇒OK
  • 对于30个同时请求⇒OK
  • 对于40个同时请求⇒OK
  • 对于50个同时请求⇒OK
  • 对于60个同时请求⇒OK
  • 对于70个同时请求⇒OK
  • 对于80个同时的请求⇒OK
  • 对于90个同时请求⇒OK
  • 对于100个同时请求⇒OK
  • 110个同时请求⇒OK
  • 对于120个同时请求⇒OK
  • 对于130个同时请求⇒NG

在第130个案例中发生了错误。 其原因是与Apache的连接错误。 这时服务器的状态如下。

  • CPU利用率・・・26%
  • 内存使用率・・・100%

完全缺乏内存是瓶颈所在。

对于稍微有点怪癖的人来说,Apache多处理模块(MPM)的配置如下。 MPM被简单地解释为允许Apache并行处理多少的设置。

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

值得关注的设置是 "MaxRequestWorkers "的 "250"。 这是对Apache可以同时处理的最大案件数的一个设置。 '250',因此可以最大限度地并行处理250个案例,但看一下内存的使用情况,每个案例大约使用8MB的内存。

它似乎正在使用960MB的内存(8M x 120个进程),设置值为'250',但似乎不可能创建超过'120'个进程。
※服务器的内存几乎达到了1G的极限。

在实际操作服务器时,如果还包括了PHP和Java,限制在100例左右,如果有空间,可以同时并行处理80例。

当只安装和运行Apache,规格为 "CPU:2核,内存:1GB,SSD:50GB "时,发现同时访问的数量 "120 "是极限。

2-2. 考虑

从这里开始,它成为一个考虑因素,但由于内存是瓶颈,如果改变内存,可以并发处理的进程的数量将增加。

【在场。(memory1GB)】

  • memory:1GB
  • 阿帕奇线程的数量:120例
  • Apache中每个线程的内存消耗:8MB
  • 阿帕奇的内存消耗:960MB(120例×8MB)

【变化后(memory2GB)】

  • memory:2GB
  • 阿帕奇线程的数量:240例。
  • Apache中每个线程的内存消耗:8MB
  • 阿帕奇的内存消耗:1920MB(240例。×8MB)

如果内存增加到2GB,就有可能将案件数量增加一倍,达到约240个并发。 如果内存增加到3GB,似乎可以做更多的并发处理,但Apache的MPM的 "MaxRequestWorkers(可并发处理的最大案件数)"是 "250",所以如果内存进一步增加,也需要对这里进行调整。 反之,如果内存减半,则会出现如下情况。

【变化后(memory512GB)】

  • memory:512GB
  • 阿帕奇线程的数量:60例。
  • Apache中每个线程的内存消耗:8MB
  • 阿帕奇的内存消耗:480MB(60例。×8MB)

3. 摘要

我们测量了网络服务器(Apache)在同一时间能够处理的最大案件数量。 研究发现,在 "CPU:1核"、"内存:512MB "和 "SSD:25GB "的情况下,一个约60人的系统可以顺利运行。

该调查是基于这样的假设:没有其他软件在以边缘性能运行。 建议选择一个有点回旋余地的规格,因为它是一个边际值。

谢谢你一直看到最后。




■INFORMATION

请点击这里,进入信息首页。


■PROFILE

请点击这里查看简介。


■联系方式。

有关文章的查询,请在此与我们联系。