RAM에서 스왑 불가능한 총 페이지 수를 얻는 방법은 무엇입니까?

RAM에서 스왑 불가능한 총 페이지 수를 얻는 방법은 무엇입니까?

고정된 물리적 메모리가 필요한 일부 ML 코드를 디버깅하려고 하며, 이 문제를 해결하는 데 도움을 주기 위해 물리적 RAM에 스왑할 수 없는 페이지(예: 스왑할 수 없는 커널 페이지, CUDA)가 포함된 양을 파악하고 싶습니다. 고정된 페이지 등).

특히 모든 페이지는 다음 3개 그룹 중 하나의 구성원이라고 생각합니다.

  1. 물리적 RAM에 상주하지만 교체 가능
  2. 물리적 RAM에 상주하지만 교체할 수 없음
  3. 물리적 RAM에서 교체됨

2그룹의 규모를 알고 싶습니다.

찾아보고 free명령어를 이해했는데, free그룹 1+2와 그룹 3에 대해서만 말씀드리는 것 같네요. 그룹 2를 구체적으로 격리할 수 있는 방법이 있습니까 free? 아니면 교체할 수 없는 그룹 페이지 수를 알아낼 수 있는 다른 방법이 있습니까?

답변1

proc 의사 파일 시스템에서 "meminfo" 파일을 볼 수 있습니다. 예를 들어 cat /proc/meminfo. "Unevictable" 및 "Mlocked"에 대한 항목을 찾으십시오. 나는 이것이 당신이 찾고 있는 것이라고 생각합니다. man proc일부 정보가 제공되지만 이 두 항목은 매뉴얼 페이지에서 많은 문서를 받지 못했습니다(적어도 내 시스템에서는 아님).

free명령을 통해 찾고 있는 정보를 얻는 방법을 찾지 못했습니다 .

/proc/meminfo에서 설명한 것처럼 전체 내용을 전달하지 못할 수 있습니다.https://docs.kernel.org/mm/unevictable-lru.html

/proc/meminfo에 대한 Unevictable 및 Mlocked 숫자에는 VM_LOCKED VMA의 PTE로만 매핑된 투명한 hugepages 부분이 포함되지 않습니다.

관련 정보