교환성은 절대적인가요 아니면 메모리 크기에 상대적인가요?

교환성은 절대적인가요 아니면 메모리 크기에 상대적인가요?

물리적 메모리에 예약된 가상 메모리의 양은 물리적 메모리 크기에 따라 달라지나요?
내 swappiness 매개변수가 60이라고 가정하면 8GB 중 4GB는 응용 프로그램 데이터로 채워지고 나머지 4GB는 파일 캐시로 채워집니다.
동일한 워크로드, 동일한 스왑 매개변수를 사용하지만 물리적 메모리가 4GB에 불과한 경우 4GB가 모두 애플리케이션 데이터로 채워지나요?

답변1

이는 비례적이며 메모리 크기를 전혀 기준으로 하지 않습니다. 코드는 mm/vmscan.c. 메모리와 동일하게 스캔됨)) 또는 페이지 캐시가 매우 커지고 비활성 페이지로 채워지면(파일 지원 페이지만 스캔됨) 다음과 같은 상황이 발생합니다.

/*
 * With swappiness at 100, anonymous and file have the same priority.
 * This scanning priority is essentially the inverse of IO cost.
 */
anon_prio = swappiness;
file_prio = 200 - anon_prio;

이러한 우선순위는 각 유형의 메모리를 해제하는 메모리 스캐너의 최근 성공 여부에 따라 추가로 조정됩니다. 그런 다음 각 유형의 메모리가 비례적으로 검색되고 최근에 사용되지 않은 페이지가 제거됩니다.

결론은 모두 작업량에 따라 다르다는 것입니다. swappiness 값은 익명 메모리 교체 시도에 할당할 우선 순위를 시스템에 알려주지만 메모리 액세스 패턴에 따라 실제로 발생하는 상황이 결정됩니다.

관련 정보