Какова точная разница между параметрами (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 КБ. Эти параметры, о которых вы говорите, показывают, сколько страниц памяти было либо прочитано / записано на диск, и сколько из них является подкачкой.

Имейте в виду, что page in - это обычное действие в ядре Linux, это происходит почти каждый раз, когда вы загружаете двоичный файл с диска (который не кэшируется) в оперативную память - то есть каждый раз, когда вы запускаете какое-либо приложение.

Поскольку операции pgin и pgout не всегда должны вызывать беспокойство, были созданы дополнительные счетчики, содержащие только информацию для подкачки - это счетчики pswpin и pswpout - они увеличиваются, когда страница памяти записывается в swap или когда она читается из обмен.

Опять же - это также не указывает на проблему, это только указывает на проблему при определенных обстоятельствах - например, когда вы видите, что эти цифры очень сильно меняются за короткий промежуток времени (обычно это происходит, когда вашей системе не хватает памяти).

Итак, в двух словах:

  • pgpgin, pgpgout - количество страниц, которые читаются с диска и записываются в память, обычно вам не нужно особо заботиться об этих числах
  • pswpin, pswpout - вы можете отслеживать эти числа за раз (с помощью некоторого мониторинга, например, через прометей), если есть всплески, это означает, что система сильно меняется, и у вас есть проблема
Petr
источник