Apache에서 최대 동시 연결 수를 어떻게 늘리나요? [닫은]
Apache의 최대 동시 연결 수를 늘리려면 어떤 httpd conf 설정을 변경해야합니까? 참고 : 주로 API 서버이기 때문에 KeepAlive를 사용 중지했습니다.
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive Off
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15
##
## Server-Pool Size Regulation (MPM specific)
##
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
MaxClients 및 MaxRequestsPerChild 계산에 대한 자세한 설명은 다음과 달라집니다.
ServerLimit 16
StartServers 2
MaxClients 200
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
우선 아파치가 시작될 때마다 StartServers매개 변수에 의해 결정되는 2 개의 자식 프로세스를 시작 합니다. 그러면 각 프로세스는 ThreadsPerChild매개 변수에 의해 결정된 25 개의 스레드를 시작 하므로 2 개의 프로세스가 50 개의 동시 연결 / 클라이언트 만 서비스 할 수 있습니다. 즉, 25x2 = 50입니다. 이제 더 많은 동시 사용자가 오면 다른 하위 프로세스가 시작되어 다른 25 명의 사용자에게 서비스를 제공 할 수 있습니다. 그러나 시작될 수있는 자식 프로세스의 수는 ServerLimit매개 변수에 의해 제어됩니다. 즉, 위 구성에서 총 16 개의 자식 프로세스를 가질 수 있으며 각 자식 프로세스는 25 개의 스레드를 처리 할 수 있으며 총 16x25 = 400 명의 동시 사용자를 처리 할 수 있습니다. 그러나에 정의 된 수가 MaxClients200 개 미만이면 하위 프로세스 8 개 이후에 상위 한도를 정의했기 때문에 추가 프로세스가 시작되지 않음을 의미합니다.MaxClients. 이것은 또한 내가 MaxClients1000으로 설정 하면 16 개의 하위 프로세스와 400 개의 연결 후에 추가 프로세스가 시작되지 않으며 MaxClient매개 변수를 늘려도 400 개 이상의 동시 클라이언트를 서비스 할 수 없음을 의미합니다 . 이 경우에도 ServerLimit1000/25로 늘려야합니다. 즉, MaxClients/ThreadsPerChild=40이것은 서버 1000 클라이언트에 최적화 된 구성입니다.
<IfModule mpm_worker_module>
ServerLimit 40
StartServers 2
MaxClients 1000
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
MaxClients 지시문을 변경하십시오. 이제 256에 있습니다.
'IT' 카테고리의 다른 글
| Chai : 'should'구문으로 undefined를 테스트하는 방법 (0) | 2020.09.03 |
|---|---|
| $ (달러) 기호를 허용하지 않는 PowerShell 펼쳐보기 (0) | 2020.09.03 |
| 수직 정렬 방법 (0) | 2020.09.03 |
| Spring @PostConstruct 대 init-method 속성 (0) | 2020.09.03 |
| R에서 길이가 0 인 숫자 형 벡터를 만드는 방법 (0) | 2020.09.03 |