Яка точна різниця між параметрами (pgpgin, pswpin) та (pswpout, pgpgout) у / proc / vmstat?


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? Крім того, якщо pageinвиникає всякий раз, коли виникає помилка сторінки, що можна сказати про два інші параметри pgmajfaultта pgfaultстосовно цієї події? Чи буває так, що кожного разу, коли pagefault (major? minor?)виникає, відбувається і відповідне pagein?

Було б корисно, якщо для перевірки цих окремих параметрів запропоновано кілька прикладних програм / орієнтирів.

PS: Я можу продовжувати додавати / редагувати питання :)


Ви краще перенесіть це питання на unix.stackexchange.com
Антоніо

Відповіді:


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 - це кількість сторінок, а не кілобайт.
Георгій Совєтов

1

Для останніх ядер Linux pgpgin - Кількість кілобайт, які система завантажила з диска в секунду. pgpgout - кількість кілобайт, які система завантажила на диск за секунду.

pswpin - кількість сторінок, які система замінила з диска за секунду. pswpout - кількість сторінок, які система замінила на диск за секунду.

Pgpgin та pgpgout по суті вказують на активність вводу-виводу.

Як зазначено в електронній пошті


2
pswpi / pswpout = Сторінки введення / виведення не кілобайт в / в
IanB

5
Значення /proc/vmstatє НЕ на другий, вони є повними з моменту останнього завантаження (див linuxinsight.com/proc_vmstat.html ). Якщо ви хочете значення ставок протягом певної одиниці часу, то вам потрібно взяти різницю між /proc/vmstatзначеннями - що саме те, що утиліти люблять vmstatі sarможуть зробити для вас.
devkev

1

Таке старе запитання і правильної відповіді поки що немає.

Перш за все, пам'ять сегментується процесором і ядром на так звані сторінки. Розмір сторінки задається архітектурою процесора, багато архітектури підтримують кілька різних розмірів сторінок, але найбільш поширений розмір сторінки в архітектурі x86_64 має розмір 4 КБ. Ці параметри, про які ви говорите, показують, скільки сторінок пам’яті було прочитано / записано на диск і скільки з них є свопом.

Майте на увазі, що сторінка в - це нормальна активність в ядрі Linux, це відбувається майже кожен раз, коли ви завантажуєте двійковий файл з диска (який не є кешованим) в операційну пам’ять - це щоразу, коли ви запускаєте будь-яку програму.

Оскільки операції pgin та pgout - це не завжди те, про що потрібно турбуватися, були створені додаткові лічильники, які містять лише інформацію для swap - це лічильники pswpin та pswpout - вони збільшуються, коли сторінка пам'яті записується в swap або коли вона читається з міняти місцями.

Знову ж таки - це також не вказує на проблему, воно вказує на проблему лише за певних обставин - наприклад, коли ви бачите, що ці цифри сильно змінюються за короткий проміжок часу (як правило, коли у вашої системи немає пам'яті).

Отже, коротко:

  • pgpgin, pgpgout - кількість сторінок, які читаються з диска і записуються в пам'ять, зазвичай вам не потрібно так сильно піклуватися про ці цифри
  • pswpin, pswpout - ви можете відстежувати ці цифри одночасно (через деякий моніторинг, наприклад, prometheus), якщо є шипи, це означає, що система сильно змінюється і у вас є проблеми
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.