HARD_SERVER_LIMIT define in src/include/httpd.h.
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7168virtual memory (kbytes, -v) unlimited
. 웹 페이지 로딩시간 확인
#time -pa lynx -source
http://aaa.com > /dev/null
real 0.74
user 0.16
sys 0.09
-------------
실제 접속시간 : 0.74-(0.16+0.09)=0.49초
2. 아파치 벤치 마킹
#man ab 사용법 보기
-n requests 요청을 수행할 개수
-c concurrency 요청을 만들 개수로 동시 사용자 개념으로 이해하면 되겠다.
-v verbosity 얼마나 자세한 정보를 화면에 출력해 줄 것인지 결정
-w HTML 문서형식으로 테이블로 만들어 결과를 화면에 출력
-k HTTP 프로토콜의 지속연결 (KeepAlive) 기능을 사용
#./ab -n 100 -c 10
http://www.hanserver.net:80/ 10 명의 유저가 동시에
http://www.hanserver.net/index.html 을 요청하는 것을 모의 실험.
각각의 시뮬레이트 유저는 요청을 10 번씩 하게 됩니다
# ab -n 1500 -c 50
http://www.apache.kr.net:80/ 요청을 30 x 50 (50 명의 사용자가, 각각 30 번의 요청)
Requests per second: 80.48
초당 80.48개를 요청 했음.
'MaxRequestsPerChild’ 는 메모리 누수현상(?) 등이 발생하지 않는다면 가능한 이 값을 높게 설정하시고요(파라미터의 값을 0 으로 설정해 무한대로 하실수도 있습니다) StartServers’ 는 프로세스가 active 되어 있는 경우가 적을 경우 값을 낮게 설정하시고, 접속량이 아주 많을 경우는 MaxClients 에 가깝게 조절하시기 바라며, MaxSpareServers 를 MaxClients 와 같게 설정합니다. MaxClients 는 너무 낮게 설정하지 않도록 주의하시기 바라며, 그렇다고 또 너무 크게 잡으셔도 안됩니다
Apache 2.x 수정
server/mpm/prefork/prefork.c 파일에서
#define DEFAULT_SERVER_LIMIT 256 부분을 찾아서
#define DEFAULT_SERVER_LIMIT 1280 으로 수정
server/mpm/worker/worker.c 파일에서
#define DEFAULT_SERVER_LIMIT 16 부분을 찾아서
#define DEFAULT_SERVER_LIMIT 20 으로 수정
Apache 1.3.x 수정 src/include/httpd.h
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#elif defined(NETWARE)
#define HARD_SERVER_LIMIT 2048
#else
#define HARD_SERVER_LIMIT 1256 # 256을 1256 으로 수정
#endif
#endif