Повышаем скорость загрузки Linux с помощью e4rat | ||
Разное > Тюнинг Львиную долю времени загрузки Linux-дистрибутива занимает загрузка файлов, необходимых для работы различных системных сервисов. Она происходит последовательно и индивидуально для каждого приложения или системного демона, что снижает общую производительность компонентов системы инициализации. Вместо того, чтобы отработать и отдать управление следующему компоненту, им приходится тратить время на ожидание. Современные системы инициализации, такие как Upstart и Systemd, частично решают эту проблему с помощью параллельного запуска компонентов системы, так что пока один компонент загружается в память, другой может спокойно работать. Кроме того, для ускорения загрузки используются инструменты под названием readahead (Fedora) и ureadahead (Ubuntu), которые составляют список используемых во время инициализации ОС файлов, и заблаговременно загружают их в память во время инициализации. Все это позволяет существенно сократить время загрузки операционной системы, но есть еще один способ, который пока не используется ни одним дистрибутивом. Заключается он в том, чтобы расположить файлы, нужные для загрузки ОС так, чтобы все они физически располагались в одной области диска. В этом случае механизм упреждающего чтения жесткого диска будет работать более эффективно, наполняя кэш только актуальными данным. Но чтобы сделать это нужен специальный дефрагментатор, который бы собрал статистику использования файлов и поместил их в одну область жесткого диска. e4rat (название которого расшифровывается как "Ext4 - Reducing Access Times") как раз и представляет собой такой дефрагментатор. Он состоит из трех компонентов:
Для работы эти компоненты требуют, чтобы ОС была установлена на файловую систему Ext4, так как только она поддерживает онлайн-дефрагментацию (начиная с ядра версии 2.6.31). При этом вариант с конвертированной Ext3 не пройдет, ФС должна быть создана, что называется, с нуля. Пакет e4rat можно получить в следующих вариантах: Также он доступен в ArchLinux AUR, поэтому для установки в этот дистрибутив достаточно выполнить: $ yaourt -S e4rat Если вы соберетесь устанавливать e4rat из исходников, то убедитесь, что удовлетворены следующие зависимости: Linux Kernel (>= 2.6.31) Примечание для Убунтоводов: e4rat конфликтует с ureadahead, поэтому перед последний следует удалить еще до установки e4rat: dpkg --purge ureadahead ubuntu-minimal После того как пакет будет установлен, перезагружаем машину, выбираем нужный пункт меню Grub, нажимаем e, находим строку kernel, снова жмем e и добавляем в ее конец следующую строку: init=/usr/e4rat-collect Нажимаеми b чтобы продолжить загрузку. e4rat-collect будет собирать статистику ровно 2 минуты, все файлы, которые будут загружены за это время, попадут в список /var/lib/d4rat/startup.log, который будет использован для переразмещения этих файлов в одну область диска. Важно, что e4rat не делает различий между файлами, использованными для загрузки ОС и файлами, которые могут быть загружены уже после входа пользователя в систему. Поэтому, если, скажем, загрузка ОС в вашем случае занимает 40 секунд, то в течение следующих 80 секунд вы можете запустить все приложения, которыми обычно пользуетесь и они тоже попадут в список, а значит в следующий раз будут стартовать быстрее. Теперь вновь перезагружаемся, и добавляем в конец строки kernel слово single. Жмеми b, дожидаемся появления приглашения к вводу команд и пишем следующее: e4rat-realloc /var/lib/e4rat/startup.log Теперь начнется пермещение блоков файлов из сформированного в прошлом шаге списка. Оно может продолжаться достаточно долго, поэтому терпеливо ждем и ни в коем случае не прерываем этот процесс (иначе потеряем файлы). Когда этот процесс закончится, открываем конфигурационный файл /boot/grub/grub.cfg (или /boot/grub/menu.lst) и добавляем к опциям ядра (все таже строка kernel) следующую строку: init=/sbin/e4rat-preload Сохраняем файл, пишем reboot и смотрим как изменилась скорость загрузки. От себя скажу, что типичная скорость загрузки моего ArchLinux составляет примерно 36 секунд (от нажатияв Grub до рабочего стола с программами, прописанными в autostart). После применяя e4rat она уменьшилась до 22 секунд (причем 4 из них занял запуск e4rat-preload). Пользователи других систем отмечают, что прирост скорости может составить от 20 до 300%, причем в системах, где уже используются различные оптимизации, таких например, как Ubuntu, прирост может не наблюдаться вовсе или составлять 1-2 секунды. Также e4rat совершенно бесполезен для нетбуков, оснащенных SSD-дисками, в которых скорость доступа к блокам данных не зависит от их физического расположения. Слабый процессор также может сыграть свою роль, просто не успевая за диском Источник: |
||
Комментарии | ||