Ускорение ядра в убунту

Ускорение ядра в убунту

Программисты Canonical нашли в ядре Linux фундаментальный изъян, сказывающийся самым серьезным образом на производительности операционной системы. Устранение изъяна позволяет уже прямо сегодня любому пользователю ускорить работу Ubuntu в 2-9 раз всего одной командой из терминала.

Суть проблемы

Как известно, в каждую операционную систему встроен генератор ПСЧ. Алгоритмы генерации разные, но всегда действует правило: чем выше требования к качеству последовательности, тем выше нагрузка на центральный процессор и тем больше требуется оперативной памяти. Генератор ПСЧ Windows генерирует последовательность с относительно низким показателем энтропии. Этим объясняется легкость распространения вирусов в этой операционной системе, зато Windows работает заметно быстрее Linux. Генератор в Linux качественный, что делает Linux менее восприимчивым к вредоносному ПО, однако и затраты вычислительных ресурсов значительно выше, что приводит к замедлению работы компьютера.

Потенциал для ускорения

В декабре прошлого года фирма Canonical наняла высококлассных специалистов по realtime-вычислениям. Они должны были проверить ключевые точки ядра Linux, которые могли влиять на производительность. Первоначально эта задача была связана с желанием руководства фирмы сделать мобильную версию Ubuntu более отзывчивой путем снижения латентности ядра, однако очень скоро специалисты нашли изъян в проектировании, который влиял на общую производительность Linux на любом устройстве. Как оказалось, в генераторе ПСЧ допущена ошибка из-за которой вместо 100 итераций при вычислении хэш-функции MD5 компьютер выполнял 100000 итераций, то есть в 1000 раз больше. Отсюда и возникает потенциал для разгона. Можно искусственно сократить количество циклов, разгрузить CPU и оперативную память и получить существенный прирост производительности.

Решение проблемы

Хотя на первый взгляд может показаться, что для решения проблемы достаточно просто выпустить патч к ядру, на самом деле это не так. Дело в том, что все написанные под Linux программы не ожидают от генератора ПСЧ аномальной тактовой частоты. Другими словами, внеся изменения в ядро, разработчики выпустили бы версию Ubuntu, которая не смогла бы работать стабильно до тех пор, пока разработчики софта, входящего в состав Ubuntu, не адаптировали бы свои программы под новый алгоритм генерации ПСЧ. Легко догадаться, что на это могли бы уйти годы.

И тогда программные инженеры Canonical нашли элегантное решение, которое уже многие эксперты по ядру Linux назвали самым значительным вкладом Canonical в Open Source за всю историю существования этой компании.

Суть проста: вместо исправления старого генератора, ПСЧ-последовательности просто перенаправляются от источника (/dev/urandom) в так называемую черную дыру (/dev/null), а отдельный процесс генерирует ПСЧ по исправленному алгоритму, сохраняет полученные данные в виде таблицы и выдает их через привычный интерфейс /dev/urandom. Таким образом, не только достигается совместимость со всеми написанными ранее программами, но и кэшируются сами данные, что дает дополнительный прирост производительности.

Как ускорить Ubuntu

Учитывая общественную значимость открытия, специальный программный инструмент для ускорения был распространен на все компьютеры с Ubuntu через систему обновлений. Дополнительных действий со стороны пользователя для установки не требуется. Но проверить доступность программы все же следует. Наберите в терминале:

xz

Если на экране появится строка "Команда не найдена" — вам не повезло. Вероятно, ваш компьютер устарел и аппаратно не совместим с новым алгоритмом генерации ПСЧ. Если все в порядке, программа напишет "Compressed data cannot be written to a terminal". То есть, программа ускорения xz попыталась сгенерировать и сжать поток ПСЧ, но выводить его просто на терминал не имело смысла, поэтому программа завершилась. Используем xz для реальной обработки данных.

Следует прежде отметить, что xz понимает всего одну опцию — коэффициент желаемого ускорения. Это значение следует задавать от 1 до 9: 1 — ничего не ускорять, только проверить совместимость; 2 — двукратный рост по скорости; 9 — максимальное ускорение (в девять раз по сравнению со штатной производительностью). Специалисты Canonical не рекомендуют использовать коэффициенты выше 6, так как хотя ваш компьютер и приблизится по производительности к младшим моделям суперкомпьютеров, потребление электричества процессором вырастет непропорционально и неприемлемо высоко и вы будете неприятно удивлены цифрой в квитанции за электричество. Ускорение Ubuntu в 5-6 раз вполне достаточно для любых задач. Итак, приступим:

Читайте также:  За что сажают вконтакте

cat /dev/urandom | xz -5 > /dev/null

Даже новичок в Ubuntu способен понять смысл этой операции: берется поток ПСЧ из файла /dev/urandom и перенаправляется в /dev/null. Другими словами, фактически отключается штатный генератор ПСЧ, причем таким образом, чтобы не нарушить совместимость с остальными программами, берущими данные из /dev/urandom. Далее xz генерирует ПСЧ по исправленному алгоритму и заполняет кэш с данными в оперативной памяти. Чтобы добиться еще более впечатляющего ускорения, данные сжимаются (в пять раз), чтобы освободить ОЗУ для других программ.

Следует также отметить, что на генерацию кеша потребуется время. Зависимость времени от желаемого ускорения экспоненциальная, что следует обязательно учитывать. Если вы планируете максимально разогнать компьютер, запаситесь терпением. Если же программа xz выполняется неприемлемо долго, попробуйте снизить коэффициент ускорения и попробовать вновь. Данная процедура выполняется только один раз и в дальнейшем данные будут браться напрямую из сгенерированного кэша.

Когда xz появится в других дистрибутивах?

Скорее всего, что никогда. Юристы Canonical успели подать патентную заявку и теперь xz является интеллектуальной собственностью компании. Вероятно, Марк Шаттлворт решил использовать этот способ ускорения Linux как мощное конкурентное преимущество Ubuntu перед другими дистрибутивами Linux и даже перед Windows. Учитывая ту пользу, которую приносит использование xz, аналитики приходят к выводу, что планы главы Canonical скорее всего осуществятся и уже до конца этого года мы увидим крупнейшую миграцию на Ubuntu за всю историю существования дистрибутива.

Исследования Университета штата Юта, спонсированные частично компанией NVIDIA, направлены на изучение ускорения ядра Linux с использованием ускорения графического процессора GPU. Вместо того чтобы просто позволить приложениям пользователя использовать огромную силу предлагаемых современных графических процессоров, исследователи надеются ускорить части ядра Linux запустив его прямо на GPU.

Из страниц исследования: «Идея проекта KGPU состоит в том, чтобы графический процессор GPU рассматривался в качестве вычислительного сопроцессора для операционной системы, позволяющего производить параллельные вычисления внутри ядра Linux. Это даст возможность использовать SIMD (или SIMT в CUDA) для ускорения функциональности ядра Linux и внести новые функциональные возможности, которые ранее считались слишком интенсивными вычислениями для ядра. Проще говоря, проект KGPU делает возможными векторные вычисления внутри ядра».

Кроме того, «это позволяет по-настоящему распараллелить ядро ​​Linux: не только обрабатывать несколько запросов одновременно, но также разделять одни большие запрашиваемые вычисления на части и распространять эти части через большое число ядер на GPU».

Хотя это звучит как новая концепция, на данной стадии это скорее исследовательский проект. Существует несколько факторов, которые в принципе исключают проект KGPU из числа проектов, создающих основное направление в обозримом будущем. Большой проблемой является то, что ни один из открытых графических драйверов, поддерживаемых ядром ​​Linux подсистемы DRM (Direct Rendering Manager) еще не способен поддерживать GPGPU. Запланирована поддержка для открытого языка вычислений OpenCL Gallium3D с трекером состояния, но она еще не скоро будет готова.

Другой проблемой является то, что эта текущая работа нацелена только на ядро Linux и призывает использовать CUDA с графическим процессором GPU. Эта работа спонсируется компанией NVIDIA, поэтому университет перешел на использование программно-аппаратной архитектуры, которая поддерживается только на оборудовании NVIDIA при использовании их последних проприетарных драйверов. Лучшим выбором был бы открытый язык вычислений OpenCL, который может работать как на AMD и графических процессорах NVIDIA, так и на открытом производственном уровне.

Читайте также:  Куда использовать старые диски

На данный момент в развитие проекта KGPU существует GPU-ускоренный AES шифр для использования зашифрованной файловой системой eCryptfs, которая показывает многообещающие результаты, учитывающие насколько хорошо современные графические процессоры могут работать с криптографией.

Лицам, заинтересованным в получении дополнительной информации о проекте KGPU для увеличения ядра Linux с помощью GPU, советуем посетить сервис для разработчиков программного обеспечения Google Code. Исходные коды также доступны на веб-сервисе для хостинга проектов и их совместной разработки GitHub. Было бы интересно посмотреть, как ядро ​​Linux начинает использовать возможности обработки, предоставляемые современными графическими процессорами, но сначала открытые драйверы ядра должна быть улучшены и уметь обрабатывать открытый язык вычислений OpenCL и /или других интерфейсов GPGPU.

Содержание

Краткое описание руководства

Эти инструкции будут полезны для оптимизации процесса загрузки, его ускорения, а также общей оптимизации и ускорения системы.

Оптимизация загрузки Ubuntu

Оптимизация начальной загрузки

В Ubuntu по умолчанию установлена утилита readahead , которая позволяет ускорить загрузку системы. Для того чтобы эта утилита давала максимальный эффект, рекомендуется время от времени загружать систему с параметром profile , который обновляет кэши readahead. Чтобы сделать это, надо во время загрузки компьютера зайти в меню GRUB, зажав Shift при включении компьютера, затем выбрать строку c названием Ubuntu и нажать кнопку E для редактирования параметров загрузки. В появившемся тексте найдите строку вида 1)

и добавьте слово profile в конец строки (не забудьте поставить пробел перед profile). Для загрузки системы нажмите Ctrl + X или F10 . С этой опцией система будет загружаться дольше обычного, так как будет производиться сбор информации. После полной загрузки нужно еще раз перезагрузиться.

Эти действия обновляют информацию о всех используемых на этапе загрузки библиотеках и утилитах в файле /etc/readahead/boot, а в /etc/readahead/desktop — информацию о загрузке десктоп окружения. При следующей загрузке сервис readahead, при помощи программы /sbin/readahead-list, загрузит библиотеки и программы, упоминающиеся в индексе, в page cache, что немного уменьшит время загрузки.

Оптимизация файловой системы

Отключение журнала для корневого раздела

Откройте терминал, введите:

Найдите следующую после комментария похожего на «/ was on /dev/sda2 during installation« строку и приведите ее к виду

Теперь введите следующую команду в консоли:

и приведите строку

к следующему виду

Обновите конфигурацию загрузчика:

Если у вас раздел отформатирован в одну из файловых систем из семейства Ext выполните следующую команду:

Помните, что название вашего раздела с корневой системой может отличатся от /dev/sdb2.

Параметры для Ext4 для обладателей Источником Бесперебойного Питания (ИБП)

Параметры для btrfs для обладателей Источником Бесперебойного Питания (ИБП)

Отключение ненужных служб (демонов)

Де́мон (англ. daemon) — в системах класса UNIX — служба, работающая в фоновом режиме без прямого общения с пользователем. Демоны обычно запускаются во время загрузки системы. Типичные задачи демонов: серверы сетевых протоколов (HTTP , FTP, электронная почта и др.), управление оборудованием, поддержка очередей печати, управление выполнением заданий по расписанию и т. д. В зависимости от задач, выполняемых компьютером, некоторые из этих демонов можно отключить и, таким образом, сэкономить на времени запуска системы и уменьшить нагрузку на систему во время работы. Для этого воспользуемся утилитой sysv-rc-conf. Утилита эта консольная, но очень проста и интуитивно понятна, поэтому использовать ее могут даже люди с паническим страхом терминала. Установка:

В терминале получаем следующее: Управление осуществляется несколькими клавишами: Пробел — ставим/убираем крестик, + — — остановка/запуск процесса, Q — выход.

Цифры в верхей строчке — это уровни выполнения. Для отключения сервиса, надо просто убрать крестик со всех уровней.

Отключение ненужного в автозагрузке

Начиная с версии 11.10 все системные программы в автозагрузке скрыты директивой NoDisplay. В окне «Автозапуск программ» отображаются только программы, добавленные пользователем. Для отображения всех программ, надо ввести в терминале команду:

Читайте также:  King s bounty темная сторона прохождение

Получим вот такое: Теперь осталось аккуратно отключить то, что не используется и перезагрузиться. На скриншоте ненужные мне программы и сервисы уже отключены.

Для возвращения окна «Автозапуск программ» в исходное состояние, можно воспользоваться командой:

Системная оптимизация

Настройка Swappiness

Изменим поведение Ubuntu в отношении использования ОЗУ и подкачки. Есть такой параметр vm.swappiness, который по умолчанию имеет значение 60, и контролирует, каким образом система будет работать с файлом подкачки (swap). Этот параметр может иметь следующие значения:

Значение параметра Описание
vm.swappiness = 0 Ядро будет использовать файл подкачки только в том случае, если значение свободной оперативной памяти будет меньше указанного в параметре vm.min_free_kbytes.
vm.swappiness = 1 Для ядер версии 3.5 и выше, минимальное использование файла подкачки без его полного отключения.
vm.swappiness = 10 Это значение часто рекомендуют для увеличения производительности при наличии достаточного объема оперативной памяти на компьютере
vm.swappiness = 60 Значение по умолчанию
vm.swappiness = 100 Система будет использовать файл подкачки очень интенсивно (НЕ РЕКОМЕНДУЕТСЯ, т.к. вызовет сильное замедление работы системы)

При большом количестве ОЗУ в компьютере, лучше изменить параметр vm.swappiness до 10 либо до 1. В консоли введите следующую команду:

Добавьте строку в конец файла:

При этом «агрессивность» swap опредиляется несколькими праметрами

swapiness — определенный парамет (или системой или переопределен пользователем vm.swappiness)

distress — сколько раз ядро пыталось освободить память (каждый раз повышается на 1, изначальное число 0)

mapped_ratio — процент занятой оперативной памяти

swap_tendency — если число 100 и более, то система будет свопить (второе ограничение — остаток свободной памяти менее 64МиБ)

Система еще не свопила перед этим, swappiness установлен по дефолту 60. То есть система первый раз засвопит при достижении значения свободной памяти в 80%

Соответственно, с этим параметром стоит быть предельно осторожным, так как и увеличение и уменьшение параметра может привести к значительному замедлению системы.

vm.swappiness = 100 замедление может быть заметно сразу

0 проявятся «жуткие» тормоза в процессе использования системы, особенно под нагрузкой

Параллельная загрузка

найдите CONCURRENCY=none и замените на:

Сохраните и перезагрузите компьютер.

В Linux большинство программ используют протокол IPv4 для подключения к интернету. В Ubuntu IPv6 включен по умолчанию, отключим его, если он вызывает проблемы в сети:

Найдите параметр GRUB_CMDLINE_LINUX_DEFAULT и аккуратно дополните значением ipv6.disable=1 Сохраните изменения. Вызовите

для применений изменений, перезагрузите компьютер.

Ускорение запуска программ, с помощью preload

Preload – демон, который собирает информацию о наиболее часто используемых программах, и кэширующий их и используемые ими библиотеки, что приводит к повышению скорости загрузки программ. Для установки нужно просто выполнить в терминале

или запустить Центр приложений Ubuntu, найти в нем preload и установить его. После установки preload перезагрузите компьютер и выполните в консоли команды

Проверить работу Preload можно посмотрев содержимое preload.state

Если файл не пуст, значит демон работает.

Настройки preload по умолчанию подходят большинству, поэтому изменять что-либо в файле /etc/preload.conf не обязательно.

Кеширование символьных таблиц

Создайте пустой каталог

Ваши Qt/GTK программы будут чуток быстрее стартовать и потреблять меньше памяти, благодаря тому, что libX11 будет создавать в

/.compose-cache кеши распарсенной информации и использовать ее повторно.

Оптимизация DE

Ускорение GNOME 2

сохранить в своем «домашнем» каталоге под названием .gtkrc-2.0 (не забыть про лидирующую точку) и перегрузить иксы.

поставить галочку reduced_resources

убрать галочку enable_animations

убрать галочку accessibility.

Установить текстовый параметр в значение panel-speed-fast, для ускорения анимации панели. Перезапустить сессию Gnome.

Ускорение запуска KDE программ в среде Gnome

Можно также удалить старые миниатюры, удалив директорию

Ссылка на основную публикацию
Тест для определения цвета волос
Пожалуйста, не копируйте понравившиеся вам статьи незаконно. Мы предлагаем вам разместить активную ссылку на наш сайт в случае, если вы...
Стим показывает что я не в сети
Не редко пользователи Steam встречаются с проблемой, когда подключение к интернету есть, браузеры работают, но клиент Стим не грузит страницы...
Стим саппорт украли аккаунт
Если ваш аккаунт Steam украли или взломали, то до его восстановления вам необходимо выполнить действия, указанные ниже, иначе аккаунт может...
Тест графики видеокарты 3dmark
Наиболее известная программа тестирования производительности, ставшая де-факто стандартом и точкой отсчета в измерениях игровых возможностей видеокарт. Основную популярность программе обеспечило...
Adblock detector