Оптимизация работы VPS/VDS

После приобретения VPS/VDS сервера возникает масса проблем. Конечно процесс выбора веб-сервера, фтп-сервера и почтового сервера это уже на любителя. В первую очередь нужно подумать об оптимизации работы сервера, его производительности и скорости работы. Проблемы начинают появляться в процессе работы сервера. Если сервер не особо производительный то возникают проблемы с памятью и её постоянно не хватает или процессор загружен по максимуму. И тут наступает момент когда необходимо провести оптимизацию сервера. Ниже будут описаны два демона которые помогут это сделать - это Prelink который позволяет уменьшить время загрузки приложений, связанных с множеством динамических библиотек и Preload — демон, работающий в фоне, который собирает информацию о наиболее часто используемых программах, кэширует их и используемые ими библиотеки.

Большинство приложений используют разделяемые библиотеки. Библиотеки могут быть интегрированы в программу при компиляции (статическое связывание), либо подгружаться при запуске программы (динамическое связывание). Одним из преимуществ динамической компоновки, является уменьшение размера исходной программы и более простое обслуживание, но при запуске программы возникает необходимость в поиске нужных библиотек. Так как библиотеки располагаются на диске в произвольных местах,- увеличивается время запуска программ и падает производительность. Prelink, выполняя предварительное связывание, позволяет уменьшить этот недостаток. При возникновении проблем динамическое связывание всегда можно отменить. Не стоит забывать, что при обновлении библиотек процесс связывания необходимо запускать заново. 
 
Prelink позволяет уменьшить время загрузки приложений, связанных с множеством динамических библиотек, путем оптимизации на уровне структуры ELF файла.
Установите Prelink используя менеджер пакетов Вашего дистрибутива
 
В Debian/Ubuntu:
sudo apt-get install prelink
 
Используя любимый текстовый редактор с правами root отредактируйте файл /etc/default/prelink
sudo nano /etc/default/prelink
 Измините параметр
 PRELINKING=unknown
 на
 PRELINKING=yes
 
Запустите prelink:
 sudo /etc/cron.daily/prelink
 
Теперь демон prelink будет периодически запускаться для оптимизации новых, установленных приложений.
 
 
Preload — демон, работающий в фоне, который собирает информацию о наиболее часто используемых программах, кеширует их и используемые ими библиотеки.
 
При запуске системы загружает наиболее используемые библиотеки, что приводит к повышению скорости загрузки программ.
 
Установка в Debian/Ubuntu:
sudo apt-get install preload
 
Как правило конфигурация по умолчанию preload не требует изменений.
 
Но при желании можно и покрутить файл /etc/preload.conf
 
Обратите внимание на опции:
model.cycle (по умолчанию 20 сек) - определяет время инициализации анализа состояния системы и обновление кэша;
 
model.halflife (по умолчанию 168 часов) - определяет время через которое, данные в кэше будут считаться устаревшими
 (каждые 168 часов степень актуальности данных в кэше будет уменьшена на 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
 
Почему не 1 программа, а 2? Всё просто, prelink, запускается раз в день и модифицирует ELF файлы. Preload программа-демон, которая постоянно отслеживает интенсивность запуска программ и на основании собранной статистики загружает компоненты в память.
 
Если верить статистике выигрыш от использования prelink для OpenOffice.org и Firefox около 15-20%, для preload - 50%.