메모리 사용량 문제

메모리 사용량 문제

RAM 사용량이 90%를 넘으면 알림을 받도록 휴대폰에 알람을 설정했습니다. 또한 모든 메모리, CPU, RAM 등을 모니터링하는 스크립트를 작성했습니다.

RAM 사용량을 줄이는 방법은 무엇입니까? 캐시를 지우는 스크립트도 있습니다. 하지만 라이브 서비스에 영향을 미치기 때문에 항상 실행하거나 cron을 설정할 수는 없습니다.

다음 스크립트가 있습니다.

memory_alarm=`/usr/bin/free -m|grep Mem|awk '{print $3/$2 * 100.0}'|cut -d\. -f1`

top 명령을 실행하면 66%가 표시되고 몇 초 후에 RAM 사용량이 95%라는 경고가 표시됩니다.

답변1

넌 안 가져갔어페이지 캐시free고려됩니다(출력의 "캐시" 열 아래). 디스크에 기록된 데이터는 캐시에 보관되었다가 파일이 삭제/교체되거나 사용 가능한 메모리가 부족해지고 다른 프로세스가 더 많은 메모리를 요청할 때 플러시됩니다.

$ free
             total       used       free     shared    buffers     cached
Mem:       2038308    1890180     148128        504      25072     489884
-/+ buffers/cache:    1375224     663084
Swap:      8386556       7440    8379116
$ /usr/bin/free -m|grep Mem|awk '{print $3/$2 * 100.0}'|cut -d\. -f1
92
$ /usr/bin/free -m|grep Mem|awk '{print ($3-$7)/$2 * 100.0}'|cut -d\. -f1
68

답변2

이것은 매우 오래된 답변이지만 항상 봅니다. @Neuro는 Linux가 디스크 I/O를 캐시하기 때문에 RAM 사용량이 (거의 전혀) 문제가 되지 않는다는 점에서 맞습니다. (디스크 I/O는 RAM 액세스에 비해 매우 느리며 Linux는 다시 필요할 것이라는 희망으로 디스크에서 읽은 거의 모든 섹터를 캐시합니다...) 따라서 높은 RAM 사용량은 기본적으로 관련이 없습니다.

언급되지 않은 것은 주요(또는 하드) 오류(디스크 I/O가 필요한 오류)가 문제이지만 지속적이고 과도한 경우에만 문제가 된다는 것입니다. 사소한(또는 소프트) 오류는 거의 문제가 되지 않습니다. 지속성과 과잉이란 무엇입니까? 그것이 문제이다.

관련 정보