IT/Linux

[Apache]웹서비스 성능 개선을위한 Apache 튜닝

반응형

웹서비스 성능 개선을 위한 아파치 튜닝 포인트는 아래와 같습니다.

 

1)     Server Limit : 생성가능한 최대 차일드 프로세스 , 시스템 자원을 고려하여 불필요하게 httpd 프로세스가 생성되지 않도록 제한 가능, 너무 높게 잡으면 여분의 미사용 공유메모리 할당됨. Maxclient ThreadsPerchild에서 요구한 프로세스 수보다 높게 설정하지 말것

 2)     MaxClient : 동시 접속가능한 최대 클리언트수, 옵션 값이 증가하면 접속가능한 클라이언트수가 증가하므로 OS file descriptor 파라미터 값을 크게 잡아야함. 디폴트는 ServerLimit * ThreadsPerChild 이다. 그러므로MaxClients  값으로 늘리기 위해ServerLimit  올려야만 한다.

3)     TheradPerChild : child 프로세스가 생성 가능한 스레드 , 값이 너무 크면 스레드들끼리 race condition 발생하여 비효율적일 있음. 결국은 MaxClients / ThreaPerChild 계산 값이 기동되어 서비스하는 Child 프로세스(server limit) 수임

4)   MinSapreThreads : Request spike 처리할 최소 idle 쓰레드 . 만약 서버에 idle 쓰레드가 작으면 child 프로세스가 숫자를 유지하기위해 계속 생성된다.

5)   MaxSpareThreads : 최대 idle 쓰레드 . 값이 너무 크면 child 프로세스가 죽는 경우가 발생함

6)   ThreadLimit :   child 프로세스가 생성할 있는 최대 스레드 , 불필요하게 크게 설정하면 공유 메모리를 낭비함. 보통 threadperchild 수와 동일하게 설정

7)   Time out : 접속된 클라이언트가 서버에 아무런 요청이 없을때 언제까지 시간을 허용할것인지 설정, 네트워크 성능이 낮을 수록 수치가 높아짐

8)   Keep alive : 아파치의 프로세스가 접속한 클라이언트의 지속적인 요청작업을 계속해서 처리하게 할 것이지 설정

반응형