OpenWrt를 운영하면서 ftp에 접속하여 파일송수신을 한다. 그 후 free 명령어로 보면 거의 모든 ram이 고갈상태가 된다. 그래서 공유기 램이 모잘라 스왑으로 잡아놓은 메모리까지 먹는다. 외장하드를 액세스하는데 자원이 그렇게 많이 필요할까 싶었다.

그냥 하드웨어가 너무 성능이 낮아서 그런가보다 하고 그냥 썼다. 그러나 검색을 해보니 리눅스는 어플리케이션에서 반환된 메모리가 바로 free로 잡히지 않고 캐시로 남아있는다고 한다.


그러다 우연찮게 OpenWrt 사이트를 돌다가 유용한 정보가 있어 포스팅한다. 메모리를 청소시키는 법이다. 캐시를 수동으로 삭제하는 방법이다. 메모리는 필요에 의해 OpenWrt의 커널에 의해 사용될 수 있는데, 문제는 이 양을 우리들은 정확하게 모른다는 것이다. 그래서 free메모리가 정확하지 않을 수도 있다.

그래서 다음 명령어를 수행하면 free 메모리를 확보할 수 있다. alias로 잡아놓거나 crontab으로 돌리면 유용할 듯 하다.

echo 3 > /proc/sys/vm/drop_caches


위 명령을 입력하고 top 또는 free 명령어로 Free 메모리를 확인해보면 알 수 있다. 나의 경우는 메모리가 확보되는 것을 확인할 수 있었다.



참고사이트
  1. http://wiki.openwrt.org/doc/howto/generic.sysupgrade의 하단


저작자 표시 비영리 변경 금지
신고
Posted by Life 스토리