메모리를 모두 차지하는 콘텐츠를 찾을 수 없습니다

메모리를 모두 차지하는 콘텐츠를 찾을 수 없습니다

서버 메모리는 약 24GB입니다. 을 실행하면 free -g메모리가 모두 소모된 것으로 나타났습니다.

             total       used       free     shared    buffers     cached
Mem:            23         23          0          0          0         18
-/+ buffers/cache:          4         19
Swap:           56          2         53

top그런 다음 당시 이 모든 기억을 무엇이 차지하고 있었는지 알아보기 위해 몇 가지 조사를 했습니다 M. 하지만 %MEM해당 열의 메모리는 꽤 여유로운 것 ​​같습니다 .

메모리를 확보하려면 어떻게 해야 합니까? 이는 컴퓨팅 서버이므로 컴퓨터를 다시 시작하지 않는 것이 가장 좋습니다.

답변1

출력을 잘못 해석했습니다 free. 게시한 내용에 따르면 사용 가능한 RAM이 19GB인 것으로 나타났습니다. 표시된 23GB는 시스템에서 캐시로 사용되지만 애플리케이션에서는 계속 사용할 수 있습니다. top메모리가 free로 표시되는 이유 이기도 합니다 ..

바라보다Linuxatemyram.com더 자세한 설명을 위해

답변2

당신은 참조 할 수 있습니다이 문제사용 가능한 정확한 메모리를 확인하는 데 사용됩니다.

  • 기본적으로리눅스하나 있다매우 효율적메모리 관리 프로세스에서는 실행 중인 컴퓨터의 모든 캐시 메모리를 해제해야 합니다.

  • 그러나 그것에 관해서는캐시 메모리,리눅스때로는 결정될 수도 있다캐시 메모리사용 중이고 필요한 경우 메모리 관련 문제가 발생하고 결국 사용 가능한 메모리가 소진될 수 있습니다. 이에 맞서기 위해 강제로리눅스저장된 캐시 메모리를 해제합니다.

즉시 메모리를 해제하려면 다음과 같이 하면 됩니다.

free && sync && echo 3 > /proc/sys/vm/drop_caches && free

편집하다: 이 명령을 cronjob으로 실행할 수도 있습니다.

~처럼@mjturner이는 성능 병목 현상을 일으킬 수 있으므로 덜 권장됩니다.

관련 정보