четверг, 26 июня 2008 г.

Уменьшение времени запуска программ в Ubuntu при помощи prelink и preload

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


aptitude install prelink
/etc/cron.daily/prelink


Preload - другое средство уменьшения времени запуска, основанное на предварительной
загрузке в память наиболее интенсивно используемых данных, не дожидаясь непосредственного
запуска программы (эффективно для повторных запусков).

aptitude install preload

Как правило конфигурация по умолчанию (/etc/preload.conf) не требует изменений,
но при желании можно обратить внимание на опции:

model.cycle (по умолчанию 20 сек) - как часто будет инициирован анализ состояния системы и обновление кэша;

model.halflife ( по умолчанию 168 часов) - через какое время данные в кэше будут считаться устаревшими
(каждый halflife степень актуальности данных в кэше будет уменьшена на 50%);

model.minsize (по умолчанию 2000000 байт) - минимальный объем данных прошедший через системные вызовы,
необходимый для начала оптимизации приложения. Позволяет использовать preload только для крупных приложений.

model.memtotal (-10%), model.memfree (100%), model.memcached (30%) - директивы определяющие степень использования ОЗУ для хранения кэша.
Размер кэша рассчитывается по формуле:
model.memtotal * размер ОЗУ
+ model.memfree * размер свободной памяти во время запуска preload
+ model.memcached * размер памяти отведенной под системный кэш (Cached).

Состояние работы preload можно оценить через файл /var/lib/preload/preload.state

Если prelink, как правило, запускается раз в день и модифицирует ELF файлы,
то preload оформлен в виде программы-демона,
постоянно наблюдающего за интенсивностью запуска программ и на основании
собранной статистики загружающего компоненты в память.
Выигрыш от использования prelink для OpenOffice.org и Firefox около 15-20%, для preload - 50%.

opennet.ru

Комментариев нет: