RadarURL

웹 프로그래밍
2011.06.01 03:59

아파치 프로세스의 메모리 사용량 줄이기

조회 수 11695 추천 수 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:\kebihome\config\apache\httpd.conf 파일의 1~2 라인에서 설정할 수 있습니다.

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

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

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

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

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

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

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

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

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

 

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

즐거운 하루되세요.

 

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

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 928098
298 웹 프로그래밍 메모리 부족 현상 (allowed memory size of 134217728 bytes..) JaeSoo 2023.08.01 2207
297 웹 프로그래밍 Guzzle - cURL error 60: SSL certificate problem: unable to get local issuer certificate 문제 해결 file JaeSoo 2023.07.30 2188
296 웹 프로그래밍 XE 캐시파일 재성생후 404 Oops, Sorry. Page is not found! 나올때 JaeSoo 2023.07.29 2117
295 웹 프로그래밍 XE - " Fatal error: Class 'Object' not found in " / class 낫파운드 오류 file JaeSoo 2023.03.20 147
294 웹 프로그래밍 iOS 앱 개발을 위한 인증서 생성 및 관리 file JaeSoo 2023.01.18 218
293 웹 프로그래밍 PHP 파서 이해하기 (<?php의 php를 생략하고 간단히 <? 태그 와 ?> 태그를 사용하는 방법) JaeSoo 2016.08.10 322
292 웹 프로그래밍 XE 비회원 글쓰기 항목 지우기 file JaeSoo 2016.04.28 499
291 웹 프로그래밍 오른쪽 마우스 금지 소스 / 드래그 금지 소스 JaeSoo 2016.01.20 475
290 웹 프로그래밍 Strict standards and C5 support errors JaeSoo 2015.12.02 524
289 웹 프로그래밍 ICT노트 :: 반응형웹을 만드는 기술은? file JaeSoo 2015.09.26 489
288 웹 프로그래밍 [번역] 2014년 가장 인기있는 5가지 프론트엔드 프레임워크 비교 file JaeSoo 2015.09.25 862
287 웹 프로그래밍 최고의 반응형 CSS 프레임워크 18선 (2013년 7월기준) file JaeSoo 2015.09.25 586
286 웹 프로그래밍 가장 진보된 반응형 웹을 위한 프레임워크 UIkit file JaeSoo 2015.09.25 559
285 웹 프로그래밍 반응형 웹을 위한 프론트-엔드 프레임 워크 (front-end framework for developing responsive web) file JaeSoo 2015.09.25 739
284 웹 프로그래밍 한국형 반응형웹 프레임웍을 찾아서 - 왜 우리는 IE 7,8때문에 고통받아야 하는가? file JaeSoo 2015.09.25 611
283 웹 프로그래밍 한국을 위한 CSS 그리드 디자인 프레임워크 JaeSoo 2015.09.25 531
282 웹 프로그래밍 과연 반응형 웹 디자인만이 해답일까? file JaeSoo 2015.09.25 535
281 웹 프로그래밍 반응형 웹 디자인의 단점 file JaeSoo 2015.09.25 567
280 웹 프로그래밍 웹디자인 신기술 트렌드 및 적용 사례 file JaeSoo 2015.07.28 510
279 웹 프로그래밍 제이쿼리(jQuery) 튜토리얼(Tutorial) 모음 file JaeSoo 2015.07.28 1253
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너