반응형
출처 : http://lanplaza.net
아파치 튜닝
1. 아파치 웹 서버 튜닝 (프로세스 갯수 늘려주기)
- apache/src/include/httpd.h: # 1.3.x 버젼
HARD_SERVER_LIMIT 256 -> 2048
-
prefork 일때
아파치 1.3 은 포크 가능한 자식 프로세스는 기본값이 256개로 되어 있습니다. 이것을 변경하려면
apache_1.3.24/src/include/httpd.h 파일에서
#define HARD_SERVER_LIMIT 256
요것을 서버 스펙에 따라서 적당히 늘려줍니다.
아파치 2.0 은 역시 포크 가능한 자식 프로세스는 기본값이 256개로 되어 있고 역시 숫자를 변경하려면
httpd-2.0.49/server/mpm/prefork/prefork.c 파일에서
#define DEFAULT_SERVER_LIMIT 256
역시 적당히 늘려줍니다. 저는 2048개로 늘려줬습니다.
아래 다른 방식들은 직접 적용해 보지 않았습니다.
Thread 방식으로 컴파일 했을때 워낙 좀비가 많이 생겨서
실무에서는 거의 쓰기 힘들겠더라구요..
아래는 다른 곳에서 참고로 복사했습니다.
worker 방식
기본으로 16개의 차일드 프로세스와 그안에 64개의 쓰레드를 생성가능하므로
16*64 = 1024 개의 쓰레드를 생성 할수있습니다.
httpd-2.0.49/server/mpm/worker/worker.c
기본적으로 생성가능한 차일드 프로세스수 조절
#define DEFAULT_SERVER_LIMIT 16
각 프로세스내에 생성 가능한 쓰레드 수 조절
#define DEFAULT_THREAD_LIMIT 64
perchild 방식
기본으로 8개의 차일드 프로세스와 그안에 64개의 쓰레드를 생성가능하므로
8*64 = 512 개의 쓰레드를 생성 할수있습니다.
httpd-2.0.49/server/mpm/perchild/perchild.c
기본적으로 생성가능한 차일드 프로세스수 조절
#define DEFAULT_SERVER_LIMIT 8
각 프로세스내에 생성 가능한 쓰레드 수 조절
#define DEFAULT_THREAD_LIMIT 64
- apache/conf/httpd.conf:
Timeout 300 -> 180 or 150
MaxKeepAliveRequests 100 -> 1000
KeepAliveTimeout 15 -> 30
MinSpareServers 5 -> 20
MaxSpareServers 10 -> 40
StartServers 5 -> 20
MaxClients 256 -> 1024
2. 커널 소프트 레벨 튜닝
- ulimit -n 32768 # 오픈 할 수 있는 파일 갯수 증가 ulimit -a로 확인
- /proc/sys/fs/file-max: 4096 -> 32768
- /proc/sys/fs/inode-max: 16384 -> 65536
- /proc/sys/net/ipv4/tcp_keepalive_time: 7200 -> 1200
- /proc/sys/net/ipv4/tcp_fin_timeout: 60 -> 30
- /proc/sys/net/ipv4/tcp_sack: 1 -> 0
- /proc/sys/net/ipv4/tcp_timestamps: 1 -> 0
- /proc/sys/net/ipv4/tcp_syncookies: 0 -> 1
- /proc/sys/net/ipv4/tcp_retries1: 7 -> 2(3으로 되어 있어서 수정하지 않음)
- /proc/sys/net/ipv4/tcp_max_syn_backlog: 1024 -> 8192
- /proc/sys/net/ipv4/tcp_window_scaling: 1-> 0
echo 32768 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 2 > /proc/sys/net/ipv4/tcp_retries1
echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
아파치 튜닝
1. 아파치 웹 서버 튜닝 (프로세스 갯수 늘려주기)
- apache/src/include/httpd.h: # 1.3.x 버젼
HARD_SERVER_LIMIT 256 -> 2048
-
prefork 일때
아파치 1.3 은 포크 가능한 자식 프로세스는 기본값이 256개로 되어 있습니다. 이것을 변경하려면
apache_1.3.24/src/include/httpd.h 파일에서
#define HARD_SERVER_LIMIT 256
요것을 서버 스펙에 따라서 적당히 늘려줍니다.
아파치 2.0 은 역시 포크 가능한 자식 프로세스는 기본값이 256개로 되어 있고 역시 숫자를 변경하려면
httpd-2.0.49/server/mpm/prefork/prefork.c 파일에서
#define DEFAULT_SERVER_LIMIT 256
역시 적당히 늘려줍니다. 저는 2048개로 늘려줬습니다.
아래 다른 방식들은 직접 적용해 보지 않았습니다.
Thread 방식으로 컴파일 했을때 워낙 좀비가 많이 생겨서
실무에서는 거의 쓰기 힘들겠더라구요..
아래는 다른 곳에서 참고로 복사했습니다.
worker 방식
기본으로 16개의 차일드 프로세스와 그안에 64개의 쓰레드를 생성가능하므로
16*64 = 1024 개의 쓰레드를 생성 할수있습니다.
httpd-2.0.49/server/mpm/worker/worker.c
기본적으로 생성가능한 차일드 프로세스수 조절
#define DEFAULT_SERVER_LIMIT 16
각 프로세스내에 생성 가능한 쓰레드 수 조절
#define DEFAULT_THREAD_LIMIT 64
perchild 방식
기본으로 8개의 차일드 프로세스와 그안에 64개의 쓰레드를 생성가능하므로
8*64 = 512 개의 쓰레드를 생성 할수있습니다.
httpd-2.0.49/server/mpm/perchild/perchild.c
기본적으로 생성가능한 차일드 프로세스수 조절
#define DEFAULT_SERVER_LIMIT 8
각 프로세스내에 생성 가능한 쓰레드 수 조절
#define DEFAULT_THREAD_LIMIT 64
- apache/conf/httpd.conf:
Timeout 300 -> 180 or 150
MaxKeepAliveRequests 100 -> 1000
KeepAliveTimeout 15 -> 30
MinSpareServers 5 -> 20
MaxSpareServers 10 -> 40
StartServers 5 -> 20
MaxClients 256 -> 1024
2. 커널 소프트 레벨 튜닝
- ulimit -n 32768 # 오픈 할 수 있는 파일 갯수 증가 ulimit -a로 확인
- /proc/sys/fs/file-max: 4096 -> 32768
- /proc/sys/fs/inode-max: 16384 -> 65536
- /proc/sys/net/ipv4/tcp_keepalive_time: 7200 -> 1200
- /proc/sys/net/ipv4/tcp_fin_timeout: 60 -> 30
- /proc/sys/net/ipv4/tcp_sack: 1 -> 0
- /proc/sys/net/ipv4/tcp_timestamps: 1 -> 0
- /proc/sys/net/ipv4/tcp_syncookies: 0 -> 1
- /proc/sys/net/ipv4/tcp_retries1: 7 -> 2(3으로 되어 있어서 수정하지 않음)
- /proc/sys/net/ipv4/tcp_max_syn_backlog: 1024 -> 8192
- /proc/sys/net/ipv4/tcp_window_scaling: 1-> 0
echo 32768 > /proc/sys/fs/file-max
echo 65536 > /proc/sys/fs/inode-max
echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 2 > /proc/sys/net/ipv4/tcp_retries1
echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
반응형
'Web > LINUX' 카테고리의 다른 글
vsftpd 설정 및 운영 (0) | 2011.08.31 |
---|---|
php로 된 자료실 자료업로드 문제.. (0) | 2011.08.31 |
APM 소스 컴파일 설치가이드 (0) | 2011.08.31 |
ssh 무차별 로그인 공격 막기 (0) | 2011.08.31 |
ssh로 특정 ip접근 hosts.deny 자동 추가 (0) | 2011.08.31 |