웹서비스 성능 개선을 위한 아파치 튜닝 포인트는 아래와 같습니다.
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 : 아파치의 한 프로세스가 접속한 클라이언트의 지속적인 요청작업을 계속해서 처리하게 할 것이지 설정
'IT > Linux' 카테고리의 다른 글
[Linux]Load Average 란? (0) | 2020.06.26 |
---|---|
[Linux명령어] 메모리 확인 free 의 출력내용 (0) | 2020.06.26 |
파일서버란?SMB/CIFS/NFS란? (0) | 2020.03.14 |
/bin, /usr/bin, /sbin, /usr/sbin의 차이 (0) | 2019.12.31 |
Amazon Linux에서 Time Sync Service 설정하기 (0) | 2019.12.27 |