SERVER:~ # free -h
total used free shared buffers cached
Mem: 31G 26G 4.5G 98M 0B 1.0G
-/+ buffers/cache: 25G 5.4G
Swap: 4.0G 68M 3.9G
SERVER:~ #
SERVER:~ # uptime
07:59am up 45 days 23:03, 1 user, load average: 0.00, 0.01, 0.05
SERVER:~ #
따라서 실제로 메모리를 소비하는 추가 프로세스가 실행되지 않습니다.
이미 "echo 3 >/proc/sys/vm/drop_caches"를 실행했지만 3G->1G 캐시 RAM에 불과했습니다.
메모리 사용량에 문제가 있다고 천천히 생각하고 있습니다.
서버를 재시작하면 괜찮은데, 몇십일 지나면 또 메모리가 다 소모되고, 심지어 스왑 공간 사용량도 늘어나기 시작합니다.
프로세스를 중지하기 전에 프로세스가 높은 메모리를 사용하고 있음을 나타내는 "ps" 명령에는 아무 것도 표시되지 않습니다(사용자 정의 소프트웨어의 경우). 아무것도 없습니다.
질문:무엇이 메모리를 모두 소모하고 있는지 어떻게 감지하나요? 메모리 누수인가요?
답변1
이것을 실행하여 free -g
"사용된" 메모리 중 실제로 "캐시된" 메모리의 양을 확인하십시오. 필요할 때 캐시 메모리가 해제됩니다.