Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #63, ФЕВРАЛЬ 2006 г.

нитрооктан для толстой птицы

J1M (J1M@LIST.RU)

Спецвыпуск: Хакер, номер #063, стр. 063-054-4


ReiserFS не позволяет управлять поведением системы журналирования так же гибко, но у нас все-таки есть шанс немного поднять скорость этой ФС. По умолчанию для экономии пространства в ReiserFS применяется технология сворачивания концов файлов, на что затрачивается время и ресурсы. Технология отключается, если в поле опций прописать «notail».

Некоторого прироста в скорости работы с временными файлами можно добиться примонтировав к разделу /tmp виртуальную файловую систему tmpfs. И тогда при создании файлы будут помещаться не на физический диск, а в оперативную память, что в свою очередь приведет к выигрышу в скорости работы с ними. Чтобы ты мог использовать tmpfs, на борту твоей машины должно быть установлено достаточное количество памяти (256 Мб подойдет), также весьма пригодится большой swap-раздел. Открой файл /etc/fstab и добавь в него строку:

tmpfs /tmp tmpfs size=512m,mode=1777 0 0

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

Теперь о грустном. Некоторые программы очень любят использовать /tmp для сохранения больших объемов информации. Например, mc кладет туда содержимое распакованного архива. Поэтому не стоит удивляться, если время от времени память будет бесследно пропадать.

снимаем ограничения

Во многих руководствах рекомендуется снимать все ограничения на количество процессов, файлов и т.д. Якобы я царь в своей системе и никто не имеет права ограничивать меня. Что же, посмотрим с другой стороны.

Допустим, кто-нибудь решил приколоться над тобой и запустил на твоей машине «логическую бомбу» (впрочем, то же могла сделать и вполне легальная программа), которая порождает бесконечное количество процессов. Наступит такой момент, когда система исчерпает свои ресурсы и попросту «зависнет». В случае если количество процессов лимитировано, такого не происходит.

Теперь к делу. Ограничения накладываются (или не накладываются :)) на любой процесс пользователя, а для управления ими можно использовать стандартную команду ulimit. Указав флаг '-a', мы увидим текущие настройки. В «нормально» настроенной системе количество процессов (поле processes) и одновременно открытых файлов (поле file descriptors) должно быть ограничено. Если это не так, то если записать в /etc/profile такую строку

ulimit -u 2047 -n 1024

мы установим для всех пользователей лимит в 2047 процессов и 1024 открытых файлов. Для стандартных повседневных нужд более чем достаточно. Еще одна хорошая идея на этот счет — запретить создание core-файлов (используется для отладки обрушившейся программы) используя опцию '-c 0'.

форсируем компилятор

Теперь возьмемся за ускорение программ, собираемых из исходников. В Linux такая практика имеет место часто, так как не всегда можно найти бинарный пакет для редкой программы. Стандартным компилятором мира Linux (да и всех *nix'ов) является GCC. Эта программа, разрабатываемая уже давно, обладает довольно внушительными возможностями оптимизации кода.

Назад на стр. 063-054-3  Содержание  Вперед на стр. 063-054-5