|
FreeBook FreeBSD OtherBSD SB Linux OtherOS FreeProgs FreeNotes FreeGeo SiteMap |
Об использовании swap-файлаНередко я использую морально устаревшие компьютеры на базе первых пентиумов для организации гейта между ЛВС и Интернет в небольших офисах (со стандартными функциями UNIX-сервера: прокси, почта, файрвол). Типичная конфигурация таких машин P-166MMX/32Mb и все остальное в том же духе. Одна из типичных ситуаций в собственной практике. При инсталляции системы размер свопа был выбран в соответствии с рекомендациями - удвоенным от оперативной памяти, - я, не мелочась, откусил от диска все 100мб :). Спустя некоторое время функции сервера были расширены: добавлена проверка почтового трафика антивирусом. Вскоре вылезла неприятная деталь: имеющихся в системе суммарных 132 мегабайт памяти не хватало для проверки некоторых писем. Файлы с 10-20 сканированными сертификатами, упакованными в архив, при проверке антивирусом распаковывались, и, исчерпав всю доступную память, "отстреливали" сканер. С некоторой долей вероятности забирая с собой и еще какой-нибудь сервис, коему "повезло" в этот момент попросить памяти. :( Выходом из этой ситуации послужила организация дополнительного файла подкачки. Опишу необходимую последовательность действий для FreeBSD 4.x: $ sh ./MAKEDEV vn0 $ dd if=/dev/zero of=/usr/swap bs=1024k count=256 $ chmod 0600 /usr/swap $ swapfile="/usr/swap" Понятно, что все эти действия производятся от лица root'а. После чего - либо перезагрузиться, либо подключить своп "на лету" командой $ vnconfig -ce /dev/vn0c /usr/swap swap У одного из моих коллег рушилась программа - анализатор лога Socks-прокси, исходный код которой был утерян. Временным решением ля него также стал дополнительный своп-файл. Резюмируя вышесказанное, хочу подчеркнуть, что ситуация исчерпания доступной памяти на сервере FreeBSD вовсе не исключительна, т.к. размер доступной памяти в системе всегда ограничен, и более того, жестко фиксирован еще на этапе проектирования системы. И сколько бы не было физической и виртуальной памяти, всегда найдется задача, которая ругнется в лог: /kernel: swap_pager: out of swap space От редактора: в этой заметке речь идет, разумеется, о сервере. Однако и на десктопе от такого зарекаться не след. Так что примем, товарищи, к сведению... - А.Ф. |
||||