Ускорение работы Ubuntu с дисковой подсистемой
Любая операционная система, основанная на ядре Linux, выгодно отличается от всех остальных по скорости работы. Это делает ее стандартом де факто для различного рода устройств, которые не блещут своей производительностью.
Но не смотря на это большинство пользователей хотят получить еще большую производительность от своих компьютеров.
Операционная система Ubuntu и любая другая ОС Linux, позволяет это сделать, так как некоторые параметры, выставленные по умолчанию, имеют не совсем оптимальные значения. Это стремления разработчиков к универсальности и работе на любом типе компьютерного "железа" в ущерб производительности.
Немного теории
Не для кого не секрет, что для большинства современных компьютеров самым слабым звеном является дисковая подсистема. За последние несколько лет технологии «увеличили» производительность практически всех компонентов компьютера, но этот технологический прорыв не коснулся жестких дисков. Если в этой области прогресс в сторону скорости и есть, то на общем фоне выглядит практически не заметно. Именно поэтому с оптимизации работы дисковой подсистемы и следует начать оптимизацию и «тюннинг» операционной системы Ubuntu.
По большей части современный файловые системы Ext3 и Ext4 обладают хорошим быстродействием и их более тонкая настройка не требуется. Более пристальное внимание следует уделить работе оперативной памяти и дисковой подсистемы в целом.
Любая операционная система Linux, в том числе и Ubuntu, устроена так, что практически одновременно использует для хранения каких-то временных данных, оперативную память и файл подкачки – swap. Этот файл подкачки размещается на жестком диске и нужен для разгрузки ОЗУ при ее заполнении. Благодаря ему, у пользователя появляется возможность запускать тяжеловесные приложения с небольшим объемом оперативной памяти, где часть информации хранится на жестком диске. Как говорится: «медленно, но верно».
Почему данные хранятся «…практически одновременно…» в swap и ОЗУ?
Потому что Ubuntu устроенна так, что при заполнении оперативной памяти на 40%, происходит ее высвобождение в файл подкачки. Если взять за «стандартный компьютер» – компьютер с 2 Гб оперативной памяти (большинство современных нетбуков обладают даже меньшим объемом памяти – 1Гб), то можно подсчитать, что 40% от всей памяти – это 819,2 Мб (1024Мб * 2 * 0,4 = 819,2 Мб). Интернет-браузер Google Chrome, к примеру, в среднем потребляет порядка 200-300 Мб ОЗУ. Остальные браузеры потребляют примерно столько же. Но очень редко можно встретить пользователя, который бы не пользовался, наверное, главной возможностью современных ОС – многозадачностью и не запускал бы несколько приложений одновременно.
Когда заполнение оперативной памяти достигает указанного порога, операционная система высвобождает ее в файл на жестком диске, то есть позволяет «вступить» в работу одному из самых медленных устройств в компьютере.
Из этого следует, что параметры работы оперативной памяти, которые выставлены в Ubuntu по умолчанию, не совсем подходят для повседневной работы.
Хотелось бы заметить, что никто не утверждает, что swap-файл не нужен в операционной системе и от его использования можно вообще отказаться. Просто его роль в работе операционной системы можно немного принизить.
Эта статья призывает к более оптимальной утилизации имеющейся ОЗУ, так как по умолчанию в ОС держится большое количество ОЗУ просто не используемой, тем самым «тормозя» операционную систему.
Ускоряем работы Ubuntu с дисковой подсистемой
Вся работа по ускорению Ubuntu для удобства разбита не несколько частей:
- Редактируем конфигурационный файл /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
- В самом низу этого файла есть параметр vm.swappiness, который как раз и отвечает за распределение оперативной памяти. По умолчанию он имеет значение 60, показывая, что в любом случае должно оставаться 60% свободной оперативной памяти. Для рабочих станций рекомендуется изменить это значение на 10. Должно получится так:
vm.swappiness=10
Если этого параметра нет, то необходимо его добавить в самом конце открытого конфигурационного файла!
- В конце этого файла рекомендуется еще добавить параметр vm.vfs_cache_pressure, который указывает размер используемого дискового кэша.
Если Вы обладатель компьютера с SSD-накопителем, то для Вас будет актуален параметр:
vm.vfs_cache_pressure = 50
Если у Вас компьютер с «простым» жестким диском, то наибольшую отзывчивость можно получить при установке параметра:
vm.vfs_cache_pressure = 1000
- В самом низу этого файла есть параметр vm.swappiness, который как раз и отвечает за распределение оперативной памяти. По умолчанию он имеет значение 60, показывая, что в любом случае должно оставаться 60% свободной оперативной памяти. Для рабочих станций рекомендуется изменить это значение на 10. Должно получится так:
Чтобы воспользоваться демоном preload в Ubuntu, необходимо его установить:
Дальнейшей дополнительной настройки preload не требует.
Дополнительная информация
Если Вы не готовы сразу же менять всю работу системы распределения оперативной памяти, то можете временно применить эти параметры, которые будут действовать до следующей перезагрузки операционной системы. Для этого нужно выполнить соответствующие команды:
и
Для пользователей, которые не готовы работать с командной строкой и конфигурационными файлами, есть решение в виде графической утилиты для тонкой настройки операционной системы Ubuntu – Ailurus, которая «умеет» это делать.
Благодаря этому, Ваша операционная система получит свежих «глоток» воздуха, а использование оперативной памяти вашего компьютера будет наиболее оптимальным.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен
Пожалуйста, источники в студию …
Кстати, Вы забыли упомянуть, что работа демона preload будет заметна,если у использующего,будет большой объем, физического размера оперативной памяти.
P.S. К тому же, сразу прирост производительности, используемый сие демон, не почувствует!
vfs_cache_pressure=1000 это ошибка? У этого параметра значения от 1 до 100 допустимы, и по умолчанию как раз 100 в ubuntu. Чем меньше значение, тем больше кэшируется.
от 1 до 100 – это значение vm.swappiness, а 1000 для vfs_cache_pressure – справедливо. Mut@NT – спасибо за статью!
О чем Вы? Статья написана с использованием большой кучи блогов и сайтов, которые копипастят контент откуда непоподя
Спасибо, за уточнение. Добавлю.
Вроде как у него нет ограничения.
Ubuntu 10.04, сделал по инструкции – не знаю есть ли хоть какой прирост производительности (или это скорее самовнушение) – уже как больше суток, полет нормальный! Хуже точно не стало =)
За статью – спасибо!
Смотря как работаете с ОС. Если У Вас большое количество ОЗУ изначально, то, возможно, ее заполнение и не доходило до отметки разгрузки в файл подкачке.
В большинстве случаев эти действия убирают легкую приторможенность системы при продолжительно работе
Я рушил проблему проещ, но дороже. Полностью отключил swap, убрал раздел подкачки и нарачтил оперативку до 8 Гб. теперь никаких лагов из-за сброса подкачки на диск
Делала по описанию, но в моем случае особого прироста не заметила, а вот apt-get install zram, вродь как полезнее оказался. Если кто захочет поэкспериментировать, то swappiness придется вернуть взад на 60, или не меньше 40, иначе фокус не получится.