테스트 사이트 - 개발 중인 베타 버전입니다

서버 동시접속자 설정 변경하기

· 9년 전 · 479

다음의 페이지를 대부분 참조했습니다. (http://www.zarafa.com/wiki/index.php/Apache_tuning)

 

 

- http 웹페이지는 stateless(connectionless) 입니다. 즉 페이지 불러올 때에만 서버와 연결하고 다 불러와지면 연결을 끊습니다.

 

- 1개의 연결당 평균 메모리 소모량은 20MB 입니다. (라엘이가 관리하는 여러서버의 평균값을 내보았음)

 

- Ubuntu Apache 의 기본 동시접속자 제한은 150개 입니다. 1000개의 동시접속이 연결되면 150개는 즉시 처리진행되고, 나머지 850개는 대기열에서 대기하다가 차례대로 처리됩니다.

 

 

 

1> 서버 연결당 얼마나 메모리를 소모하는지 확인

 

#ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}'

 

 

 

2> 서버에 여유 메모리 자원이 얼마나 있는지 확인

 

서버를 재부팅한 후에 아파치를 종료후 서버의 메모리를 확인해본다.

# free -m

 



3> 하드웨어 자원을 고려한 가용 동시연결수 계산

 

여유 메모리 / 1연결당 메모리     하면 된다.

 

2000MB free memory 가 있고, 1연결당 20MB 를 사용한다면 = 100개의 동시연결 가능. (300~500 동시접속자 처리가능)

 

 


4> 사이트의 필요 동시연결수 계산

 

450명의 사용자가 있고 3초주기로 페이지 이동이 일어난다고 가정하자. 페이지 출력 실행시간은 2초라고 가정하자.

 

필요 동시연결수 = 450 / 3 * 2 = 300

 

 

 

5> 동시연결수 설정 변경.

 

# vi /etc/apache2/mods-available/mpm_prefork.conf

 

MaxRequestWorkers 값을 수정해야 합니다.

 

ServerLimit 라는 옵션의 기본값이 256이기 때문에 MaxRequestWorkers 값이 256보다 작으면 따로 적을 필요가 없으며, 256보다 크면 그와 같은 값으로 ServerLimit 도 설정해야 합니다.

 

동시연결 제한 300 예제 설정법.

 

<IfModule mpm_prefork_module>

    StartServers 5

    MinSpareServers 5

    MaxSpareServers 10

    MaxRequestWorkers 300

    ServerLimit 300

    MaxConnectionsPerChild 0

</IfModule>

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
26573
7309
19780
7306
28025
28020
28010
7304
7302
7295
7292
7287
19779
7284
7279
7278
28009
31753
31752
7274
31751
31750
31749
31748
30979
31747
28004
31745
7267
7261
31742
7256
19776
24650
7252
7248
28002
19772
7245
19770
19769
30975
7243
7236
28001
27994
7233
7232
19768
19765
19763
30974
7224
19761
24645
19760
19758
19757
19754
19753
19752
19751
7223
7216
7213
31741
19750
19749
19748
31740
31739
31738
7208
31737
30967
31736
7205
30965
30963
19747
19746
19745
19744
19742
7193
7191
31735
19741
19740
19739
7188
27986
31734
31733
31732
7186
19738
19736
7180
7165