![아직 여유 메모리가 많은데 스왑을 사용하는 이유는 무엇입니까? [복사]](https://linux55.com/image/52597/%EC%95%84%EC%A7%81%20%EC%97%AC%EC%9C%A0%20%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B0%80%20%EB%A7%8E%EC%9D%80%EB%8D%B0%20%EC%8A%A4%EC%99%91%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
2.6.18 아래 Linux Kernel(Red Hat) 서버를 보면 여유 메모리는 많은데 일부 swap이 사용되고 있는 것을 볼 수 있습니다. 나는 항상 메모리가 고갈되면 스왑을 오버플로로 생각했습니다. 약 7GB(50%)의 사용 가능한 메모리로 교체하는 이유는 무엇입니까? 교환 정도는 60(기본값)입니다.
메모리 정보 출력:
MemTotal: 16436132 kB
MemFree: 7507008 kB
Buffers: 534804 kB
Cached: 2642652 kB
SwapCached: 39084 kB
Active: 6001828 kB
Inactive: 2532028 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 16436132 kB
LowFree: 7507008 kB
SwapTotal: 2097144 kB
SwapFree: 1990096 kB
Dirty: 236 kB
Writeback: 0 kB
AnonPages: 5353644 kB
Mapped: 45764 kB
Slab: 330660 kB
PageTables: 34020 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 10315208 kB
Committed_AS: 14836360 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 264660 kB
VmallocChunk: 34359472735 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
답변1
0으로 설정하면 사용 가능한 메모리가 없는 경우에만 스왑이 발생합니다. swappiness
그렇지 않으면 유휴 기간 동안 커널이 메모리를 스왑합니다. 이 과정에서 데이터는 메모리에서 삭제되지 않지만 스왑 파티션에 복사본이 생성됩니다.
즉, 메모리 부족 상황이 발생하면 즉시 디스크에 쓸 필요가 없습니다. 이 경우 커널은 데이터 복사본이 있다는 것을 알고 있기 때문에 교체된 메모리 페이지를 덮어쓸 수 있습니다.
이 swappiness
매개변수는 기본적으로 이 작업을 수행하는 정도를 제어합니다.