메모리 캐시를 정리하거나 비활성화하려면 어떻게합니까?


49

시스템이 시작된 후 몇 분 안에 메모리 캐시가 가득 차고 스왑을 사용하기 시작합니다. 다음은 / proc / meminfo의 스크린 샷입니다.

기억

그러나이 프로세스를 비활성화하고 캐시를 한 번 청소하면 시스템 속도가 어느 정도 빨라질 것입니다. 내가 틀렸다면 바로 수정하십시오.

Bleachbit 메모리 정리도 시도했지만 메모리 캐시를 올바르게 정리하지 않는 것 같습니다. 또한이 기능은 아직 실험 단계에 있습니다.

블리치 메모리

이미 비슷한 질문이 여기에 게시되었습니다. 프리 페치 캐시를 비활성화하려면 어떻게해야합니까? 우분투 서버와 관련이 있으며 수동 설정 등에 대한 답변도 있습니다.

그래서 우분투 12.04 용 메모리 캐시를 비활성화 / 활성화하기위한 소프트웨어가 있는지 알고 싶습니다.


이것이 문제를 해결할 것입니까? 이유없이 메모리가 가득 차지 않습니다. 또한 메모리가 가득 차서 다시 추적한다는 문제가있었습니다 tracker-miner. 모든 트래커 패키지를 제거한 후 문제가 해결되었습니다. 나는 또한 4GB 메모리를 가지고 있으며 2GB는 chaches에 의해 사용되지만 아무런 문제가 없습니다.
다니엘 쿨만

1
@danielkullmann : 앱에서 사용하는 메모리가 아니라 캐시 된 메모리를 참조하고 있습니다.
ish

@izx 예, 알고 있습니다. 그가 잘못된 문제의 해결책을 찾은 것일 수도 있습니다. 커널은 프로그램에서 필요할 때 캐시로 메모리를 채우지 않을 정도로 똑똑합니다. 그래서 그의 메모리 문제는 너무 많은 메모리를 사용하는 프로그램에서 비롯된 것이라고 생각합니다.
다니엘 쿨만

@danielkullmann : 모든 메모리를 고갈시키는 하나의 프로세스로 어떻게 추적했는지 알고 싶습니다. 그것에 대한 도구 / 명령이 있습니까?
금지 감독관

방금 htop 명령을 사용하고 메모리 사용량별로 정렬했습니다.
다니엘 쿨만

답변:


58

참고 : Linux는 RAM을 "먹는"것이 아닙니다! 이유를 이해하려면 아래 Geirha의 훌륭한 답변을 살펴보십시오 .

위의 참고 사항 후에도 여전히 캐시가 "정리"되었다고 생각되면 도움이 될 것입니다. 터미널에서 하나의 라이너입니다.

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

캐시 를 비활성화 하는 쉬운 방법은 없지만 다음과 같이 원하는 경우 매분마다 캐시를 정리하여 동일한 효과를 얻을 수 있습니다 .

  • 그것을 확인 크론 - 직업
  • 을 누르고을 Alt-F2입력 한 gksudo gedit /etc/crontab후 아래에이 줄을 추가하십시오.

    */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches

  • 15 분마다 청소합니다. 첫 번째 매개 변수를 또는 대신 에 변경하여 실제로 원하는 경우 1 분 또는 5 분으로 설정할 수 있습니다.**/5*/15

캐시를 제외한 REAL 여유 RAM을 아는 하나의 라이너

Geirha의 답변은 세부 사항을 설명하지만 간단히 말해서 다음과 같은 사용 가능한 무료 메가 바이트 수를 얻습니다.

free -m | sed -n -e '3p' | grep -Po "\d+$"

내 2GB 명령 줄 서버에서 매우 건강을 반환합니다 1835.


3
어! 캐시를 제거하는 것은 충분히 나쁘지만 cronjob을 만드는가? 내 말은,이 말이 문제를 "해결"하는 것이지만, 그것이 덜 고통 스럽지는 않습니다.
Reid


@izx : 흠 ... 그래서 이것은 cronjob을 만드는 방법입니다. 캐시를 주기적으로 삭제한다고해서 실제로 시스템 속도가 느려지는 것은 아닙니다. 그럴 경우, 귀하의 답변은 geirha의 답변보다 이론적 인 답변이라고 생각합니다. : p 좋은 답변 BTW ...
금지 감독관

1
@ForbiddenOverseer : 캐시를 "비활성화"하고 싶기 때문에 주기적으로 삭제하는 것이 유일한 방법입니다. 상단 (및 geirha의 링크)에있는 나의 메모는 캐시가 "RAM을 먹는 것"처럼 보일지라도 실제로 대부분의 시간 동안 시스템 속도를 높인다는 사실을 분명히 밝히고 있습니다. 따라서 IMO는 시스템 속도를 늦출 것입니다 , 그러나 당신은 그것을 시도하고 싶었습니다. 그래서 나는 단순히 당신을 잔소리하고 나쁜 생각이라고 말하지 않고 당신의 질문에 대답했습니다. 그래서 그렇게해서는 안됩니다! 나는 단지 당신에게 실험 할 힘을주었습니다 ... : D
ish

1
Ubuntu Server 12.04 LTS를 VDS로 사용하고 있습니다. 이 답변에 제공된 접근법을 시도하고 있지만 지속적으로 받고 tee: /proc/sys/vm/drop_caches: Permission denied있습니다. 팁이 있습니까?
Eimantas

44

도움! 리눅스가 내 RAM을 먹었다!

www.linuxatemyram.com 은이를 FAQ 형태로 아름답게 설명합니다.

무슨 일이야?

리눅스는 디스크 캐싱을 위해 사용되지 않은 메모리를 빌리고있다. 이렇게하면 메모리가 부족한 것처럼 보이지만 그렇지 않습니다! 다 괜찮아!

왜 이러는거야?

디스크 캐싱으로 시스템이 훨씬 빨라집니다! 혼란스러운 초보자를 제외하고는 단점이 없습니다. 어떤 식 으로든 응용 프로그램에서 메모리를 가져 가지 않습니다!

더 많은 응용 프로그램을 실행하려면 어떻게합니까?

응용 프로그램에서 더 많은 메모리를 원하면 디스크 캐시에서 빌린 청크를 다시 가져옵니다. 디스크 캐시는 항상 즉시 응용 프로그램에 제공 될 수 있습니다! 당신은 숫양이 적지 않습니다!

실제 사용 가능한 램 양을 어떻게 알 수 있습니까?

스왑없이 응용 프로그램이 사용할 수있는 램 양을 보려면 free -m을 실행하고 "사용 가능한"열을 확인하십시오.

$ 무료 -m
              사용 가능한 총 무료 공유 버프 / 캐시
멤 : 1504 1491 13 855       792
스왑 : 2047 6 2041
이것이 당신의 대답입니다.


출처 : 언급 한 바와 같이 우수한 www.linuxatemyram.com- 자세한 내용은 방문하십시오.


1
@geirha : 링크 주셔서 감사합니다 ... 그것은 매우 유익하고 나는 끝에 주어진 실험을 좋아했다!
금지 감독관

@izx : tbh, 나는 대답을 받아들이는 데 어려움을 겪고 있습니다. 하지 언급,이 링크는 모든 다른 방법 ... 실제로 유익했다)
감독관 금지

@ForbiddenOverseer : 자세한 답변은 내 답변에서 내 의견을 참조하십시오-왜 그렇게해서는 안되는지에 대한 짧은 버전을 제공했지만 어쨌든 질문에 대답하여 실험하고 스스로 시험해 볼 수 있습니다. 캐시 정리 / 삭제가 도움이되지 않는다고 생각하면 더 이상 그렇게하지 마십시오 :)
ish

@izx,이 경우에는 그렇게하기가 약간 어렵다는 것을 알았습니다. 그러나 문제에 유용한 텍스트를 작성 했으므로 답변에 URL을 추가하면 답변이 삭제됩니까?
geirha

훌륭한 자원에 대한 귀하의 링크는 필요하지 않습니다. 방금 답변에 일부 부분을 포함하여 (속성 포함) 이제는 완벽하게 유효한 대안입니다 (실제로 대중이 볼 수있는 더 나은 답변입니다!) 훌륭한 직업, 공감-5k에 오신 것을 환영합니다!
ish

4

현재 메모리 사용량을 확인하려면

 watch -n 1 free -m

또는

 watch -n 1 cat /proc/meminfo

공간을 확보하려면

 sudo sysctl -w vm.drop_caches=3

참고 : 이 조치는 시스템을 더 빠르게 만들거나 안정성과 성능에 영향을 미치지 않으며 캐시에서 Linux 커널이 사용하는 메모리 만 정리합니다.

또는

 sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

참고 : cron 작업을 사용하여 특정 시간 간격으로 실행되도록 위의 명령을 예약 할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.