Linux가 사용 가능한 모든 메모리를 사용하지 않는 이유

Linux가 사용 가능한 모든 메모리를 사용하지 않는 이유

나는 256MB의 메모리를 가진 Linux VPS를 가지고 있습니다( free그러나 248MB만 찾습니다). 하지만 아직 85MB의 여유 공간이 있는 것 같습니다.하지만255MB로 교체됩니다. 왜 이런거야?

free -m

              total       used       free     shared    buffers     cached
Mem:           248        245          3          0         41         40
-/+ buffers/cache:        163         85
Swap:         1971        255       1716

답변1

85MB가 아닌 3MB의 여유 공간이 있습니다. 사용된 스왑 공간은 255MB이고 스왑된 데이터를 보관하는 데 잠재적으로 사용할 수 있는 메모리는 88MB이므로 커널은 최소 167MB를 스왑할 수 밖에 없습니다. 그보다 더 많이 교체한 이유는 해당 메모리를 최근에 액세스하지 않은 응용 프로그램 데이터를 보관하는 데 사용하는 것보다 디스크 캐시(기술적으로는 페이지 캐싱)에 사용하면 성능이 더 좋을 것이라고 커널이 판단했기 때문입니다.

3MB를 여유 공간으로 유지하는 이유는 메모리를 쉽게 확보하거나 용도를 변경할 수 없는 상황에서 로드 급증을 처리하기 위한 것입니다. 예를 들어 네트워크 트래픽이 급증하거나 디스크 I/O가 완료되는 경우입니다.

관련 정보