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

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

· 9년 전 · 200

다음의 페이지를 대부분 참조했습니다. (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>

 

댓글 작성

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

로그인하기

게시글 목록

번호 제목
384
12508
383
381
20395
12507
12506
12505
12504
12503
12502
12500
12499
12498
20392
12497
12496
12495
12494
12493
12492
12491
12490
12489
12488