이 질문은 특정 사용자에게만 해당됩니다 linux
. 그리고 swap space
, 내 말은 전용 을 의미 합니다 swap partition
.
나는 google
이것에 대해 약간의 작업을 수행했고 다음을 발견했습니다 definitions
.
Paging refers to writing portions, termed pages, of a process’ memory to disk.
Swapping, strictly speaking, refers to writing the entire process, not just part, to disk.
In Linux, true swapping is exceedingly rare, but the terms paging and swapping
often are used interchangeably.
그리고
page-out: The system's free memory is less than a threshold "lotsfree" and unnused / least used pages are moved to the swap area.
page-in: One process which is running requested for a page that is not in the current memory (page-fault), it's pages are being brought back to memory.
swap-out: System is thrashing and has deactivated a process and it's memory pages are moved into the swap area.
swap-in: A deactivated process is back to work and it's pages are being brought into the memory.
이제 페이징과 스와핑의 차이점을 묻는 질문과 함께 이 질문을 복제할 수 있습니다. 그러나 나는 좀 더 많은 것을 추구합니다. 어느 시점에서든 이러한 카운터는 /proc/vmstat
상호 배타적입니까? 즉, 매개변수 pswpin
에 일부 카운트가 포함되거나 pgpgin
그 반대의 경우도 포함됩니까? 프로세스가 다음과 같을 때 정확히 무슨 일이 발생합니까 deactivated
? 모든 페이지가 swap
공간으로 이동한다면 다중 페이지와 정확히 어떻게 다른가요 pageouts
? 또한 pagein
페이지 폴트가 발생할 때마다 a가 발생한다면 다른 두 매개변수 pgmajfault
와 pgfault
이 이벤트에 대해 무엇을 말할 수 있습니까? a가 pagefault (major? minor?)
발생할 때마다 대응 도 발생하는 경우가 있나요 pagein
?
이러한 개별 매개변수를 테스트하기 위해 일부 예제 프로그램/벤치마크가 제안되면 도움이 될 것입니다.
추신: 질문을 계속 추가/편집할 수 있습니다 :)
답변1
너무 오래된 질문이고 지금까지 정답이 없습니다.
우선, 메모리는 CPU와 커널별로 소위 페이지라고 불리는 단위로 분할됩니다. 페이지 크기는 CPU 아키텍처에 따라 결정되며 많은 아키텍처는 다양한 페이지 크기를 지원하지만 x86_64 아키텍처에서 가장 일반적인 페이지 크기는 4KB입니다. 당신이 말하는 이러한 매개 변수는 디스크에 읽거나 쓴 메모리 페이지 수와 그 중 스왑된 메모리 페이지 수를 보여줍니다.
명심하세요페이지 인이는 Linux 커널의 일반적인 활동으로, 캐시되지 않은 디스크의 바이너리를 운영 메모리로 로드할 때 거의 항상 발생합니다. 즉, 애플리케이션을 시작할 때마다 발생합니다.
pgin 및 pgout 작업이 항상 걱정해야 하는 것은 아니기 때문에 스왑에 대한 정보만 포함하는 추가 카운터가 생성되었습니다. 즉, pswpin 및 pswpout 카운터는 메모리 페이지가 스왑에 기록되거나 스왑에서 읽을 때 증가됩니다. 교환.
다시 말하지만, 이는 문제를 나타내지 않으며 특정 상황에서만 문제를 나타냅니다. 예를 들어 이러한 숫자가 짧은 시간 내에 매우 많이 변하는 경우(일반적으로 시스템 메모리가 부족할 때)입니다.
간단히 말해서:
- pgpgin, pgpgout - 디스크에서 읽고 메모리에 쓰는 페이지 수, 일반적으로 이 숫자에 크게 신경 쓸 필요가 없습니다.
- pswpin, pswpout - 프로메테우스와 같은 일부 모니터링을 통해 시간당 이러한 숫자를 추적할 수 있습니다. 스파이크가 있으면 시스템이 과도하게 교체되고 문제가 있음을 의미합니다.
답변2
- pgpgin - 시스템이 초당 디스크에서 페이지 인한 킬로바이트 수입니다.
- pgpgout - 시스템이 초당 디스크에 페이지 아웃한 킬로바이트 수입니다.
- pswpin - 시스템이 초당 디스크에서 스왑한 킬로바이트 수입니다.
- pswpout - 시스템이 초당 디스크로 스왑 아웃한 킬로바이트 수입니다.