[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Выбор способа выделения пространства подкачки

Существует три способа выделения пространства подкачки:

Динамическое выделение пространства подкачки

В AIX младше 4.3.2 по умолчанию применяется динамический способ выделения пространства подкачки, то есть страница пространства подкачки выделяется только тогда, когда к ней фактически поступает обращение. Под обращением понимается изменение страницы (например, с помощью функции bzero(), если страница была запрошена с помощью функции calloc(), либо путем инициализации страницы). В стратегии динамического выделения пространства подкачки область пространства подкачки выделяется при изменении страницы оперативной памяти, однако эта область не связывается с процессом до тех пор, пока он не начнет выгружать данные на диск. Следовательно, нет никакой гарантии, что процессу хватит пространства подкачки, если ему потребуется выгрузить данные на диск, поскольку все пространство подкачки может быть занято процессами, которые были запущены позднее.

Статическое выделение пространства подкачки

Для того чтобы процесс не был убит вследствие нехватки пространства подкачки, ему следует заранее выделить область пространства подкачки с помощью стратегии статического выделения пространства подкачки. Для этого переменной среды PSALLOC нужно присвоить значение early. Это может сделать сам процесс, либо пользователь с помощью команды PSALLOC=early. Когда процесс вызывает функцию malloc() для получения некоторого объема памяти, на диске, содержащем пространство подкачки, будут зарезервированы блоки для данного процесса. Таким образом, если процессу потребуется выгрузить данные на диск, для него гарантированно будет найдена свободная область пространства подкачки. В системе со стратегией статического выделения пространства подкачки можно несколько сэкономить ресурсы процессора, установив переменную среды NODISCLAIM=true. В этом случае при обработке системного вызова free() не будет вызываться функция disclaim().

Отложенное выделение пространства подкачки

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

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

Выбор одной из двух стратегий (LPSA или DPSA) с помощью команды vmtune

Команда vmtune с опцией -d позволяет выключить стратегию отложенного выделения пространства подкачки и включить стратегию динамического выделения пространства подкачки. Если значение опции равно 1, то стратегия DPSA будет включена, а если значение равно 0, то выключена. Перед выключением стратегии DPSA убедитесь, что ядро системы относится к AIX 4.3.2.6 или выше.

Использование пространства подкачки и виртуальной памяти

Число страниц виртуальной памяти, к которым действительно обращались процессы, можно узнать с помощью команды vmstat (столбец avm), команды ps (поле SIZE или SZ) и других утилит. В системах со стратегией DPSA это число не обязательно совпадает с числом страниц, занятых в пространстве подкачки. Объем памяти, занятой в пространстве подкачки, можно узнать с помощью команды svmon (в AIX 4.3.2 и выше). Это значение может быть намного меньше значения avm, указанного в выводе команды vmstat.

Для определения объема свободной памяти в пространстве подкачки лучше использовать команду lsps -s, а не команду lsps -a, так как команда lsps -a учитывает только ту часть пространства подкачки, которая действительно занята. Команда lsps -s учитывает как объем занятой памяти в пространстве подкачки, так и объем памяти, зарезервированной с помощью стратегии EPSA.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]