Почему swpd vmstat не равен нулю

Согласно man-странице vmstat, «swpd» означает количество используемой виртуальной памяти. Как я понимаю, для большинства случаев он должен быть равен нулю, если физический процессор не находится в пространстве.

Однако я просто обнаружил, что значение «swpd» моего сервера не равно нулю. [D1] [ ! d1]

Не знаю, почему. Даже если у меня более 700 процессов, CPU почти 100% не используются.

В общей сложности своп используется около 190 миллионов. [D7]

Значит ли это, что некоторые процессы будут использовать виртуальную свопинг, даже если процессоры бесплатны?

2
задан 26 December 2017 в 18:00

3 ответа

Swap не имеет ничего общего с загрузкой процессора. Swap - это память, записанная на диск.

ЦП может напрямую обращаться к нормальной ОЗУ, а оперативная память - очень быстро по сравнению с swap. Вот почему у нас есть оперативная память - как быстрый буфер для данных, к которым требуется доступ ЦП.

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

Кроме того, некоторые вещи никогда не могут использоваться, но все же они выделены памяти. Обычно ядро ​​заменяет вещи, которые не используются.

190 МБ, использующий SWAP, не является проблемой. Проблема в том, что компьютер должен писать вещи для обмена и снова получать.

У моего ноутбука есть 445 МБ, написанных для обмена на данный момент, и все же над 3GiB неиспользованной памятью - очевидно, что ядро ​​на каком-то этапе нашло то, что не использовалось, и решило поменять его.

Короче: не заботьтесь об использовании swap, если:

Вы часто наблюдаете. free -m показывает очень малое количество доступной памяти

Быстрый пример free -m из моего ноутбука:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7702       7454        247        582        230       3477
-/+ buffers/cache:       3746       3955
Swap:         8191        445       7746

Как мы видим, 247MiB бесплатно. Но это не вся история. Кроме того, существует более 3GiB кэшей, которые могут быть быстро освобождены, если для ядра требуется больше памяти. Таким образом, реальный объем свободной памяти составляет 3955 Мбайт, что показано во второй строке под free. Вы также видите, что используется swap.

Короче: не заботятся об использовании пространства подкачки, если у вас не возникли проблемы, такие как программное обеспечение, реагирующее очень медленно - что является хорошим признаком избиения.

[d15 ] Чтобы проверить на износ, вы можете запустить vmstat -s для отображения статистики. Вы увидите две строки:

   174085 pages swapped in
   569123 pages swapped out

Это числа страниц, написанных для обмена и чтения из swap. Пока эти цифры не растут быстро, все просто прекрасно - и обмен дает вам больше памяти для реальных приложений и кеширования, что ускоряет работу вашей системы.

7
ответ дан 22 May 2018 в 15:55
  • 1
    Я не могу внести незначительные изменения, но термин, который вы имеете в виду, - thrashing . – chrylis 26 December 2017 в 20:00
  • 2
    Исправлено :) Спасибо! – vidarlo 26 December 2017 в 20:16

Swap не имеет ничего общего с загрузкой процессора. Swap - это память, записанная на диск.

ЦП может напрямую обращаться к нормальной ОЗУ, а оперативная память - очень быстро по сравнению с swap. Вот почему у нас есть оперативная память - как быстрый буфер для данных, к которым требуется доступ ЦП.

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

Кроме того, некоторые вещи никогда не могут использоваться, но все же они выделены памяти. Обычно ядро ​​заменяет вещи, которые не используются.

190 МБ, использующий SWAP, не является проблемой. Проблема в том, что компьютер должен писать вещи для обмена и снова получать.

У моего ноутбука есть 445 МБ, написанных для обмена на данный момент, и все же над 3GiB неиспользованной памятью - очевидно, что ядро ​​на каком-то этапе нашло то, что не использовалось, и решило поменять его.

Короче: не заботьтесь об использовании swap, если:

Вы часто наблюдаете. free -m показывает очень малое количество доступной памяти

Быстрый пример free -m из моего ноутбука:

$ free -m total used free shared buffers cached Mem: 7702 7454 247 582 230 3477 -/+ buffers/cache: 3746 3955 Swap: 8191 445 7746

Как мы видим, 247MiB бесплатно. Но это не вся история. Кроме того, существует более 3GiB кэшей, которые могут быть быстро освобождены, если для ядра требуется больше памяти. Таким образом, реальный объем свободной памяти составляет 3955 Мбайт, что показано во второй строке под free. Вы также видите, что используется swap.

Короче: не заботятся об использовании пространства подкачки, если у вас не возникли проблемы, такие как программное обеспечение, реагирующее очень медленно - что является хорошим признаком избиения.

Чтобы проверить на износ, вы можете запустить vmstat -s для отображения статистики. Вы увидите две строки:

174085 pages swapped in 569123 pages swapped out

Это числа страниц, написанных для обмена и чтения из swap. Пока эти цифры не растут быстро, все просто прекрасно - и обмен дает вам больше памяти для реальных приложений и кеширования, что ускоряет работу вашей системы.

7
ответ дан 18 July 2018 в 00:26

Swap не имеет ничего общего с загрузкой процессора. Swap - это память, записанная на диск.

ЦП может напрямую обращаться к нормальной ОЗУ, а оперативная память - очень быстро по сравнению с swap. Вот почему у нас есть оперативная память - как быстрый буфер для данных, к которым требуется доступ ЦП.

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

Кроме того, некоторые вещи никогда не могут использоваться, но все же выделены памяти. Обычно ядро ​​заменяет вещи, которые не используются.

190 МБ, использующий SWAP, не является проблемой. Проблема в том, что компьютер должен писать вещи для обмена и снова получать.

У моего ноутбука есть 445 МБ, написанных для обмена на данный момент, и все же над 3GiB неиспользованной памятью - очевидно, что ядро ​​на каком-то этапе нашло то, что не использовалось, и решило поменять его.

Короче: не заботьтесь об использовании swap, если:

Вы часто наблюдаете. free -m показывает очень малое количество доступной памяти

Быстрый пример free -m из моего ноутбука:

$ free -m total used free shared buffers cached Mem: 7702 7454 247 582 230 3477 -/+ buffers/cache: 3746 3955 Swap: 8191 445 7746

Как мы видим, 247MiB бесплатно. Но это не вся история. Кроме того, существует более 3GiB кэшей, которые могут быть быстро освобождены, если для ядра требуется больше памяти. Таким образом, реальный объем свободной памяти составляет 3955 Мбайт, что показано во второй строке под free. Вы также видите, что используется swap.

Короче: не заботятся об использовании пространства подкачки, если у вас не возникли проблемы, такие как программное обеспечение, реагирующее очень медленно - что является хорошим признаком избиения.

Чтобы проверить на износ, вы можете запустить vmstat -s для отображения статистики. Вы увидите две строки:

174085 pages swapped in 569123 pages swapped out

Это числа страниц, написанных для обмена и чтения из swap. Пока эти цифры не растут быстро, все просто прекрасно - и обмен дает вам больше памяти для реальных приложений и кеширования, что ускоряет работу вашей системы.

7
ответ дан 24 July 2018 в 17:13

Другие вопросы по тегам:

Похожие вопросы: