게시물 20건
   
[네트워크] Rivers Proxy Part.3
글쓴이 : 최장섭 날짜 : 2013-07-16 (화) 11:34 조회 : 829
▶ Apache 2.2 를 이용하여 구축 하는 방법

  - 안정버전인 2.2 버전을 이용하며, 특성상 하나의 클라이언트에 대해 하나의 프로세스를 할당하는
    Prefork 방식 보다는 하나의 클라이언트를 하나의 쓰레드로 처리하는 Worker 방식이 효율적이다

  - Apache 동작 방식 변경
    /etc/sysconfig/httpd 에서 HTTPD=/usr/sbin/httpd.worker 로 수정 후
    apache -l 명령어로 동작 모드 확인

  - httpd.conf 수정 
    MaxClients 와 ThreadsPerChild 값 수정을 통한 최대 프로세스 및 쓰레드의 설정
    Worker 방식의 경우 여러 자식 프로세스를 실행시키고, 각각의 프로세스 내에 여러 쓰레드를 생성
    하여 "프로세스 수 X 프로세스 당 쓰레드의 수" 만큼의 처리를 하게 된다.

   이때 자식 프로세스의 스레드 수를 제어하는 것이 바로 ThreadPerChild 값 이며, 자식 프로세스의  
   최대 값은 MaxCilents / ThreadsPerChild 값이다.
 
  
    최대 프로세스 수 : 6 (MaxClients / ThreadsPerChild)
    1개의 프로세스 당 최대 쓰레드 수 : 25 (ThreadsPerChild)
    동시에 처리 가능한 클라이언트의 수 : 6 X 25 = 150
   이후 프로세스/스레드의 최대 생성수를 늘이게 하려면 ServerLimit 와 ThreadLimit 설정값을 넣어준다. 
   ServerLimit 는 16, ThreadLimit 는 64로 기본값을 넣어준다. 두 값을 수정하여 더 늘이면 된다.

MaxClients,ThreadsPerChild 와 ServerLimit/ThteadLimit 
  - MaxClients 와 ThreadsPerChild 는 서버의 동적인 리소스 에 관련된 설정 값이다. 이 값이 높거
    나 낮아도 서버가 최소한 소모되는 리소스에는 영향을 주지 않는다,

  - 그러나 ServerLimit/ThreadLimit 는 Apache 에서 확보하는 공유 메모리의 크기에 영향을 주며 ,
    이 값에 필요 이상으로 높은 값을 설정하게 되면 그 만큼 Apache 는 비 효율적인 공유 메모리를
    소모한다.

  - 그러므로 프로세스/쓰레드 수의 상한선이 내장된 값인 ServerLimit 16, ThreadLimit 64를 초과
    할 경우에만 그 값에 맞게 설정하면 된다. 

  - 하지만 프로세스/쓰레드 당 메모리 사용량은 내장된 모듈 등에 의존하게 되는데 OS가 Apaache
    에 메모리를 얼마나 할당할지는 각각의 서버 환경에 따라 달라지므로 설정값을 정하는데에는 한계
    가 있다.

  - 실제로 사용중인 환경에서 어느 정도로 설정해야 될지 모른다면 프로세스/쓰레드 당 메모리의
    사용량 또는 아래의 조건 등을 확인해서 설정해야 한다. 

  - OS 나 웹 서버 이외의 S/W 가 이용하는 메모리 량 
 
  - 웹 서버의 프로세스/쓰레드 수가 최대수에 이르렀 을때 서버가 소비하는 합계 메모리 량 

  - 특정 웹 서버상에서의 최대 프로세스/쓰레드 수는 리소스가 어느정도 소모됬을때 스왑이 발생되지
    않을정도로 튜닝하는 것이 적당하다.


이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

miwit.com sir.co.kr DNS Powered by DNSEver.com DNS Powered by DNSEver.com