티스토리 뷰

Linux

apache tunning (아파치 튜닝)

초보의 CHOMAN 2015.06.12 11:04

non-threaded servers
Prefork 방식

httpd-2.2.13/server/mpm/prefork/prefork.c 파일을 오픈해보면 디폴트가 256개의 자식 프로세스를 생성할수 있으며
200000 까지 최대값을 지정할수 있다고 나온듯 하다.

define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 200000
#define HARD_THREAD_LIMIT 1



Apache의 최대 접속자를 끌어올릴려면 아래와 같이 셋팅해보자 (Prefork)

- ServerLimit 값을 MaxClient 값보다 크게 설정하면 되지 않음
- 너무 값을 올릴경우 서버의 자원보다 더 많은 접속자가 몰릴경우 서버 다운 가능성
- 설정후 Apache restart 말고 stop 하고 start 으로 적용하자!

<IfModule mpm_prefork_module>
ServerLimit 100000 <추가>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
# MaxClients 150 <변경>
MaxClients 10000
MaxRequestsPerChild 0
</IfModule>



threaded and hybrid servers

Worker 방식

httpd-2.2.13/server/mpm/worker/worker.c 열어보면 디폴트값이 정의 되어 있음

- hybrid MPM의 경우 400 = 16(ServerLimit)*25(ThreadsPerChild) 
- 디폴트 설정가능한 최대 MaxClients값은 400,000,000 = (MAX_SERVER_LIMIT 20000 * MAX_THREAD_LIMIT 20000)

#define DEFAULT_SERVER_LIMIT 16
#define MAX_SERVER_LIMIT 20000
#define DEFAULT_THREAD_LIMIT 64
#define MAX_THREAD_LIMIT 20000



접속치를 변경해보자

- Thread 를 증가시킬수도 Server 를 증가시킬수도 있지만, 아래는 ServerLimit를 증가한것임

<IfModule mpm_worker_module>
ServerLimit 400 <추가>
# ThreadLimit
StartServers 2
# MaxClients 150 <변경>
MaxClients 10000
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>



아차피 동시접속자 확인하기

netstat -an |grep :80 |grep ES |wc -l
아파치 동시 접속자라기 보다는 TCP 80번으로 연결을 맺은 아이피들의 갯수를 의미하는게 정확할듯...

참고사이트

http://system.neulwon.com/xe/142

http://www.websiteoptimization.com/

댓글
댓글쓰기 폼
공지사항
Total
671,440
Today
48
Yesterday
158
링크
«   2018/09   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
글 보관함