Пейджинг и свопинг FreeBSD

В применении пространства свопинга (области подкачки) нет ничего плохого. FreeBSD использует область подкачки как виртуальную память. Жесткий диск намного медленнее оперативной памяти, однако область подкачки так или иначе работает, а многим программам вовсе не надо хранить все данные в оперативной памяти. Обычно программы тратят 80% своего времени на исполнение 20% своего кода. Большая часть остального кода – это код запуска и завершения программы, обработки ошибок и т. д. Вы можете поместить этот код в область подкачки без серьезного снижения производительности.

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

Под использованием области подкачки подразумеваются операции пейджинга (paging) и свопинга (swapping). Когда происходит пейджинг – это нормально; свопинг – это не так хорошо, но лучше, чем аварийное завершение программы.

Пейджинг

Система FreeBSD выполняет операцию пейджинга, когда она перемещает часть запущенной программы в пространство свопинга. Пейджинг действительно может способствовать повышению производительности в тяжело нагруженной системе, поскольку незадействован- ные данные хранятся на диске, пока они не понадобятся, а всю оперативную память можно отдать работающему коду. Да и что случится, если вытеснить в область подкачки код запуска базы данных после того как она уже запущена?

Свопинг

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

Сложности со свопингом заключаются в том, что использование диска поставлено с ног на голову, а производительность значительно падает. Поскольку запросы обрабатываются дольше, в системе одновременно может скопиться много запросов. Протоколирование с целью изучения проблемы лишь усугубляет ситуацию, поскольку само протоколирование – это дополнительный системный процесс. Некоторые системы могут обслуживать определенный объем пространства свопинга, а в других ситуация резко ухудшается. Такое влияние на производительность иногда называют спиралью смерти (death spiral).

Когда перегружен процессор – производительность системы падает, когда узким местом являются диски – производительность системы падает. Нехватка памяти может вызвать крах системы. Если причиной замедления является свопинг, вам необходимо приобрести дополнительную память либо смириться с неудовлетворительной производительностью.

Команда vmstat(8), в частности, показывает число вытесненных в область подкачки процессов в каждый момент времени.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий