![대부분의 메모리가 "캐시"되어 있어도 스왑 공간이 여전히 사용됩니까? [복사]](https://linux55.com/image/81849/%EB%8C%80%EB%B6%80%EB%B6%84%EC%9D%98%20%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B0%80%20%22%EC%BA%90%EC%8B%9C%22%EB%90%98%EC%96%B4%20%EC%9E%88%EC%96%B4%EB%8F%84%20%EC%8A%A4%EC%99%91%20%EA%B3%B5%EA%B0%84%EC%9D%B4%20%EC%97%AC%EC%A0%84%ED%9E%88%20%EC%82%AC%EC%9A%A9%EB%90%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
나는 이 free -m
출력을 이해하려고 노력하고 있습니다.
total used free shared buffers cached
Mem: 7971 7608 363 1 17 4703
-/+ buffers/cache: 2887 5084
Swap: 975 967 8
그렇다면 프로세스가 실제로 8GB RAM 중 3GB를 사용하고 있음에도 불구하고 스왑이 사용됩니까? 왜 이런 일이 발생합니까? OS는 스왑을 사용하는 대신 fs 캐시에 더 적은 메모리를 사용하면 안 되나요?
운영 체제는 Ubuntu 14.04.3 LTS
기본 설정을 사용합니다.
답변1
OS는 스왑을 사용하는 대신 fs 캐시에 더 적은 메모리를 사용하면 안 되나요?
과거에 OS에 메모리가 부족하여 일부 메모리를 교체한 것 같습니다.
이제 부족 현상이 끝났으므로 스왑의 나머지 페이지는 사용되지 않으므로 OS는 이러한 사용되지 않은 페이지보다는 fs 캐시를 포함한 "핫" 데이터용으로 RAM을 예약하는 것이 더 나을 것입니다.
답변2
Linux는 페이지를 디스크로 교환하는 데 매우 공격적입니다.
이는 더 이상 RAM에 페이지 복사본이 없다는 의미는 아니지만, 여전히 스왑 캐시(디스크에 기록된 페이지를 캐시하는 RAM 부분)에 복사할 수 있다는 의미입니다. 이것의 장점은 일부 프로세스에 메모리가 필요할 때 RAM의 페이지를 즉시 해제할 수 있다는 것입니다. 다음을 통해 금액을 확인할 수 있습니다.
grep SwapCached /proc/meminfo
또한 프로세스의 페이지가 교체된 경우 프로세스에 해당 페이지가 필요하다는 의미는 아니지만 해당 기능/데이터 세그먼트를 전혀 사용하지 않는 일부 링크 라이브러리에서 나온 것일 수 있습니다.
구경하다https://serverfault.com/questions/550793/how-to-find-what-is-using-linux-swap-or-what-is-in-the-swap주제에 대한 소개를 위해 대체된 내용을 확인할 수 있는 스크립트 링크도 있습니다.
경험상 가상 메모리 관리는 때때로 혼란스러울 수 있습니다.
일반적으로 스왑의 크기는 중요하지 않지만 정상적인 활동 중에 스왑 인/아웃되는 양은 얼마나 됩니까(vmstat 확인).