Apa perbedaan yang tepat antara parameter (pgpgin, pswpin) dan (pswpout, pgpgout) di / proc / vmstat?

9

Harap perhatikan bahwa pertanyaan ini linuxhanya khusus untuk . Dan swap spacemaksud saya yang berdedikasi swap partition.

Saya melakukan googlesedikit pada ini, dan menemukan ini 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.

dan

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.

Sekarang, Anda mungkin ingin menduplikasi pertanyaan ini dengan pertanyaan yang menanyakan perbedaan antara paging dan swapping. Tetapi saya mencari lebih banyak. Kapan saja, apakah counter ini /proc/vmstatsaling eksklusif? Maksud saya, apakah parameter pswpinmenyertakan beberapa hitungan dari pgpginatau sebaliknya? Apa yang sebenarnya terjadi ketika suatu proses terjadi deactivated? Jika semua halamannya dipindahkan ke swapruang angkasa, lalu bagaimana sebenarnya bedanya dengan banyak pageouts? Juga, jika a pageinterjadi setiap kali kesalahan halaman terjadi, apa yang bisa dikatakan tentang dua parameter lainnya pgmajfaultdan pgfaultsehubungan dengan peristiwa ini? Apakah ini kasus bahwa setiap kali pagefault (major? minor?)terjadi, korespondensi pageinjuga terjadi?

Akan sangat membantu jika beberapa contoh program / tolok ukur disarankan untuk menguji masing-masing parameter ini.

PS: Saya mungkin terus menambahkan / mengedit pertanyaan :)

Nehal J Wani
sumber
Anda sebaiknya memindahkan pertanyaan ini ke unix.stackexchange.com
Antonio

Jawaban:

1
  1. pgpgin - Jumlah kilobyte yang dihasilkan sistem dari disk per detik.
  2. pgpgout - Jumlah kilobyte yang dihasilkan sistem ke disk per detik.
  3. pswpin - Jumlah kilobyte yang ditukar sistem dari disk per detik.
  4. pswpout - Jumlah kilobyte yang ditukar sistem ke disk per detik.
Kanti Varanasi
sumber
5
Nilai-nilai dalam /proc/vmstatyang tidak per detik, mereka Total sejak boot terakhir (lihat linuxinsight.com/proc_vmstat.html ). Jika Anda ingin nilai nilai lebih dari beberapa satuan waktu, maka Anda perlu mengambil perbedaan antara /proc/vmstatnilai - nilai - yang persis seperti apa utilitas vmstatdan sardapat lakukan untuk Anda.
devkev
2
pswpin / pswpout adalah jumlah halaman, bukan kilobyte.
George Sovetov
1

Untuk kernel Linux terbaru pgpgin - Jumlah kilobyte yang dihasilkan sistem dari disk per detik. pgpgout - Jumlah kilobyte yang dihasilkan sistem ke disk per detik.

pswpin - Jumlah halaman yang ditukar sistem dari disk per detik. pswpout - Jumlah halaman yang telah ditukar sistem ke disk per detik.

Pgpgin dan pgpgout pada dasarnya menunjukkan aktivitas IO.

Seperti yang ditunjukkan dalam email

Nikolai
sumber
2
pswpi / pswpout = halaman keluar / masuk bukan kilobyte masuk / keluar
IanB
5
Nilai-nilai dalam /proc/vmstatyang tidak per detik, mereka Total sejak boot terakhir (lihat linuxinsight.com/proc_vmstat.html ). Jika Anda ingin nilai nilai lebih dari beberapa satuan waktu, maka Anda perlu mengambil perbedaan antara /proc/vmstatnilai - nilai - yang persis seperti apa utilitas vmstatdan sardapat lakukan untuk Anda.
devkev
1

Pertanyaan lama dan tidak ada jawaban yang benar sejauh ini.

Pertama-tama, memori tersegmentasi oleh CPU dan Kernel ke dalam halaman yang disebut. Ukuran halaman diberikan oleh arsitektur CPU, banyak arsitektur mendukung berbagai ukuran halaman, tetapi ukuran halaman paling umum dalam arsitektur x86_64 memiliki ukuran 4KB. Parameter yang Anda bicarakan menunjukkan berapa banyak halaman memori yang dibaca / ditulis ke disk dan berapa banyak di antaranya yang ditukar.

Ingatlah bahwa halaman ini adalah aktivitas normal di kernel Linux, itu terjadi hampir setiap kali ketika Anda memuat biner dari disk (yang tidak di-cache) ke memori operasi - yaitu setiap kali Anda memulai aplikasi apa pun.

Karena operasi pgin dan pgout tidak selalu merupakan sesuatu yang perlu Anda khawatirkan, penghitung tambahan dibuat yang hanya berisi informasi untuk swap - itulah penghitung pswpin dan pswpout - mereka bertambah ketika halaman memori ditulis ke dalam swap atau ketika dibaca dari menukar.

Sekali lagi - ini juga tidak menunjukkan masalah, itu hanya menunjukkan masalah dalam keadaan tertentu - seperti ketika Anda melihat angka-angka ini berubah sangat banyak dalam periode waktu yang singkat (yang biasanya ketika sistem Anda kehabisan memori).

Singkatnya:

  • pgpgin, pgpgout - jumlah halaman yang dibaca dari disk dan ditulis ke memori, Anda biasanya tidak perlu terlalu peduli tentang angka-angka ini
  • pswpin, pswpout - Anda mungkin ingin melacak angka-angka ini per waktu (melalui beberapa pemantauan seperti prometheus), jika ada lonjakan itu berarti sistem sangat bertukar dan Anda memiliki masalah
Petr
sumber