0
몇 주 정도 후에 8코어 RHEL5 서버에 로드가 발생하는 것을 확인했습니다 1
.
그러나 RAM은 항상 가득 차 있습니다. 문제를 디버깅하려고 합니다. 메모리가 어디로 가는지 어떻게 진단합니까?
답변1
Linux에서는 RAM이 가득 차는 것이 정상입니다. 출력 보기 cat /proc/meminfo
:
MemTotal: 2051700 kB
MemFree: 74376 kB
Buffers: 0 kB
Cached: 1562336 kB
...
예제 출력에서 볼 수 있듯이 총 2GB RAM이 있지만 74MB만 사용할 수 있습니다. 이것은 정상입니다. 그러나 다음 Cached
값을 참조하십시오.공식 Linux 커널 문서:
Cached: in-memory cache for files read from the disk (the pagecache). Doesn't include SwapCached
모든 최신 운영 체제는 이와 같이 페이지 캐싱을 처리합니다. 애플리케이션을 시작하면 코드와 라이브러리가 RAM에 로드됩니다. 다른 응용 프로그램에서 RAM이 필요하고 사용 가능한 여유 RAM이 없을 때까지 RAM에 남아 있습니다. 그래서 RAM은 항상가득한.
RAM 사용량을 알고 싶다면그리고Cached
제 경우에는 필요할 때 합계 값을 빼야 합니다 .MemFree
Memtotal
2051700 kB
- 1562336 kB
- 74376 kB
-------------
= 414988 kB
실제로 필요한 것은 415MB뿐입니다.