리눅스 관리 - 메모리 회수하기
글쓴이: wolf.bloodstorm / 작성시간: 금, 2010/06/25 - 10:10오전
Sese Linux Enterprise Server 11.2
개발이 아닌, 관리를 하는 입장이며,
생각 외로 발생되는 메모리 누수가 심하여 회수를 하려고 하는데
영...답이 없습니다.
윈도우는 메모리 최적화라는 이름으로 많은 어플이 있는데
리눅스에서는 memcached 라는 패키지를 하나 찾아서 사용 중인데,
마지막의 마지막에서 속을 썩이네요.
나름 서버내 메모리 회수율이 높은데,
이상하게 회수가 안되는 부분이 있습니다.
로그를 뒤져보니, 근 3주 전부터 누적이 되면서 현재는 2GB 메모리가 그냥 저냥 사용중...이라면서 회수가 안되네요.
메모리 누수현상으로 보이는데 어찌해야할지 감도 안 잡힙니다.
리눅스 서버에서 이런 메모리 누수 현상을 어찌 해결해야할까요.
용도 - 리눅스 개발자 서버
SSH로 개발자가 접속해서 컴파일 후 결과값을 자신의 PC로 옮긴 후 접속 종료
아파치가 올라가 있지만, MRTG 모니터링 외 다른 용도 없음
mysql 도 올라가 있지만, 개발자들은 거의 사용 안함
그 외 서비스는 거의 없다고 보시면 됩니다.
이런 아잉한 상황...메모리 누수 현상 어찌 해결해야할지..
답변 부탁드리겠습니다.
Forums:
남은 메모리 양은...
남은 메모리 양은
free 커맨드의 결과값에 찍힌 free, buffers, cached 의 합입니다.
top을 하셔두 프로세스들의 현재 사용중인 메모리 양을 개략적으로 파악할 수 있으니, 메모리를 많이 점유하고 있는 서비스가 없는지 확인해보세요..
그리고 웹서비스의 경우 사용하지 않으시는경우 죽여주시는게 정신건강에 좋습니다. 지금 access 로그한번 살펴보세요.
좀비몇대가 주기적으로 접속을 하고 있을 수도 있고,
mysql에 connect이 맺어져 자원만 낭비되고 있을 수도 있을꺼 같아요.
top 보다 그래픽을
top 보다 그래픽을 조금 추가한 htop 를 설치한 후 모니터링 중입니다
말씀하신 사항은 계속 보고 있는데 전혀 나타나지 않아서 이렇게 올린 겁니다
아무것도 안하는 상황임에도
메모리 사용이 꾸준히 늘어나고, 전혀 줄어들지가 않네요
메모리 누수가 어떤
메모리 누수가 어떤 프로세스에 의해 일어나고 있는지는 확인 하셨나요?
메모리 누수라는 계념을 이해하고 계신건지 모르겠군요.
memcached는 그런 일 해
memcached는 그런 일 해 주는 게 아닌데 잘못 이해하고 계신 듯.
htop 과 MRTG 에서
htop 과 MRTG 에서 확인결과,
물리 MEM 이 사용된 이후, SWAP 를 사용하더군요.
뭐 그런가 보다...했지만,
하루 이틀이 지나도 사용된 물리 MEM 이 가용 MEM 으로 가지 않고
계속 사용 중인 상태가 된다는 것입니다.
memcached 를 언급한 것은,
패키지 설치 이후, 사용 중인 메모리가 확실히 없어지면서 가용 MEM 으로 돌아가는게
눈에 띄게 수치상으로 나타나더군요.
윈도우 메모리 최적화 처럼 말이죠.
top htop 에서 메모리 잡아먹는 것을 우선순위로 두고 계속 모니터링을 해도
가장 맨 위로 올라오는 프로세스가 0.0 이여서 참 미치겠습니다...ㅜㅠ
그냥 써도 되지
그냥 써도 되지 않을까요? 딱히 문제가 있는 게 아니면 알아서 하라고 내버려두셔도;;;
memcached가 효과가
memcached가 효과가 있다면, 구동 중인 웹 프로그램이 memcached를 사용하도록 설정된 경우입니다. memcached는 메모리 최적화 도구가 아닙니다. 스왑을 너무 많이 사용하는 것 같다면 sysctl vm.swappiness의 값을 올려 주세요. 0~100 사이이고, 0이면 스왑을 전혀 사용하지 않습니다.
---- 절취선 ----
http://blog.peremen.name
자신이 손댄 설정부터 확인하시는 게 빠를 듯 합니다.
원래 느린다면 어쩔 수 없지만, 언젠가 부터 느려졌다면, 그것은 시스템 관리자가 바꾼 설정이 영향을 준 것일테지요. 혹시 인터넷이나 관련서적에 있는 최적화 팁 등을 따라하신 적이 있다면 그것부터 다시 원래대로...
특히 스와핑 최적화라던가 런레벨 최적화, 모듈 최적화 등은 시스템을 완벽히 이해하기 전에는 따라해선 안된다고 알고 있습니다.
swap in/out이 생기지
swap in/out이 생기지 않았다면 굳이 free 결과에서 메모리 여유량을 따질 필요는 없을것 같습니다. 게다가 memcached 는 메모리 최적화 도구도 아니구요. sar나 sysstat 등을 이용해서 메모리 모니터링을 해보시는게 좋을것 같네요.
swap in/out 이 생기지
swap in/out 이 생기지 않는다는 가정하에 의견을 낸다면 free 결과를 따질 이유가 전~~~~~혀 없습니다. OS 에서 buffer cache로 사용 중이기 때문이죠. 오히려 질문 하신분의 서버 상황은 지극히 정상인 겁니다. 그냥 내버려 두세요. vmstat(8)으로 모니터링 해보세요.
vmstat
가 답일듯..