RadarURL
Skip to content
조회 수 9257 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

선배님들 안녕하세요. 깨비홈서버 왕초보입니다^^

혹시라도 도움이 되실지 몰라 글을 올리게 되었네요.

제 PC에서도 예전 APM Setup 사용시부터 아파치 프로세스의 메모리 사용량이 점점 커지는(거의 300KB에 근접) 현상이 있었습니다.

이는 APM 프로그램의 문제라기보다 아파치서버 자체(정확하게는 윈도우용 아파치서버)의 문제로 판단됩니다.(APM Setup을 사용하건 Autoset을 사용하건 유사한 증상 발생)

고민끝에 혹시 쓰레드나 처리요청수의 설정관계상 사용이 완료된 메모리까지 계속 붙잡고 있지않나 싶기에 디폴트 설정치인

ThreadsPerChild 250
MaxRequestsPerChild  0

를 다음과 같이 수정해 보았더니 최대 약 25KB까지 올라갔다가 다시 내려갔다 또다시 올라갔다 하더라구요.(25KB까지 올라갔다가 저절로 사용량이 줄어드는 것이 반복됨)

ThreadsPerChild 50
MaxRequestsPerChild  250

여기서 MaxRequestsPerChild를 줄이면 메모리사용량이 예를들어 19KB라는 식으로 내려가는 것을 발견했습니다.
(물론 제 PC에서 그랬다는 말씀이고 컴퓨터의 사양이나 접속자수, 접속환경 등에 따라 크게 달라질 것으로 생각됩니다. 실험결과는 사용자수가 많을때 의미가 크기에 동적(dynamic)이라기보다 정적(static)인 테스트 결과로 참고하시면 될 듯 싶네요. 제 PC는 듀얼코어 6300@1.86GHz에 램 1GB입니다. 조촐하죠^^)
(처음에는 ThreadsPerChild 0으로 글을 올렸었는데 다양한 형태의 웹 페이지(간단하거나 복잡한 php, cgi 등)를 출력해가며 실험해 본 결과, 일부 프로그램의 실행이 느려질수 있어 10~100사이에서 설정하는 것이 좋을듯 싶네요.)

또한 Timeout 시간이나 KeepAlive 여부, MaxKeepAliveRequests, KeepAliveTimeout 설정에 의해서도 메모리 사용량이 변동되기는 하나 한두명 접속한 정도로는 결정적이지 못한것 같습니다.

덧붙여 이미 잘 알고 계시겠지만 웹문서들을 찾아보니 프로세스의 메모리 사용량을 줄이기 위하여 다음사항들을 권고하더라구요.

-꼭 필요한 모듈만 사용한다.
-동시요청수(Simultaneous Requests)를 줄인다.
-KeepAlives로 설정하되 유지시간은 너무 길지 않게
-로그를 줄인다.
-호스트명을 가져오지 않는다.
-가급적 .htaccess 파일 사용을 자제한다.

한가지 추가하면 제 서버의 경우, 아파치 프로세스가 메모리를 많이 차지하던 문제 이외에도 드물게 홈페이지로의 접속이 느려져서 나중에 서버를 살펴보면 아파치 프로세스가 죽어있는 경우도 발생했으나 이는 메모리 사용량과는 무관한 것으로 확인되었습니다.(아마도 제가 사용하는 웹빌더의 문제(또는 아파치와 웹빌더의 합작품ㅋ)인듯...)

허접한 글 읽어주셔서 감사드리며 오늘도 즐거운 하루 되시길 바랍니다.

감사합니다.

 

- 덧글 -

 

profile

아주 좋은 팁이네요. 몇가지를 더자하면 ThreadsPerChild 0 이부분은 자식쓰레드 생성에 제한을 두지 않는 다는 설정이지만 실제로 Apache의 기본 자식스레드 생성에는 제한이 있기에 250 이나 0 이나 큰차이는 없습니다. 그러므로 0 을 설정하거나 250 을 설정하거나 어떤 설정이든 무방합니다.

그러나 MaxRequestsPerChild  250 설정은 자식쓰레드가 생성된 후 일하는 횟수를 제한 하는 것으로 250 번의 일을 하고 다시 자식쓰레드를 생성하여 일을 하는 것으로 유저님이 말씀하신것과 같이 한개의 자식스레드가 죽지 않고 계속하여 일을 하면서 운영체제의 특성으로 인하여 메모리 반환이 되지 않을때는 아주 유용할 수 있습니다. 물론 속도를 중시하는 곳에서는 이 값이 너무 적게되면 쓰레드를 죽이고 다시 생성하는 것으로 인하여 CPU자원과 속도에 악영향을 주기도 하지만 대형홈페이지가 아니라면 속도 저하보다는 메모리의 효율적인 관리가 될수도 있을듯하네요.

그리고 위의 설정내용은 C:kebihomeconfigapachehttpd.conf 파일의 1~2 라인에서 설정할 수 있습니다.

깨비홈서버의 모든 설정을 각 파일에서 수정할 수는 없으나 httpd.conf 파일은 수정가능합니다. 직접 설정하는 내용들은 직접 수정하는 것보다 c:kebihomeconfighttpd-user.conf 파일에 따로 설정하시는 것을 권장해드립니다.

메모리를 줄이는 몇가지 소개한 부분에 대해서도 간단한 내용을 더해자면 아래와 같습니다.

-꼭 필요한 모듈만 사용한다.
-동시요청수(Simultaneous Requests)를 줄인다.
-KeepAlives로 설정하되 유지시간은 너무 길지 않게
-로그를 줄인다.
-호스트명을 가져오지 않는다.
-가급적 .htaccess 파일 사용을 자제한다.

1. 모듈은 자신에게 필요한 모듈만을 올리는 것이 당연히 메모리 사용량에 좋습니다. 그러나 정확히 알고 올려야 하며 그렇지 않다면 일부 기능을 사용할 수 없습니다. Apache 의 모듈설정은 c:kebihomeconfigapachehttpd.conf 파일을 수정하여 할 수 있습니다.

2. 동시요청수를 줄이는 것은 게시판 이용시 게시판 PHP 프로그래밍을 통하여 하여야 하므로 자신이 직접 만든것이 아니라면 힘든수도 있습니다. ^^

3. KeepAlive 설정은 윈도우에서는 크게 작용되지 않으며 리눅스와같은 x86 계열의 운영체제에서 홈페이지의 접속 속도에 상당한 영향을 줄 수 있습니다.

4. 로그가 저장될때는 파일에 저장되므로 로그파일의 크기가 너무 크거나 하는 경우는 웹서버 자체의 속도가 느려질 수 있습니다. 그러나 깨비홈서버는 1일 단위로 새로운 로그파일이 생성됩니다.

5. 외부에서 서버로 접속이 시도 될때 아이피를 호스트로 변환 하는 기능이 있습니다. 그러나 이것은 현재 기본설정이 꺼져 있는 기능입니다.

6. . .htaccess 파일은 제로보드 XE를 사용하는 경우는 어쩔 수 없을듯 하네요 ^^

 

유저님의 글에 조금이나마 도움이 되는 글이 되었는지 모르겠군요.

즐거운 하루되세요.

 

출처 : http://www.webkebi.com/77257

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
11 불법웹(이미지) 링크 차단에 대한 설정법 JaeSoo 2011.09.22 7250
» 아파치 프로세스의 메모리 사용량 줄이기 JaeSoo 2011.06.01 9257
9 APMSETUP 7 + eAccelerator 설치.. JaeSoo 2011.05.21 9470
8 싸이트 외부링크 차단하는방법 JaeSoo 2011.02.19 7136
7 가상 호스트 설정법 JaeSoo 2010.04.28 6875
6 웹서버 속도 저하 문제 해결 (xp,Apache 2.2.X, XAMPP) JaeSoo 2010.04.05 5787
5 Tomcat 한글관련 JaeSoo 2009.07.20 4428
4 .htaccess JaeSoo 2009.06.24 4279
3 ReWrite Module JaeSoo 2009.06.24 3882
2 계정하나에 두개의 도메인을 각각의 서브폴더에 연결시키는 방법 JaeSoo 2009.06.23 4788
1 Apache에서 .htaccess 파일 활용하기 - Rewrite mod JaeSoo 2009.05.12 3767
Board Pagination Prev 1 2 3 4 Next
/ 4

PageViews   Today : 118 Yesterday : 16624 Total : 21708293  /  Counter Status   Today : 99 Yesterday : 943 Total : 1138680

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소