스왑을 캐시하는 것이 왜 합리적입니까?


9

스왑 아웃 된 페이지를 캐시하는 것은 상당히 비생산적입니다. 페이지를 서로 바꾸면 페이지를 메모리에 먼저 캐시하고 올바른 위치로 옮기는 것 외에는 어떤 이점이 있습니까? 페이지가 사전에 스왑되어 있어도 "그냥"스왑하는 것이 더 합리적이지 않습니까? 실제로 캐싱 스왑은 단지 자원 낭비가 아닌가?


당신은 부인 / 선생님, 당신의 질문에 대한 나에게 좋은 점을 얻습니다. 투표를 두 번 할 수 있기를 바랍니다.
Eli Frey

답변:


12

더 많은 연구를 한 결과, SwapCached라는 용어 /proc/meminfo가 오해의 소지 가 있음을 발견했습니다 . 실제로, 이는 메모리와 스왑에서 동시에 바이트 수와 관련되므로 이러한 페이지가 더티가 아니더라도 스왑 아웃 할 필요가 없습니다.


2
그러나 캐시되는 것과 거의 동일합니까? "캐시 된"커널의 메모리 관리 시스템 인 WRT는 "디스크와 RAM 모두"를 의미합니다.
SamB

0

이것에 대해 들어 본 적이 없으며 나에게도 의미가 없습니다. 나는 여전히 스왑하지 않도록하는 좋은 오래된 규칙 (예를 들어 예약 제외)이 가장 좋다고 생각합니다. 이제 이론적으로 디스크처럼 느린 것에서로드하는 데 시간이 걸리는 직접 사용 가능한 메모리에 물건을 캐싱하는 것은 명백한 이점이 있습니다. 그러나 스왑 할 페이지를 캐시 할 수 있다면 왜 처음부터 다시 스왑합니까?


0

스왑과 RAM간에 페이지가 중복되는 것은 다음 중 하나에 해당 할 때 디스크를 기다리지 않는 것입니다.

  1. 그들에게서 무언가를 읽을 필요가있다

  2. 그들은 다른 것을위한 공간을 만들기 위해 추방되어야합니다.

만일 그들이 스왑에만 있었다면, 사례 1은 그들이 디스크에서 들어 오기를 기다리는 것을 의미합니다. RAM에만있는 경우 사례 2는 디스크로 나가기를 기다리는 것을 의미합니다.

(물론 사례 2는 실제로 이러한 페이지를 제거하는 것이 더 저렴하기 때문에 약간 더 복잡합니다. 따라서 커널은 우선적으로 페이지를 제거 할 것이지만 요점은 분명해야합니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.