/ proc / vmstat의 매개 변수 (pgpgin, pswpin)와 (pswpout, pgpgout)의 정확한 차이점은 무엇입니까?


9

이 질문은 특정 질문 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다릅니 까? A는 경우에도 pagein페이지 오류가 발생할 때마다 발생 하나는 다른 두 개의 매개 변수에 대해 무슨 말을 할 수 pgmajfaultpgfault이 사건에 관하여? pagefault (major? minor?)발생할 때마다 해당하는 경우 pagein도 발생합니까?

이러한 개별 매개 변수를 테스트하기 위해 일부 예제 프로그램 / 벤치 마크가 제안되면 도움이됩니다.

추신 : 나는 질문을 계속 추가 / 편집 할 수 있습니다 :)


답변:


1
  1. pgpgin-시스템이 초당 디스크에서 페이징 한 킬로바이트 수
  2. pgpgout-시스템이 초당 디스크로 페이징 한 킬로바이트 수
  3. pswpin-시스템이 초당 디스크에서 스왑 한 킬로바이트 수
  4. pswpout-시스템이 초당 디스크로 스왑 한 킬로바이트 수

5
의 값 /proc/vmstat은 초당 이 아니며 마지막 부팅 이후의 총계입니다 ( linuxinsight.com/proc_vmstat.html 참조 ). 일정 시간 단위의 요율 값을 원할 경우, /proc/vmstat유틸리티 가 당신을 위해 무엇을 할 수 vmstat있고 정확하게 sar할 수 있는 값 사이의 차이를 고려해야 합니다.
devkev

2
pswpin / pswpout은 킬로바이트가 아닌 페이지 수입니다.
George Sovetov

1

최신 Linux 커널 pgpgin – 시스템이 초당 디스크에서 페이징 한 킬로바이트 수. pgpgout – 시스템이 초당 디스크로 페이징 한 킬로바이트 수

pswpin – 시스템이 초당 디스크에서 스왑 한 페이지 수입니다. pswpout – 시스템이 초당 디스크로 스왑 한 페이지 수입니다.

pgpgin 및 pgpgout은 본질적으로 IO 활동을 나타냅니다.

이메일 에서 지적했듯이


2
pswpi / pswpout = 페이지의 인 / 아웃 되지는 킬로바이트 / 아웃
IanB

5
의 값 /proc/vmstat은 초당 이 아니며 마지막 부팅 이후의 총계입니다 ( linuxinsight.com/proc_vmstat.html 참조 ). 일정 시간 단위의 요율 값을 원할 경우, /proc/vmstat유틸리티 가 당신을 위해 무엇을 할 수 vmstat있고 정확하게 sar할 수 있는 값 사이의 차이를 고려해야 합니다.
devkev

1

너무 오래된 질문이며 지금까지 정답이 없습니다.

우선, 메모리는 CPU와 커널에 의해 소위 페이지로 분할됩니다. 페이지 크기는 CPU 아키텍처로 제공되며, 많은 아키텍처는 여러 다른 페이지 크기를 지원하지만 x86_64 아키텍처에서 가장 일반적인 페이지 크기는 4KB입니다. 이 매개 변수는 디스크에 읽거나 쓴 메모리 페이지 수와 스왑 수를 보여줍니다.

있다는 사실을 숙지 페이지는 당신이 어떤 응용 프로그램을 시작할 때마다입니다 - 리눅스 커널의 정상적인 활동이며, 그것은 당신이 운영 메모리에 (캐시되지 않습니다) 디스크에서 바이너리를로드하는 거의 모든 시간을 발생합니다.

pgin 및 pgout 작업이 항상 걱정할 필요는 없기 때문에 스왑에 대한 정보 만 포함하는 추가 카운터가 만들어졌습니다. 즉, pswpin 및 pswpout 카운터는 메모리 페이지가 스왑으로 작성되거나 읽을 때 증가합니다. 교환.

다시 말하지만 이것은 문제를 나타내는 것이 아니라 특정 상황에서 문제가 있음을 나타냅니다. 예를 들어 짧은 시간에 이러한 숫자가 크게 변하는 경우 (일반적으로 시스템의 메모리가 부족한 경우).

간단히 말해서 :

  • pgpgin, pgpgout-디스크에서 읽고 메모리에 쓰는 페이지 수, 일반적으로이 숫자에 대해 그다지 신경 쓰지 않아도됩니다.
  • pswpin, pswpout-(프로 메테우스와 같은 일부 모니터링을 통해) 시간당 이러한 숫자를 추적하고 싶을 수도 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.