Debian работает медленно первые шаги по диагностике

Обновлено: 05.07.2024

Иногда, особенно в старых приводах CD-ROM, программа установки может не загрузиться с CD-ROM. Программа установки также может (даже после успешной загрузки с CD-ROM) не распознать CD-ROM или выдавать ошибки при чтении во время установки.

Такие проблемы могут возникать по разным причинам. Мы можем описать только общие из них и предложить общие решения. Остальное зависит от вас.

Есть несколько простых вещей, которые вы можете попробовать сделать в первую очередь.

Если с CD-ROM не получается загрузиться, проверьте, что он вставлен правильно и что диск не грязный.

Если программа установки не смогла определить CD-ROM, попробуйте выполнить пункт меню Поиск и монтирование CD-ROM второй раз. Некоторые проблемы с DMA на старых приводах CD-ROM решаются таким способом.

Если это не сработало, попробуйте советы данные ниже. Хотя большинство, но не все, описываемые предложения работают и для CD-ROM и для DVD, для простоты мы будем использовать термин CD-ROM.

Если вы не можете заставить программу установки работать с CD-ROM, попробуйте, если возможно, другой метод установки.

5.3.1.1. Общие причины

Некоторые старые приводы CD-ROM не поддерживают чтение с дисков, которые были записаны на высоких скоростях в современных устройствах записи CD.

Если система корректно загружается с CD-ROM, это совсем не значит, что Linux также поддерживает CD-ROM (или, если более точно, контроллер, к которому подключён привод CD-ROM).

Некоторые старые приводы CD-ROM работают неправильно, если включён « прямой доступ к памяти » (DMA).

5.3.1.2. Как изучать и может быть решить проблему

Если с CD-ROM не удаётся загрузиться, попробуйте способы указанные ниже.

Проверьте, что в BIOS включена загрузка с CD-ROM (возможно, старые машины этого не умеют), и что привод CD-ROM поддерживает используемый тип носителя.

Если вы скачивали образ iso, проверьте, что md5sum этого образа совпадает с суммой указанной в файле MD5SUMS , который должен лежать там же, где вы брали образ.

Далее проверьте, что md5sum записанного CD-ROM также совпадает. Следующая команда должна сработать. Здесь считается сумма прочитанных с CD-ROM байт, составляющих образ.

Если после успешной загрузки программы установки не определяется CD-ROM, то иногда помогает просто попробовать ещё раз. Если у вас более одного привода CD-ROM, попробуйте загрузиться с другого CD-ROM. Если это не помогает или если CD-ROM определяется, но при чтении возникают ошибки, попробуйте выполнить предложения, данные ниже. Для этого потребуются азы работы в Linux. Перед тем как выполнить любую команду, сначала вы должны переключиться во вторую виртуальную консоль (VT2) и активировать оболочку командной строки.

В выводе dmesg проверьте, что привод CD-ROM был найден. Вы должны увидеть что-то типа этого (строки могут быть в другой последовательности):

Если вы не нашли подобных строк, это случай, когда контроллер, к которому подключён CD-ROM, не распознан или не поддерживается ядром вообще. Если вы знаете, какой драйвер требуется для привода, то можете попытаться загрузить его вручную с помощью команды modprobe .

Проверьте, что есть соответствующий файл устройства для привода CD-ROM в каталоге /dev/ . Для примера выше, должен существовать файл /dev/hdc . Также может быть /dev/cdroms/cdrom0 .

С помощью команды mount проверьте, что CD-ROM уже смонтировать; если нет, попытайтесь смонтировать вручную:

Проверьте, не появилось ли ошибок после этой команды.

Проверьте, включён ли DMA:

« 1 » означает включён. Если включён, попробуйте выключить его:

Удостоверьтесь, что находитесь в каталоге для устройства, соответствующего приводу CD-ROM.

Если возникли проблемы во время установки, попробуйте проверить целостность CD-ROM с помощью пункта внизу главного меню программы установки. Этим также можно провести общую проверку надёжности чтения CD-ROM.

5.3.2. Надёжность дискет

Надёжность дискет — это, похоже, самая большая проблема для людей, устанавливающих Debian.

Если установка замирает на какой-то дискете, сперва попробуйте записать образ на другую дискету. Простого переформатирования старой дискеты может быть недостаточно, даже если это случилось с дискетой, которую отформатировали и записали без ошибок. Иногда полезно попробовать записать дискету на другой системе.

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

Обычно не нужно скачивать образ дискет ещё раз, но если вы испытываете проблемы, всегда полезно проверить корректность загруженных образов сверив их md5sum.

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

5.3.3. Настройка загрузки

Если у вас возникли проблемы и ядро падает во время загрузки, не распознает имеющуюся периферию или неправильно распознаются диски, сперва проверьте параметры загрузки, как это обсуждается в Раздел 5.2, «Параметры загрузки».

Часто, проблемы можно решить, убрав дополнения и периферию, а затем попытаться загрузиться ещё раз. Особенно часто проблемы бывают с внутренними модемами, звуковыми картами и устройствами Plug-n-Play.

Если на вашей машине установлен большой объём памяти, более чем 512МБ и программа установки виснет при загрузке ядра, то вам может понадобиться указать параметр загрузки для ограничения объёма памяти видимого ядру — mem=512m .

5.3.4. Распространённые проблемы установки на Intel x86

Есть некоторое количество распространённых проблем установки, которые можно решить или избежать с помощью передачи параметров загрузки программе установки.

Некоторые системы имеют дисковод гибких дисков с « обратными DCL ». Если вы получаете ошибки чтения с дискеты, даже когда знаете, что она хорошая, попробуйте задать параметр floppy=thinkpad .

На некоторых системах, таких как IBM PS/1 или ValuePoint (имеющих дисковый драйвер ST-506), привод IDE может быть распознан неправильно. Сначала попробуйте загрузиться без параметров и посмотрите, правильно ли определяется привод IDE. Если нет, выясните геометрию диска (количество цилиндров, головок и секторов) и воспользуйтесь параметром hd= количество цилиндров , количество головок , количество секторов .

Если у вас очень старая машина и ядро зависает после надписи Checking 'hlt' instruction. , то вы должны попробовать параметр загрузки no-hlt , который выключает этот тест.

Если во время загрузки ядра экран выглядит странно, например, он полностью белый, чёрный или замусорен разными цветами, то ваша система, вероятно, имеет проблемную видеокарту, которая неправильно переключается в режим фреймбуфера. В этом случае, вы можете попробовать параметр загрузки fb=false video=vga16:off , чтобы выключить фреймбуфер на консоли. Из-за этого ограничения консоли установка будет доступна только на нескольких языках. Подробней смотрите в Раздел 5.2, «Параметры загрузки».

5.3.4.1. Система подвисает во время настройки PCMCIA

Про некоторые модели ноутбуков Dell известно, что они виснут когда при определении PCMCIA устройства производится попытка доступа по некоторым аппаратным адресам. Похожие проблемы могут иметь и другие ноутбуки . Если у вас возникла такая проблема и вам не нужна поддержка PCMCIA во время установки, то вы можете выключить PCMCIA с помощью параметра загрузки hw-detect/start_pcmcia=false . После установки вы сможете настроить PCMCIA, исключив диапазон ресурсов, с которым возникают проблемы.

Другой вариант: вы можете загрузить программу установки в экспертном режиме. Вас попросят указать диапазон ресурсов, который используется аппаратным обеспечением. Например, если у вас один из ноутбуков Dell, упомянутых выше, то вы должны ввести exclude port 0x800-0x8ff . Также, есть список распространённых диапазонов ресурсов в System resource settings section of the PCMCIA HOWTO. Заметим, что при вводе значений в программу установки вы не должны указывать запятых, если они есть.

5.3.4.2. Система подвисает во время загрузки USB модулей

Обычно, ядро пытается установить модули USB и драйвер USB клавиатуры, чтобы обеспечить поддержку некоторых нестандартных клавиатур USB. Однако, есть несколько нестандартных USB систем, где драйвер подвисает при загрузке. Возможно, обходным решением может быть выключение контроллера USB в настройке BIOS материнской платы. Другим решением может служить передача параметра debian-installer/probe/usb=false в приглашении загрузки, который запрещает загрузку модулей.

5.3.7. Отправка отчётов об ошибках установки

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

Заметим, что отчёт об установке будет опубликован в системе отслеживания ошибок Debian (BTS) и переслан в открытый список рассылки. Проверьте, что вы используете адрес электронной почты, который не жалко опубликовывать.

Если система Debian заработала, самый простой путь отправки отчёта об установке — установить пакеты installation-report и reportbug ( aptitude install installation-report reportbug ), настроить reportbug , как это описывается в Раздел 8.5.2, «Отправка почты из системы», и запустить команду reportbug installation-reports .

Решено: Ужасно долго загружается Дебиан (Подскажите, в чем может быть проблема? Debian Lenny AMD64)

Решено: Ужасно долго загружается Дебиан

Здравствуйте.
У меня проблема со скоростью загрузки линукса.
Дебиан загружается оооочень долго, за это время винда бы уже 3 раза загрузилась.
Он очень долго стоит на таких пунктах загрузки, как "Starting MTA" и еще там что-то связанное(точно не помню, но если перевести- будет примерно так) со стартом чего-то печатающего. что-то вроде Starting printing . :cupsd
Машина у меня не слабая, особенно для линукса.
Подскажите, может можно что-то сделать, чтобы не так долго он загружался? Здравствуйте.
У меня проблема со скоростью загрузки линукса.
Дебиан загружается оооочень долго, за это время винда бы уже 3 раза загрузилась.
Он очень долго стоит на таких пунктах загрузки, как "Starting MTA" и еще там что-то связанное(точно не помню, но если перевести- будет примерно так) со стартом чего-то печатающего. что-то вроде Starting printing . :cupsd
Машина у меня не слабая, особенно для линукса.
Подскажите, может можно что-то сделать, чтобы не так долго он загружался?

Это exim виноват. Отключите или поставтье какой-нибудь mail transfer agent полегче

еще можно включить в rc.conf параллельную загрузку сервисов еще можно включить в rc.conf параллельную загрузку сервисов Здравствуйте.
У меня проблема со скоростью загрузки линукса.
Дебиан загружается оооочень долго, за это время винда бы уже 3 раза загрузилась.
Он очень долго стоит на таких пунктах загрузки, как "Starting MTA" и еще там что-то связанное(точно не помню, но если перевести- будет примерно так) со стартом чего-то печатающего. что-то вроде Starting printing . :cupsd
Машина у меня не слабая, особенно для линукса.
Подскажите, может можно что-то сделать, чтобы не так долго он загружался?

Это exim виноват. Отключите или поставте какой-нибудь mail transfer agent полегче


Проблема в том, что мои знания в линуксе еще слишком малы.
Не могли бы вы подсказать, как это сделать? где отключить или как поставить другой? или дайте пожалуйста ссылку на мануал какой-нить.

В /etc/resolv.conf пропишите:

nameserver xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx - ip-адрес ДНС-сервера

В /etc/resolv.conf пропишите:

nameserver xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx - ip-адрес ДНС-сервера

Если ты не знаешь, что такое MTA, то он тебе вероятно не нужен. Удаляй его.
Так же можешь заменить sysvinit на upstart. Если ты не знаешь, что такое MTA, то он тебе вероятно не нужен. Удаляй его.
Так же можешь заменить sysvinit на upstart.

скажите как удалить-то его?

>скажите как удалить-то его?
>это где?

ты можешь не удалять пакет. а просто остановить его
.отключи exim (может быть и другой MTA) с помощью программы sysv-rc .отключи exim (может быть и другой MTA) с помощью программы sysv-rc

С помощью какой-какой программы?

В дебиане правильно вот так:


вместо exim4 подставить имя любого другого (не)нужного сервиса.
Добавить обратно:
ICH
Отключение автозагрузки сервисов
Все таки стоит посмотреть верхушку раздела, а именно прикрепленные темы, поверьте, их не просто так прикрепили.

Пусть каждый сам решает как ему удобно.

sysv-rc-conf предоставляет псевдографический интерфейс к управлению скриптами rc*.d
можно включать/выключать сервис не только в текущем runlevel, но на всех

Я пользуюсь смело

еще в тему.
пакет initng заменяет процесс init. я пробовал - действительно ускоряет когда процессов много, он их распараллеливает.

Но проект почему то слабо поддерживается в последнее время. Можно попробовать если есть время и необходимые умения

sysv-rc-conf предоставляет псевдографический интерфейс к управлению скриптами rc*.d

Про эту штуку я только от вас сейчас узнал, да и то, сначала подумал, что дистр путаете, т.к. такой программы в моём дебиане не установлено. А update-rc.d присутствует на всех машинах, из чего я делаю вывод что он является гораздо более стандартным средством для достижения того же результата.

можно включать/выключать сервис не только в текущем runlevel, но на всех Я думаю Debian для того и развивается, чтобы постепенно все упрощать.

>А update-rc.d присутствует на всех машинах, из чего я делаю вывод что он является гораздо более стандартным средством для достижения того же результата.

А coreutils еще более стандартный, так зачем ваш апдейт-рц нужен, если можно руками все переименовывать?

Есть в дебиане приложение BUM, это что-то вроде msconfig в венде.
С помощью BUM видно что в автозагрузке, убираешь галочки - отключаешь ненужное Всем огромное спасибо, реально помогло. Тему можно закрывать. vagant
имелось ввиду изменить в /etc/init.d/rc значение CONCURRENCY с none на shell Дебиан загружается оооочень долго, за это время винда бы уже 3 раза загрузилась.

версияч windows — серверная? загрузка вплоть до «рабочего стола пользователя»? со стартом всего, что в автозагрузку понапихано? ну, может быть, может быть.
тогда следует определиться с одним простым вопросом: «вам шашечки, или ехать?»

Linux дает много преимуществ своим пользователям. Например, его можно считать свободным от вирусов, поскольку их существует очень небольшое количество. Для многих очень важно, что никто, кроме вас, не будет контролировать то что вы делаете в системе. Свободное программное обеспечение звучит очень привлекательно, в свете последних событий, когда в прошлом году мы узнали что большие компании вроде Microsoft и Apple следят за своими пользователями.

Свободное программное обеспечение становится очень актуальным если вы не хотите платить за использование самой новой версии операционной системы.

Многие помнят, что кликнув двойным щелчком по ярлыку в Windows нужно достаточно долго подождать, пока запустится программа. Здесь у Linux тоже преимущество - он намного быстрее. И это касается всех, кто использует компьютер с новеньким восьмиядреным процессором, и тех у кого старый ноутбук прошлого века. Если вы хотите еще больше скорости в Linux, следуйте инструкциям из этой статьи. Дальше мы рассмотрим как ускорить Linux. Мы будем ориентироваться в первую очередь на Ubuntu, но все эти советы могут быть применены также к другим дистрибутивам.

Используйте VirtualBox

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

Еще лучше поэкспериментировать сначала с виртуальной машиной. Таким образом, вы можете делать все что захотите, а потом просто откатиться к последнему рабочему снимку.

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

1. Ускорение загрузчика Grub

Если у вас установлено две операционные системы, то вы, наверное, знакомы с этим меню загрузки. Но то что вы, скорее всего, не заметили, это обратный отсчет в самом низу, под областью ввода. Это время, на протяжении которого система будет ждать, перед тем как начать загружать дистрибутив по умолчанию.

Например, в Ubuntu - это 10 секунд. Обычно вы можете нажать Enter, но если вы находитесь далеко от машины, более благоразумным будет поставить интервал покороче, например, 3 секунды. Этого будет вполне достаточно чтобы выбрать ОС.

Чтобы ускорить загрузку Linux откройте файл /etc/default/grub от имени root. Измените значение GRUB_TIMEOUT = 10, на 3.

sudo vi /etc/default/grub

А затем обновите конфигурацию Grub. Вот:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

2. Отключите сервисы

Во время загрузки системы, есть огромная разница между загрузкой ядра и готовностью к работе рабочего стола. Дело в том, что система загружает очень больше количество сервисов, и не все из них вам нужны. В большинстве современных дистрибутивов используется система инициализации systemd. У этой системы инициализации есть специальная утилита, позволяющая проанализировать какие сервисы сколько времени заняли во время загрузки. Это systemd-analyze:

Кроме того, вы можете посмотреть все сервисы списком, добавленные в автозагрузку:

systemctl list-unit-files --state=enabled

Определить какие сервисы, нужны, а какие нет, вы можете просто выполнив поиск в интернете. Во многих дистрибутивах есть графические приложения для управления сервисами, но, в Ubuntu для этого придется воспользоваться консольной утилитой systemctl, это поможет сильно ускорить работу linux. Чтобы отключить сервис выполните:

sudo systemctl disable имя_сервиса

3. Отключите приложения

Приложения, запускаемые по умолчанию после старта оболочки тоже могут сильно замедлять запуск системы. В Gnome есть утилита Приложения запускаемые по умолчанию, которую можно открыть из главного меню:

Удалите оттуда все приложения, которые вы не используете. Для отключения автозагрузки можно просто снять галочку напротив программы.

4. Ускорение файлового менеджера

Файловый менеджер в Gnome по умолчанию при открытии каждой папки выполняет быстрое сканирование всех файлов, чтобы показать миниатюры и дополнительную информацию. В принципе это быстрое сканирование, но в папке с большим количеством файлов, этот процесс будет совсем небыстрым.

Чтобы перестать тратить процессорное время на эту задачу кликните по иконке бутерброда, затем выберите пункт Параметры:

В открывшемся меню перейдите на вкладку Поиск и предпросмотр файлов, в разделе Миниатюры измените параметр из Всегда или Только локальные файлы на Никогда.

Вы увидите, что теперь Nautilus работает намного быстрее.

5. Используйте легкое окружение


Для слабого оборудования принято выбирать более легкие дистрибутивы. В них меньше ненужных программ, а самое главное - используется более легкое окружение рабочего стола. Вы можете установить легкое окружение или даже легковесный оконный менеджер в свою систему. Если вы используете тяжелые окружения вроде KDE или Gnome, попробуйте что-либо более простое. Это даст значительный прирост производительности.

Самая важная задача рабочего окружения - управлять запущенными графическими программами, и давать вам достаточно контроля над ними. Но такие окружения могут выполнять намного больше функций чем вам нужно. Вы можете попробовать XFCE, LXDE или какой либо оконный менеджер. Они ещё более лековесны и быстры. К самым популярным можно отнести Openbox, Fluxbox, i3wm, awesome и другие.

Кроме того, вы можете использовать легкий оконный менеджер вместо стандартного оконного менеджера окружения. Для этого, например, после установки для запуска оконного менеджера openbox наберите:

Через несколько секунд вы увидите, что стиль окон изменился. Это и есть Openbox. с помощью контекстного меню вы можете перемещать окна, закреплять или устанавливать поверх других. Но больше ничего другого. Ваши окна теперь двигаются быстрее.

6. Ускорьте KDE

Если вы используете окружение рабочего стола KDE, то у вас есть отличный шанс получить ускорение работы linux. Хотя Plasma работает довольно быстро если у вас современная машина, но это сложный стек программного обеспечения. Каждый компонент KDE может быть настроен для более эффективной его работы. Мы уже рассматривали как ускорить KDE, читайте об этом подробно в отдельной статье.

7. Заблокируйте рекламу

При просмотре веб-страниц вы заметите что сайт загружается не сразу, он ждет пока будут загружены все компоненты страницы, в том числе и рекламные объявления. Flash анимация очень раздражает при большом количестве блоков на странице, поэтому вы можете ее заблокировать (не нужно этого делать на нашем сайте, мы белые и пушистые).

Для большинства популярных браузеров - Chromium, Firefox, Opera есть расширение AdGuard или AdBlock, которое отлично справляется с этой функцией. Программа использует базу данных чтобы заблокировать наиболее популярные источники объявлений.

8. Используйте сочетания клавиш

Кому-то это может показаться очевидным. Работа только с клавиатурой намного быстрее, чем движение от мышки к клавиатуре и обратно. Много функций можно сделать с помощью клавиатуры. Например, стандартные команды копирования и вставки из меню правка.

Стоит создать сочетания клавиш для всех часто используемых действий. Например, переключение между приложениями и рабочими столами. Вы можете пойти еще дальше и использовать в качестве текстовых редакторов vim и emacs.

Интерфейс запуска приложений открываемый по Alt+F2 может сделать намного больше. Например, вы можете набрать Выключить для выключения или Заблокировать для блокировки экрана. Вы можете выполнять простые расчеты начав выражение со знака =. Там есть еще много подобных функций в зависимости от плагинов. Наберите знак ? и нажмите стрелку вправо чтобы узнать подробнее. В качестве текстового редактора можно использовать Vim, также для многих сред разработки есть расширения, обеспечивающие поддержку сочетаний клавиш из Vim.

9. Пропатчите ядро

Если вам нужна максимальная производительность программного обеспечения, то множество исправлений можно внести в ядро. Оптимизация ядра Linux может дать отличный эффект. Вы можете оптимизировать ядро самостоятельно, но есть и более легкий путь. Вы можете использовать ядро, скомпилированное Con Koliva, оно включает огромное количество патчей производительности. Патчсет ядра называется -ck и он был собран с упором на производительность.

Чтобы его установить, вам нужно скачать исходные тексты ядра, той версии на которую рассчитаны эти патчи. Затем скачайте сам патч и выполните команду в папке с исходниками ядра:

patch -p1 < patch-5.*-ck1

Теперь соберите ядро в соответствии с инструкциями из вашего дистрибутива. Это проще сказать чем сделать, но в интернете есть очень много инструкций, в том числе на нашем сайте - собираем ядро Linux.

10. Разгон видеокарты

Не нужно использовать BIOS, для видеокарт Nvidia была создана утилита с помощью которой можно выполнить разгон видеокарты. Но чтобы включить поддержку разгона вам надо добавить одну строчку в файл /etc/X11/xorg.conf. В современных дистрибутивах такого файла обычно нет, но его можно создать выполнив:

После того как файл /etc/X11/xorg.conf будет создан откройте его в текстовом редакторе с правами root, найдите секцию Device который описывается ваша графическая карта и добавьте в конец секции для регулирования оборотов кулера:

Option "Coolbits" "5"

Или для разгона:

Option "Coolbits" "8"

Затем перезапустите Х сервер. Утилиту можно установить с помощью из FlatHub. В самой программе вы можете создать профиль разгона для видеокарты увеличив частоту памяти и графического ядра, а также регулировать обороты кулера.

Каждый раз когда вы меняете параметры, изменяется тепловыделение. Убедитесь что температура остается в разумных пределах. Как только настроите все параметры, добавьте утилиту в автозагрузку, чтобы она загружала параметры при старте системы.

Есть ещё один способ увеличить производительность видеокарты. Утилита Nvidia XSettings на вкладке PowerOptimizer позволяет не только менять частоту графического ядра, но и выбирать профиль производительности. Вы можете включить профиль Prefer maximum performance:

11. Разгон оборудования

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

Многие материнские платы включают в себя пункты по умолчанию, для повышения скорости системы, без необходимости больших знаний в области компьютера.

Вы можете настроить все это в своем BIOS. Для доступа к нему используйте клавиши F2 или Del. Возможно, вы найдете там опции для ускорения процессора, увеличения частоты оперативной памяти и т д. Но после разгона не забывайте протестировать стабильность процессора и следить за температурой с помощью консольной утилиты sensors или графической xsensors:

12. Отключите IPv6

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

Откройте настройки вашего подключения к сети, перейдите на вкладку IPv6 и выберите пункт Выключить:

Браузер Firefox тоже позволяет отключить ipv6. Просто наберите в адресной строке about:config и активируйте пункт network.dns.disableIPv6.

Кроме того, можно отключить IPv6 на уровне всего дистрибутива. На этом сайте уже есть статья об этом: Как отключить IPv6 в Ubuntu.

13. Статическая линковка

Многие программы подгружают для своей работы библиотеки динамически, во время работы программы. На это уходит не очень много времени, но если приложения большие и подгружают много библиотек, то статическая линковка может дать отличное ускорение Linux. Для этого используются утилиты preload и prelink.

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

sudo apt install prelink

Затем запустим утилиту для обработки всех исполняемых файлов:

sudo prelink --all

Для периодичного запуска prelink, чтобы выполнялась оптимизация Linux для новых файлов, откройте файл /etc/default/prelink и замените строчку PRELINKING=unknown на yes:

sudo vi /etc/default/prelink

Далее установите Preload:

sudo apt install preload

Эту программу достаточно только установить, она не требует настройки после установки.

14. Используйте ZRAM

Если у вас недостаточно оперативной памяти, вы можете очень просто увеличить ее количество на 25, а то и 50% с помощью сжатия оперативной памяти zram. Это модуль ядра, который позволяет сжимать содержимое оперативной памяти на лету, таким образом вместимость ОЗУ остается увеличивается, а скорость остается прежней. Это даст хорошее ускорение работы Linux для старых компьютеров.

15. Уменьшите активность жесткого диска

Система очень активно пишет и читает файлы из каталога /tmp. Это каталог для временных файлов, и с ним могут одновременно работать большое количество программ. Будет лучше, если содержимое этого каталога будет находиться в оперативной памяти. Чтобы ускорить работу linux, таким образом, добавьте строчку в файл /etc/fstab:

sudo vi /etc/fstab

tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0

Но сначала убедитесь не примонтирована ли уже папка tmp в оперативную память, выполнив команду mount. Во многих дистрибутивах эта оптимизация linux включена по умолчанию.

16. Настройте работу подкачки

Не все системы рационально используют пространство подкачки на жестком диске. По умолчанию значение vm.swappiness установлено 60:

Поэтому, если (100-60) 40% оперативной памяти занято, система начнет сбрасывать данные на жесткий диск. Это справедливо для систем с небольшим количеством ОЗУ, 1-2 Гб, но если у вас 16 Гб, то нагружать жесткий диск когда у вас занято только 4 Гб несерьезно. Чтобы это изменить выполните команду:

sudo sysctl -w vm.swappiness=10

Это значит начинать сбрасывать данные в Swap когда занято 90% памяти (100-10). Можно использовать и другие значения. При частом переполнении памяти это отличная оптимизация Linux.

Выводы

В этой статье мы разобрали достаточно много методов как ускорить Linux, но все же я думаю это далеко не все решения. Если вы знаете другие интересные варианты ускорения работы Linux, поделитесь с нами в комментариях.

Установкой пакетов в Debian занимается… нет, не apt. Apt только скачивает пакеты из репозитория, а установкой занимается dpkg. Если вы интересовались разными linux-дистрибутивами, то могли заметить, что dpkg работает медленно, особенно в сравнении с pacman из Archlinux. Тому есть несколько причин, и одна из них — dpkg ну очень осторожно пишет на диск: на каждый чих дёргает системный вызов fsync , который заставляет ОС сбросить на диск данные, ожидающие своей очереди в кэше. И пока ОС не убедится в том что данные записаны, dpkg будет бездействовать. Но не спешите критиковать разработчиков. Так сделано из благих намерений, чтобы данные не потерялись в случае внезапной потери питания. База данных dpkg — дико хрупкая штука, её невозможно восстановить автоматически.

Бывает так, что скорость установки пакетов важнее устойчивости к сбоям. Как ускорить dpkg? Часть дисковых синхронизаций отключается ключом --force-unsafe-io или аналогичной опцией в конфиге dpkg. Можно пойти ещё дальше и позвать на помощь библиотеку libeatmydata, которая напрочь отшибает всю осторожность. Жизнь слишком коротка чтобы делать fsync!

Библиотека libeatmydata делает одну единственную вещь: перехватывает системный вызов fsync и тут же возвращает управление назад. Это приводит к тому, что:

  • программа, которая осторожно пишет на диск (база данных), начинает работать гораздо быстрее.
  • падение такой программы может привести к потере данных.

В этой статье я покажу как использовать libeatmydata и устрою бенчмарк (спойлер: ускорение до 14 раз). Кстати, этот способ подойдёт не только для установки пакетов, но и для любой БД.

Как использовать libeatmydata

  1. Через обёртку eatmydata , например eatmydata apt upgrade .
  2. Через переменную окружения LD_PRELOAD .

Переменную окружения можно устанавливать индивидуально для процесса

или для группы процессов, например для всей системы:

Вариант с переменной окружения хорош тем, что не требует переделки скриптов автоматизации: достаточно добавить одну строчку в один конфигурационный файлик и всё летает :) Единственный нюанс: путь к библиотеке отличается на разных архитектурах.

Бенчмарк

Разумеется, я захотел выяснить какое ускорение даёт libeatmydata. В голову пришла идея такого бенчмарка:

  • берём контейнер с каким-нибудь Debian,
  • включаем один из ускорителей (force-unsafe-io или libeatmydata),
  • ставим некий фиксированный набор пакетов и замеряем время установки,
  • возвращаем всё в исходное состояние.

Для полноты эксперимента я решил проводить тесты как на жёстком диске, так и на SSD, используя файловую систему ext4 с разными опциями монтирования:

  • включенное/выключенное журналирование,
  • режимы журналирования journal, ordered, writeback,
  • включенный/выключенный барьер на запись (write barrier),
  • разная периодичность коммита в журнал.

Главный вопрос — сколько и какие пакеты ставить? Меня интересуют накладные расходы на установку пакетов, значит надо набрать много мелких пакетов. Я взял openbox , devscripts и build-essential + их зависимости. Получилось 388 пакетов размером преимущественно до 1 MiB.

Вот результат тестирования на HDD:

Как видим, ускорение сильно зависит от настроек параноидальности файловой системы: чем они жёсче, тем медленнее устанавливаются пакеты и тем больше эффект от ускорителей. Лично для меня стал неожиданным факт, что ФС с выключенным журналом работает медленнее, чем с журналом в режиме ordered или writeback и что барьер на запись даёт такую большую просадку в скорости. Что ж, учту на будущее.

Результат тестирования на SSD, в том же масштабе:

В некоторых режимах unsafeio проигрывает обычному режиму, но скорее всего это погрешность. Для сравнения: на рам-диске пакеты устанавливаются за 33.8 секунды. Это минимальное время, которого в принципе можно достичь на моём железе.

Как получить эти графики

Чтобы автоматизировать процесс тестирования и дать всем желающим возможность повторить эксперимент, я написал три скрипта. Они доступны в репозитории на GitHub.

Непосредственно за тестирование отвечает скрипт dpkg-benchmark.sh . Ему надо передать два аргумента: архив с контейнером и раздел диска под файловую систему. Архив с контейнером готовится ручками в три команды:

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

На выходе скрипта имеем лог с результатами измерений. Типа такого:

Первые три поля — это время real, user, sys. Для построения графика используется только первое, а остальные так… на всякий случай. Последнее поле — параметры теста. Каждый тест прогоняется 5 раз, чтобы нивелировать погрешность.

Сразу построить графики по этим данным не получится, надо сперва усреднить результаты. Этим занимается скрипт benchmark-analyze.py . Скармливаем ему лог и получаем три файла: normal.dat , unsafeio.dat , eatmydata.dat . Они содержат упорядоченные данные для рисования в Gnuplot в виде таблицы:

Чётные поля — это усреднённые значения real, user, sys. Нечётные — их стандартные отклонения. Для построения графика используются только первое и второе поле. За рисование отвечает скрипт draw.plt , он создаёт картинку в plot.svg .

Итого, последовательность команд такая:

Напоследок

Для тех, кто ещё не понял: не надо везде включать libeatmydata и считать это “оптимизацией Linux” или “ускорением компьютера”. Нафиг вам такая оптимизация, от которой всё сломается после первого сбоя? Включать libeatmydata стоит в процессах автоматизации, когда в случае сбоя вы не станете ничего восстанавливать, а просто запустите заново. Например, так можно поступить при сборке пакетов через pbuilder, в одноразовых docker-контейнерах, во временных тестовых средах. Подходите к оптимизации с умом, друзья.

Читайте также: