필자는 Linux의 "swappiness"튜너 블을 읽고 있는데, 이는 커널이 사용되지 않을 때 디스크의 응용 프로그램 메모리를 얼마나 적극적으로 바꾸는지를 제어합니다. Google에이 용어를 사용하면 this과 같은 많은 페이지가 장단점을 논의합니다. 간단히 말해, 논증은 다음과 같습니다 :"swappiness"와 같은 토론은 왜 한 번에 한 곳에서만 가능합니까?
swappiness가 너무 낮 으면 비활성 프로그램이 다른 프로그램에서 사용하려는 모든 시스템 메모리를 소모합니다.
swappiness가 너무 높으면 비활성 응용 프로그램을 깨울 때 상태가 디스크에서 다시 읽혀지기 때문에 큰 지연이 발생할 수 있습니다.
이 인수는 나에게 이해가되지 않습니다. 많은 양의 메모리를 사용하는 비활성 응용 프로그램이있는 경우 왜 커널이 메모리를 디스크에 페이징하지 않고 해당 데이터의 다른 복사본을 메모리에 남겨 두지 않습니까? 이는 다른 응용 프로그램이 메모리를 필요로하는 경우 물리적 RAM을 즉시 소유 할 수 있고 디스크의 다른 복사본이 디스크에 있으므로 쓰기가 시작될 수 있으며 비활성 응용 프로그램이 깨어 났을 때 다시 스왑 될 수 있습니다 쪽으로. 그리고 원래 응용 프로그램이 깨어 난 후에도 RAM에 남아있는 페이지는 디스크에서 꺼내지 않고도 그대로 사용할 수 있습니다.
아니면 뭔가 빠졌습니까?
이 질문에 대한 답변이 제공되지 않습니다. vm.swappiness의 올바른 값은 여전히 부두입니다. 데스크톱에서 10 점으로 낮추었으며 응답 성이 향상되었습니다. 나는 그것을 100으로 늘렸고, 스왑 파일 사용은 0에 가깝고, 가상 박스 머신에 의해 취해진 RAM의 1/4이더라도 응답 성은 큽니다. "잘못된"값이 60의 기본값 중 하나 인 것 같습니다. – Apalala