Как посмотреть информацию о swap?

Подкачка страниц (англ. Paging; иногда используется термин swapping от swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск (или другой внешний накопитель, такой как флеш- память), освобождая ОЗУ для загрузки других фрагментов памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap- файл и swap- раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.

Как посмотреть информацию о swap? Небольшая утилита swapon, входящая в состав любого дистрибутива Linux, поможет вам посмотреть информацию о разделе swap и оценить его использование. Для просмотра информации о swap, выполним в консоли следующую команду:

HN OpenVZ

swapon -s
Filename				Type		Size	Used	Priority
/dev/sda6                               partition	8007676	33948	-1

VE OpenVZ

swapon -s
Filename				Type		Size	Used	Priority
/dev/null                               partition	2097152	0	-1

В колонке Filename мы видим название раздела, на котором расположен наш swap, колонка Type показывает, что этот раздел диска есть “partition”, Size показывает нам тот размер, который мы определили при установке системы для нашего swap. А вот в Used мы увидим насколько, на текущий момент, использован в нашей системе swap-раздел.

Аналогичную информацию вы можете получить, выполнив в консоли:

cat  /proc/swaps

Создание SWAP на разделе SSD диска Linux пошагово

Команды тестировались на Debian, будет работать на любых дистрибутивах Linux. Рекомендация. Без нужды не создавайте swap-файл более 4 ГБ, разберитесь с параметром swappiness, для сервера его значение стремится к нуля, для десктопного компьютера больше 60. И параметром vfs_cache_pressure.

  • Проверить, есть ли своп:
swapon --show
  • Посмотреть, что своп-файла нет и посчитать сколько оперативной памяти:
free -h
  • Проверить, сколько на диске свободного места, чтобы рассчитать размер для хранения свап-раздела:
df -h

В примере был выбран размер свопа в 2 ГБ.

  • Создать swap-файл размером 2 ГБ:
fallocate -l 2G /swapfile
  • Проверить, что было зарезервировано правильное количество места:
ls -lh /swapfile
-rw-r--r-- 1 root root 2.0G Dec 18 21:21 /swapfile
  • Сделать файл доступным только для root:
chmod 600 /swapfile
  • Пометить файл как swap-файл (файл подкачки):
mkswap /swapfile
  • Включить файл подкачки:
swapon /swapfile
  • Убедитесь, что своп доступен:
swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

Чтобы своп оставался доступен после перезагрузки, необходимо добавить файл подкачки в файл /etc/fstab:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Параметр swappiness определяет, как часто система выгружает данные из оперативной памяти в пространство подкачки. Его значение выражается числом от 0 до 100 процентов.

При значениях, близких к нулю, ядро не будет выгружать данные на диск, если в этом нет абсолютной необходимости. Взаимодействие с файлом подкачки требует гораздо больше времени, чем взаимодействие с оперативной памятью, и может вызывать значительное снижение производительности. Если система не зависит от подкачки, то, как правило, ее производительность повышается.

При значениях, близких к 100, система будет пытаться выгрузить больше данных на подкачку, чтобы разгрузить оперативную память. В зависимости от профиля памяти приложений и от тех задач, которые ставятся перед сервером, в некоторых случаях это плюс.

  • Посмотреть текущее значение процента подкачки:
cat /proc/sys/vm/swappiness
60

На моем сервере значение vm.swappiness=60 (это значение по умолчанию на всех Линукс дистрибутивах). Уменьшим параметр до 10:

sysctl vm.swappiness=10

Этот параметр будет действовать до следующей перезагрузки. Установить это значение автоматически при перезапуске, добавив строку в конец файла /etc/sysctl.conf программы sysctl:

echo 'vm.swappiness=10' >> /etc/sysctl.conf
  • Еще одно связанное значение — vfs_cache_pressure. Эта настройка определяет, насколько система будет кэшировать данные индексных дескрипторах (inode и dentry) по сравнению с другими данными. По сути, это данные доступа к файловой системе. Как правило, искать их довольно сложно, а запрашиваются они часто, так что кэш-память в этом случае весьма полезна. Чтобы узнать текущее значение этого параметра, можно еще раз запросить файловую систему proc:
cat /proc/sys/vm/vfs_cache_pressure
100

Согласно текущим настройкам (100), система удаляет данные инодов из кэша слишком быстро. Можно задать более консервативное значение, например 50:

sysctl vm.vfs_cache_pressure=50

Также для того чтобы это параметр загружался автоматически, после перезагрузки операционной системы, добавим его в файл sysctl.conf:

echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf

Всё! Мы добавили и настроили файл подкачки в ОС Linux.

Читайте также: cheklist_nastrojka_vps_vds_vydelennogo_servera_linux.

eTalk курсы английского языка.