시스템관리자의 쉼터 커피닉스 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

가입없이 누구나 글을 쓸 수 있습니다. 공지사항에 대한 댓글까지도..




BBS >> 설치, 운영 Q&A | 네트웍, 보안 Q&A | 일반 Q&A || 정보마당 | AWS || 자유게시판 | 구인구직 || 공지사항 | 의견제시
아파치 환경설정 중 궁금합니다!!!

 
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> 시스템 설치 및 운영
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
bird72



가입: 2003년 9월 24일
올린 글: 77

올리기올려짐: 2006.11.17 금, 11:26 am    주제: 아파치 환경설정 중 궁금합니다!!! 인용과 함께 답변

안녕하세요 초보 리눅서입니다.

아파치 환경 설정 부분중에서 몇가지 궁금한 것이 있어 이렇게 글을 올립니다.

서버사양은 제논 듀얼 p4 사용하고 메모리는 2G입니다.

아파치 버젼은 2.0.52 버젼을 사용하고 있습니다.

httpd -l 을 실행해보니 prefork.c 가 있어 아래와 같이 설정값을 잡았습니다.

참고로 사이트는 하루 4~5000정도 방문하는 쇼핑몰이 하나 돌아가고 있습니다.

<IfModule prefork.c>
StartServers 20
MinSpareServers 15
MaxSpareServers 45
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 10000
</IfModule>

1.그런데 mpm의 경우 하나의 방식만을 설정할 수 있나요? 예를 들면 prefork방식과 worker, perchild(?) 방식을 섞어 쓸 수 있는 건가요?

2. 각각의 MaxSpareServers 45 과 ps -ef | grep httpd | wc -l 로 나오는 수 중에서 항상 ps -ef 값이 항상 많은데 만약 계속해서 배이상 차이가 난다면 MaxSpareServers값을 더 늘려줘야 하는건가요?

사이트가 느리다는 소릴 자주 들어서 어찌해야 할바를 모르겠습니다.

위 설정값이면 얼마정도 처리를 할 수 있는건지... 튜닝은 헉;;;;;;;;;;

아시는분 답좀 해주세요..
_________________
ilovesusu


bird72 가 2006.11.21 화, 7:37 pm에 수정함, 총 1 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
truefeel
카페 관리자


가입: 2003년 7월 24일
올린 글: 1277
위치: 대한민국

올리기올려짐: 2006.11.20 월, 8:56 pm    주제: Re: 아파치 환경설정 중 궁금합니다. 인용과 함께 답변

실행할 때 MPM 모듈을 선택해서 하기 때문에 섞어서는 안될겁니다.
섞어서 사용해볼려고 시도한 적도 없어, 혹시 방법이 있을지는 모르겠습니다.

그리고, StartServers나 Min, Max는 지금의 2배 이상 늘리셔도 되겠네요.
Start..와 Min..은 숫자를 갖게 맞추세요. Max는 Min의 2배나 3배수로 맞추는게 일반적이구요.
ServerLimit, MaxClients는 512 -> 1024 로 늘려보세요.

덧붙여서,
1. 웹서버는 웹프로그램이 돌아가는 것과 이미지가 돌아가는 것을 별도 서버로 분리하는게 좋습니다.
이렇게 분리 후에는 웹프로그램쪽은 KeepAlive Off를 이미지쪽은 On으로 하는게 일반적이구요.

2. apache에서 server-status/ 로 아파치 상태를 모니터링해보세요.
ExtendedStatus On 옵션도 넣으면 더 자세히 볼 수 있습니다.

3. 아파치로는 튜닝 한계가 있겠죠. php를 운영하시죠?
php실행할 때마다
- 실행시간
- 메모리 사용량(php에서 memory_get_usage() 함수로 얻을 수 있음, 컴파일시 --enable-memory-limit 옵션 필요)
- DB쿼리시간
등을 체크해서 지정한 수치(이를테면 3초이상실행되는 경우, 1MB이상 메모리를 사용한다던지) 이상이 나올경우 error_log()를 통해 로그를 남겨보세요.

4. apache의 ab 명령으로 스트레스테스트도 해보시구요.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
bird72



가입: 2003년 9월 24일
올린 글: 77

올리기올려짐: 2006.11.21 화, 10:18 am    주제: 답변 정말 감사합니다. 인용과 함께 답변

정말 감사합니다..ㅜㅜ

많은 도움이 되었습니다. ^^
_________________
ilovesusu
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
bird72



가입: 2003년 9월 24일
올린 글: 77

올리기올려짐: 2006.11.21 화, 7:34 pm    주제: 이렇게 해도 될까요? 인용과 함께 답변

안녕하세요 먼저 답변 정말 감사하게 잘 받았구요...

제가 모티터링? 이라고 해야할까요? 아무튼...

[root@]# ps -ef | egrep httpd | wc -l 이렇게 했을 때

지속적으로 갯수가 350~450 정도 됩니다.

그렇다면

<IfModule prefork.c>
StartServers 400
MinSpareServers 400
MaxSpareServers 500
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 10000
</IfModule>

이정도로 바꿔줘 보면 어떨까요???

변경 후 다시 시작했더니
root@]# ps -ef | egrep httpd | wc -l

갯수가 550 ~620 정도로 나오네요..

이게 의미하는 게 도대체 뭔지...

어떻게 MaxSpareServers 늘려주는 족족 ps 값은 넘어버리는 것일까요?

원래 그런것일까요?

실시간 접속자와 아파치 데몬수와 어떤 관계인지 헛갈립니다.

에효..
_________________
ilovesusu
위로
사용자 정보 보기 비밀 메시지 보내기 MSN 메신저
truefeel
카페 관리자


가입: 2003년 7월 24일
올린 글: 1277
위치: 대한민국

올리기올려짐: 2006.11.22 수, 12:54 am    주제: Re: 이렇게 해도 될까요? (아파치 설정) 인용과 함께 답변

가는 방향만 알려주면 스스로의 노력으로 정확한 집을 찾아가길 바라지만,
제가 집까지 함께 동행하는 느낌이 들 때가 있습니다.
이럴 경우 bird72님에게는 해가 되는 것 같아 답을 상세히 써야하나 망설일 때가 있습니다.
직접 찾아보고, 시도해보면서 얻는 기쁨을 빼앗는 것 같아서죠. ^^*

Min, Max, Start, Keepalive 에 대한 정보는 쉽게 찾아볼 수 있을겁니다.

bird72 씀:
안녕하세요 먼저 답변 정말 감사하게 잘 받았구요...

제가 모티터링? 이라고 해야할까요? 아무튼...

[root@]# ps -ef | egrep httpd | wc -l 이렇게 했을 때

지속적으로 갯수가 350~450 정도 됩니다.

그렇다면

<IfModule prefork.c>
StartServers 400
MinSpareServers 400
MaxSpareServers 500
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 10000
</IfModule>

이정도로 바꿔줘 보면 어떨까요???

변경 후 다시 시작했더니
root@]# ps -ef | egrep httpd | wc -l

갯수가 550 ~620 정도로 나오네요..

이게 의미하는 게 도대체 뭔지...

어떻게 MaxSpareServers 늘려주는 족족 ps 값은 넘어버리는 것일까요?

원래 그런것일까요?

실시간 접속자와 아파치 데몬수와 어떤 관계인지 헛갈립니다.

에효..


Start.., Min... 이 400, Max... 500은 큰 수치입니다.
400~500의 수치로 해뒀지만 실제로는 아무 처리도 하지 않는 프로세스가 상당할 겁니다.
server-status를 보면 확인이 가능합니다. 지정한 값보다 절반 이하로 낮추는게 좋을 것 같습니다.

그리고, Keepalive on일 경우 KeepAliveTimeout의 값(예전 버전은 디폴트가 15초)을 낮추세요. 5초라던지.
서버가 Keepalive on으로 설정되어 있고, 클라이언트가 keepalive형태로 요청을 했을 경우
KeepAliveTimeout 시간동안은 커넥션이 끊기지 않고 요청을 받을 수 있도록 대기상태에 있게됩니다.
즉, 그 클라이언트의 요청이 없더라도 KeepAliveTimeout동안은 다른 요청을 받지 않는 상태가 되는거죠.
KeepAliveTimeout이 길어서, 많은 프로세스가 대기상태가 되어 더 이상 요청을 받을 프로세스가 없게되면
apache는 프로세스를 새로 생성하게 됩니다.
요청이 많은 서버라면 KeepAliveTimeout값은 적당히 낮춰주는게 좋습니다.
물론 keepalive off로 하는 것도 고려할 필요도 있는거구요.

다음 글들을 살펴보세요.

[튜닝] 아파치 튜닝 정리 (글 지현명, 출처 LSN)
http://coffeenix.net/board_view.php?cata_code=83&bd_code=50

아파치를 최대 성능으로 올리기 위한 가이드 (글 김진덕)
http://coffeenix.net/board_view.php?cata_code=83&bd_code=679
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> 시스템 설치 및 운영 시간대: GMT + 9 시간(한국)
페이지 1 중 1

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 있습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group