- Настройка ядра Linux для повышения производительности памяти
- Контекст
- Объяснение
- Нехватка оперативной памяти в Linux на рабочем ПК: оптимизация и действия при зависании
- zram и приоритеты свопов
- Быстро вырубить программу, перегружающую ОЗУ. Запас ОЗУ для SSH
- Как ускорить Linux
- Используйте VirtualBox
- Как ускорить Linux
- 1. Ускорение загрузчика Grub
- 2. Отключите сервисы
- 3. Отключите приложения
- 4. Ускорение файлового менеджера
- 5. Используйте легкое окружение
- 6. Ускорьте KDE
- 7. Заблокируйте рекламу
- 8. Используйте сочетания клавиш
- 9. Пропатчите ядро
- 10. Разгон видеокарты
- 11. Разгон оборудования
- 12. Отключите IPv6
- 13. Статическая линковка
- 14. Используйте ZRAM
- 15. Уменьшите активность жесткого диска
- 16. Настройте работу подкачки
- Выводы
Настройка ядра Linux для повышения производительности памяти
Контекст
Linux старается оптимизировать использование памяти, занимая свободное место кэшем. Если память никак не используется, то это память, потраченная впустую.
Кэш заполняется данными по мере работы системы и когда приложениям требуется память, ядро ищет среди страниц кэша блок подходящего размера, освобождает его и выделяет приложению.
В некоторых случаях этот процесс может влиять на производительность, поскольку освобождение кэша занимает больше времени, чем просто доступ к неиспользуемой оперативной памяти. Поэтому иногда можно наблюдать снижение производительности.
Причина этого исключительно в том, что оперативная память используется на полную мощность, и других симптомов, кроме случайного эпизодического увеличения задержек, может и не быть. Такая же картина может наблюдаться, если жесткий диск не справляется с чтением и записью. Влияние может быть и на такие компоненты операционной системы как сетевая карта / iptables / ebtables / iproute2 — вместо реальной причины вы видите проблемы в сетевой задержке. В этой статье обсудим это подробнее и посмотрим, как минимизировать воздействие на систему.
Объяснение
В Linux есть несколько видов кэшей:
dirty cache — блоки данных, которые еще не записаны на диск (в файловых системах, поддерживающих кэширование, например, ext4). Этот кэш можно очистить командой sync. Очистка этого кэша может привести к снижению производительности. При обычном режиме работы не стоит этого делать, если только вам не нужно сбросить данные на жесткий диск, например, при аварии.
clean cache — блоки данных, которые для ускорения доступа находятся и на жестком диске и в памяти. Очистка clean cache может привести к снижению производительности, поскольку все данные будут считываться с диска.
inode cache — кэш информации о местоположении inode. Его можно очистить аналогично clean cache, но также с последующим снижением производительности.
slab cache — хранит объекты, выделенные приложениям с помощью malloc, таким образом, что в будущем они могут быть повторно выделены с уже заполненными данными объекта, что ускоряет выделение памяти.
С dirty cache мало что можно сделать, но другие типы кэшей можно очистить. Их очистка может привести к двум результатам. В приложениях, потребляющих много памяти, таких как Aerospike, задержки уменьшатся. Но с другой стороны, замедлится скорость ввода-вывода, так как все данные придется считывать с диска.
Очистка slab cache может привести к временному кратковременному снижению скорости. По этой причине очищать кэш не рекомендуется. Вместо этого, лучше сообщить системе, что определенный объем памяти всегда должен быть свободен и его нельзя занимать кэшем.
При необходимости очистку кэша можно выполнить следующим образом:
Большую часть памяти занимает page cache, поэтому если очищаете кэш, то рекомендуется очищать его (echo 1).
Для исправления проблемы можно установить минимальное количество свободной памяти. Рассмотрим следующий пример:
В этом примере свободно 10 ГБ памяти, ограниченной с использованием параметра minimum free . В случае, если потребуется выделить 5 ГБ памяти, то сделать это можно мгновенно. Для обеспечения 10 ГБ свободной памяти освобождается часть кэша. Выделение памяти будет происходить быстро, а кэш динамически уменьшаться, чтобы 10 ГБ всегда оставались свободными. Распределение памяти будет выглядеть следующим образом:
Точная настройка этих параметров зависит от вашей нагрузки. Для Aerospike, если это позволяет доступный объем памяти, должно быть не менее 1,1 ГБ свободной памяти в min_free_kbytes . Тогда кэш будет в достаточном объеме, оставляя место для размещения приложений.
Настройка выполняется следующим образом:
NUMBER — количество килобайт, которые должны быть свободны в системе.
Чтобы на компьютере со 100 ГБ оставить 3% памяти незанятыми, выполните следующую команду:
Aerospike рекомендует оставлять не менее 1,1 ГБ в min_free_kbytes , т.е. 1153434.
В системе с общим объемом памяти более 37 ГБ следует оставлять не более 3% свободной памяти min_free_kbytes , чтобы ядро не тратило слишком много времени на ненужное восстановление памяти. В таких системах это будет составлять от 1,1 ГБ до 3% от общего объема оперативной памяти.
При установке этого параметра следует проявлять осторожность: слишком маленькое или слишком большое значение может отрицательно сказаться на производительности системы. Слишком низкое значение min_free_kbytes не позволит системе освободить память. Что может привести к зависанию системы или уничтожению процессов через OOM.
Слишком большое значение (5-10% от общей памяти) приведет к тому, что в системе быстро закончится память. Linux для кэширования данных файловой системы использует всю доступную оперативную память. Установка высокого значения min_free_kbytes может привести к тому, что система будет тратить слишком много времени на восстановление памяти.
RedHat рекомендует поддерживать min_free_kbytes на уровне 1-3% от объема памяти в системе. При этом Aerospike рекомендует оставлять не менее 1,1 ГБ, даже если это выше официально рекомендуемого значения.
Также рекомендуется либо уменьшать параметр swappiness до нуля, либо не использовать своп. В любом случае для операций с низкой задержкой использование свопа резко снизит производительность.
Установите значение swappiness в 0 , чтобы уменьшить потенциальную задержку:
Примечания
ВАЖНО: Все изменения, указанные выше, НЕ сохраняются. Они действуют только во время работы машины. Чтобы изменения были постоянными, необходимо внести их в /etc/sysctl.conf .
Добавьте следующие строки:
Как всегда, будьте внимательны при редактировании подобных параметров. Проверьте их на тестовых серверах перед внесением изменений в продакшн-окружение.
Еще один параметр, аналогичный вышеуказанному, — zone_reclaim . К сожалению, этот параметр вызывает агрессивное восстановление и сканирование. Поэтому лучше его отключить. Во всех новых ядрах и дистрибутивах этот параметр по умолчанию выключен.
Для проверки, что zone_reclaim отключен используйте следующую команду:
Если вам интересно узнать о курсе подробнее, приглашаем на день открытых дверей онлайн, где преподаватель расскажет о формате обучения и программе.
Источник
Нехватка оперативной памяти в Linux на рабочем ПК: оптимизация и действия при зависании
На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.
Типична такая ситуация: есть своп (swap, раздел подкачки), который начинает использоваться при нехватке оперативной памяти, и размещен он на HDD, то есть жестком диске с низкой скоростью чтения информации. В таких ситуациях операционная система начинает тормозить, подвисает курсор мыши, сложно переключиться в соседнюю tty и т.д. Почему? Потому что планировщик ядра Linux не может выполнить запрос на какое-то действие в запущенной программе, пока не получит доступ к ее оперативной памяти, выполнить следующее действие тоже не может, образовывается очередь из запросов на чтение с диска, и система «подвисает» именно потому, что обработка очереди происходит гораздо медленнее, чем этого хочет пользователь.
Если в такой момент запустить htop или uptime , то показатель Load Average (LA) будет очень высоким, несмотря на низкую загруженность ядер процессора. Сочетание высокого Load Average и низкой загрузки процессора говорят о забитой очереди процессора.
Часто в интернете советуют изменить параметр ядра Linux vm.swappiness . Узнать его текущее значение на вашей системе можно так:
Ответ будет 60 почти наверняка. Это значит, что ядро Linux начинает свопить редко используемые страницы оперативной памяти, когда использование свободной оперативной памяти достигает 100%-60%=40%. Часто встречаются рекомендации поставить, например, vm.swappiness=10, чтобы своп не начинал использоваться, пока загрузка ОЗу не достигнет 90%. На самом деле не нужно трогать vm.swappiness, вы не умнее разработчиков ядра Linux, которые не просто так поставили 60 по умолчанию. Почему?
Представьте, что у вас всего 4 ГБ оперативной памяти, из них прямо сейчас занято 3 ГБ, vm.swappiness=10, своп на жестком диске (HDD) занят на 0%, и вы открываете тяжелый сайт в браузере, для чего требуется больше, чем имеющийся свободный 1 ГБ, например, 2 ГБ. Операционная система начинает в экстренном порядке отправлять в своп как минимум 0.5 ГБ (а по факту больше), чтобы можно было выделить браузеру необходимое количество оперативной памяти. Эта процедура становится самой приоритетной задачей, и придется пожертвовать даже движениями курсора мыши, чтобы ее выполнить как можно быстрее. Вы ждете. Проходит 5 минут, и система развисает, потому что окончила процедуру 100% загрузки очереди доступа к медленному жесткому диску, на котором размещена оперативная память (своп). При дефолтном vm.swappiness=60 редко используемые страницы памяти сбрасываются в своп заблаговременно, и резкого зависания на 5-10 минут не происходит.
UPD. В комментарии подсказывают, что это не точное описание работы vm.swappiness.
zram и приоритеты свопов
Рекомендую включить zram — прозрачное сжатие содержимого оперативной памяти. В Ubuntu это автоматизировано, достаточно установить пакет:
sudo apt install zram-config
Здесь и далее для дистрибутивов Rosa, Fedora все то же самое, но вместо zram-config —
Сервис systemd zram-config на Ubuntu будет автоматически добавлен в автозагрузку при установке пакета и запущен при перезагрузке системы. Для запуска вручную:
sudo systemctl start zram-config
sudo systemctl stop zram-config
Удаления из автозапуска:
sudo systemctl disable zram-config
Добавление в автозапуск:
sudo systemctl enable zram-config
При запуске zram-config берет число, равное 50% всего объема оперативной памяти, далее делает по одному виртуальному устройству /dev/zramN, где N начинается с 0, для каждого ядра процессора, а объем каждого /dev/zramN равен 50% всей оперативной памяти, деленному на количество ядер процессора. Так делалается для распараллеливания сжатия содержимого оперативной памяти по ядрам процессора; насколько я знаю, на современных ядрах Linux достаточно одного устройства /dev/zramN, а распараллелится оно само, но меня полностью устраивает искоробочная работа zram-config, и предпочитаю не лезть в нее руками.
Команда swapon -s выведет список всех задействованных свопов с указанием их приоритета. Первым используется тот своп, у которого приоритет выше. Если у вас уже есть дисковый своп и включен zram, то в случае с описанным выше пакетом-автокофигуратором приоритеты из коробки будут правильными. Например, у дискового свопа будет -1, а все /dev/zramN — 5. Таким образом, сначала используется zram, и только потом — диск.
Кстати, zram часто применяется на смартфонах, какую-либо на глаз заметную нагрузку на процессор при дефолтном методе сжатия lz4 он не создает.
Также приоритет свопа можно указать в /etc/fstab . Покажу на примере, как это сделано на моем рабочем компьютере с 6 ГБ ОЗУ.
Опцией монтирования pri=X заданы приоритеты свопов. Если еще включить zram, то картинка будет такой:
В первую очередь будет свопиться в zram, то есть сжиматься внутри оперативной памяти без использования внешнего устройства для свопа, во вторую — использовать небольшой своп на SSD. Почти никогда не будет использоваться 6 ГБ свопа на HDD, однако они понадобятся, если я захочу отправить компьютер в спящий режим в условиях большой загрузки оперативной памяти. (На самом деле у меня отключен zram).
На офисных ПК с 4 ГБ ОЗУ (Xubuntu 16.04, 17.10) всегда ставлю пакет zram-config . Chromium, по наблюдениям, на глаз, очень хорошо сжимается в оперативной памяти, в результате чего zram позволяет сделать работу намного более комфортной без модернизации железа.
Быстро вырубить программу, перегружающую ОЗУ. Запас ОЗУ для SSH
Бывает такое, что даже при vm.swappiness=60 какому-то черту, как правило, браузеру, требуется очень много оперативной памяти, и система подвисает. Решается очень просто: сочетание клавиш Alt+SysRq(PrintScreen)+F заставляет oom_killer принудительно включиться и вырубить процесс, который на момент вызова занимает больше всего памяти. Строго 1 процесс на 1 вызов, и строго обязательно что-то будет убито. Если много раз подряд нажмете, то, скорее всего, перезапустится графическая сессия. Событие убиения процесса отражается в dmesg красным цветом.
Однако эта штука, называющаяся Magic SysRq, из коробки отключена в большинстве дистрибутивов, потому что непривилегированный пользователь может убить абсолютно любой процесс. За это отчечает параметр ядра kernel.sysrq , узнать его текущее значение можно так:
Для работы Alt+SysRq+F нужно kernel.sysrq=1. Для этого отредатируем параметры ядра, расположенные в файлах /etc/sysctl.conf (обычно симлинк на /etc/sysctl.d/99-sysctl.conf) и /etc/sysctl.d/*.conf. Лучше всего создать отдельный файл:
sudo nano /etc/sysctl.d/99-dumalogiya.conf
Нажмем Ctrl+O, Enter для сохранения.
В случае с браузером Chromium Alt+SysRq(PrintScreen)+F будет вырубать по одной вкладке, не закрывая сам браузер, что очень удобно.
Сочетания клавиш Magic SysRq перехватываются напрямую ядром Linux, поэтому работают даже когда из-за очереди процессора подвисает X-сервер.
Источник
Как ускорить Linux
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 и он был собран с упором на производительность.
Чтобы его установить, вам нужно скачать исходные тексты ядра, той версии на которую рассчитаны эти патчи. Затем скачайте сам патч и выполните команду в папке с исходниками ядра:
Теперь соберите ядро в соответствии с инструкциями из вашего дистрибутива. Это проще сказать чем сделать, но в интернете есть очень много инструкций, в том числе на нашем сайте — собираем ядро 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, поделитесь с нами в комментариях.
Источник