我们正在使用以下配置,据我所知,该配置可以并发执行 8000 个请求/进程。
Apache 服务器版本:2.4.57,服务器 MPM:事件
<IfModule mpm_worker_module>
ServerLimit 250
StartServers 10
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 32
MaxRequestWorkers 8000
MaxConnectionsPerChild 10000
</IfModule>
要将此值从 8000 增加到 16000,将“MaxRequestWorkers”参数设置为 16000 是否足够,还是这些值取决于此配置中的其他参数?
如果我们想检查,我们如何才能看到“MaxRequestWorkers”值的当前数量?
我认为当传入请求增加时,Apache Server 会遇到瓶颈。服务器的 CPU 和内存使用率没有问题。我想增加我们可以接受的最大请求数和我们可以处理的最大进程数。
而且当我们在 Apache Server 端增加这些值时,我们应该在 limits.conf 文件中做哪些更改?我认为两者是互相影响的。
[root@servername ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 95053
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 95053
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@servername ~]#
答案1
增加时的通常做法MaxRequestWorkers
是也增加ServerLimit
。这将为在进程间分配请求提供“空间”。
但正如评论所说,您不希望单台机器处理如此大量的请求。同时增加值意味着需要更多 CPU 和更多 RAM。
根据您的输入,您应该将文件处理程序的数量增加到(至少)20480 + 其他,以满足软件和操作系统的要求。