Разное

Производительность ubuntu: Почему Ubuntu медленно работает | Losst

Содержание

Почему Ubuntu медленно работает | Losst

Иногда можно заметить, что система после нескольких лет использования начинает работать очень медленно, глючит и не понятно почему с ней это происходит. Такое очень часто случается с Windows, там даже годы не нужны, достаточно несколько месяцев или даже недель. Операционные системы Linux более устойчивы к таким проблемам, но это еще не значит, что их нет вовсе.

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

Содержание статьи:

1. Драйвера и прошивки

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

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

В Ubuntu можно установить несвободные прошивки просто выполнив команду:

sudo apt-get install linux-firmware-nonfree

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

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

2. Загрузка процессора

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

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

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

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

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

Использование оперативной памяти

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

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

Точно так же работает оперативная память, когда свободное место заканчивается. Данные, которые очень часто используются остаются в оперативной памяти, как и раньше, но те, которые запрашиваются редко, записываются в раздел подкачки на жестком диске. Если вся оперативная память занята, то некоторым программам будет очень сложно получить нужную им информацию из памяти. Чтобы ценить общую ситуацию, сколько памяти свободно и сколько уже записано на диск, вы можете воспользоваться командой free:

free -h

Размер данных, записанных на диск отображается после строки swap. Также с помощью той же утилиты top, вы можете посмотреть какой процесс и сколько использует памяти в процентах:

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

Нагрузка на жесткий диск

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

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

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

Теперь вы можете очень просто узнать какая программа использует ваш диск и решить что с ней нужно делать. Кроме этого, вы можете попытаться посмотреть нагрузку на видеокарту, но она не так сильно влияет на общую нагрузку системы. Для этого можно использовать инструмент nvidia-sni, intel-gpu-tools и aticonfig.

Графические решения

Вы рассмотрели графические решения для выяснения почему Ubuntu 16.04 медленно работает, во-первых, они используют меньше ресурсов, а во-вторых, с помощью них вы можете узнать больше информации. Но многие люди не любят использовать терминал. Тогда вы можете применять программы с графическим интерфейсом. Например, вы можете использовать Gnome System Monitor. Эта программа содержит очень много информации о системе, но не так подробно, как выше описанные утилиты:

Выводы

Есть много причин, которые могут заставить систему Ubuntu тормозить. Но самые главные из них, это драйвера, CPU, память и ввод-вывод на диск. Именно эти четыре причины больше всего влияют на общую производительность системы. Утилиты, которые мы рассмотрели в этой статье помогут вам разобраться с медлительностью вашей системы. А ваша система всегда работает быстро и стабильно? Или вы применяете какие-либо способы для увеличения производительности? Напишите в комментариях!

Оптимизация Linux для desktop и игр / Хабр

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

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

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.

1. Купите SSD, если у вас его еще нет

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

Серьезно, все что описано дальше в статье даст вам какой-то прирост в производительности и времени отклика, но любой, даже самый дешевый SSD, сократит время запуска большинства программ до 0, что, визуально, будет очень заметно. Почти в любом компьютере (и сервере) главный тормоз это всегда дисковая подсистема и никакой HDD никогда не даст вам нужной скорости поиска (которая у SSD стремится к 0 мс). За все время общения с компьютерами и их апгрейда, только переход на SSD дал значительный прирост в скорости работы и отклике. Помните как медленно работают дискеты, какое у них огромное время поиска? Примерно вот так воспринимается жесткий диск после SSD.

Так что если у вас еще нет SSD, то продолжать дальше смысла нет, ваш компьютер (хоть даже оснащенный 12-ядерным Xeon’ом) все равно будет работать медленно, так что вперед за покупками.

Касательно надежности: есть миф что SSD умирают спустя год. Его рождению мы обязаны первым SSD на бажных чипах SandForce. Естественно, любой новый SSD из магазина как минимум надежнее и долговечнее современных жестких дисков, так что не стоит беспокоиться по этому поводу вообще. Свой SSD я купил 2 года назад б/у, на то время он был в использовании год. Сейчас у него 11 681 часов наработки и использование ресурса 10%, так что при том же режиме использования, мне его хватит еще на 27 лет. Думаю, к этому времени технологии хранения данных уже несколько раз изменятся. Так что повторюсь, проблемы с надежностью более чем надуманы.

Более подробно о мифах SSD расписал товарищ Вадим Стеркин в своём блоге. Правда, блог у него о Windows, но сути это не меняет. Настоятельно советую почитать, очень интересно.

В Ubuntu 14.04 SSD работают из коробки, опция discard автоматом прописывается в fstab, кроме этого больше ничего не нужно делать.

В других дистрибутивах нужно проверять, есть ли эта опция у разделов на SSD. Стоит упомянуть, что данную опцию поддерживает только ext4. Для других ФС придется пользоваться fstrim из планировщика.

2. Таблица разделов

Не делите диски на разделы.

Для домашнего компьютера это бессмысленно и вредно. На SSD у вас должен быть один раздел для корня, там у вас будет хранится система и все данные. На HDD (если нужен) у вас должен быть один раздел с точкой монтирования в /mnt (у меня /mnt/data), где будут хранится большие малоиспользуемые данные (фильмы, музыка, игры). НЕ НУЖНО делать HDD точкой монтирования /home, так как в /home 99% программ хранит свои данные и постоянно к ним обращается, поэтому /home должен быть на SSD.

Повторюсь кратко: на SSD у вас должно быть все, к чему система постоянно обращается (пишет/читает)!

Не слушайте вредных советов по вынесению таких данных на HDD, как уже было сказано проблемы износа SSD нет, это миф, и большое число циклов записи вообще не влияет на долговечность SSD. Еще раз отсылаю к стате Вадима Стеркина, там это все описано более подробно и подкреплено объяснениями.

Насчет SWAP-раздела: он вам не нужен. Если у вас не хватает оперативной памяти, то OOM-killer будет прибивать ресурсоемкие приложения, если это происходит то докупите оперативки, благо ее цена не сильно кусается. Использование swap как расширителя оперативной памяти значительно замедляет работу компьютера. Есть много мнений, что без SWAP будут какие-то проблемы, но ИМХО, корни эти разговоров растут от Win9x и на сегодня это уже мифы, лично я не замечал никаких проблем от отказа от SWAP. Как пруф: на VPS сейчас редко увидишь подключенный SWAP и работают же как-то!

suspend-to-disk вам тоже не нужен, потому что холодный старт с SSD быстрее чем восстановление из спячки с HDD, так что пользуйтесь suspend-to-ram или выключайте компьютер полностью. Единственный плюс от свапа — возможность уйти в гибридную спячку, это когда система готовится к suspend-to-disk, но выполняет suspend-to-ram, так что позже, если все хорошо, идет простой выход из спячки, а если произошел сбой питания — то система восстановится с диска.

Я использую везде файловую систему ext4, так как с другими мне не удалось получить заметной разницы в производительности, а ext4 наиболее распространена, плюс имеются утилиты для восстановления данных (но не надейтесь на них, а делайте бэкапы). При создании используйте -T largefile или largefile4.

3. Используйте 64-битное ядро

От производительности оперативной памяти мало что зависит, от нее не увеличится FPS в играх и не станут быстрее запускаться приложения. Использование 64-битных приложений тоже не дает никакого прироста для обычных задач, только для очень специфичных математических расчетов и операций архивирования. Также, использование 64 ядра не требуется для адресации более 4 ГБ памяти, PAE позволяет адресовать до 64 ГБ памяти на 32 битной системе.

Но используя 64-битное ядро, приложения могут адресовать больше чем 4 ГБ памяти, что довольно полезно, так как иначе может возникать ситуация когда OOM-killer будет прибивать программы, хотя оперативки еще достаточно. Также на 64-битной системе можно адресовать сразу же всю физическую память, на 32 битной же все что выше ~800 МБ надо постоянно ремапить, что несколько снижает скорость страничного обмена, хотя, как я уже сказал, это особо не влияет на скорость работы.

Еще замечал эффект, что OOM-killer может прибивать процессы, которые вроде бы еще не заняли 4 ГБ. У меня такое было с некоторыми играми. Проблема решилась переходом на 64 бита. Так что без 64-битного ядра уже никуда, хоть это и добавляет небольшие накладные расходы на использование памяти.

4. Используйте патсет pf-kernel

pf-kernel — это набор патчей для ядра linux, собранные украинцем Александром Наталенко (pfactum) направленные на улучшения desktop-experience linux-систем.

Он состоит из:

Наиболее полезными являются патчи BFS и BFQ, про которые уже очень много написано. BFQ борется с проблемой тормозов системы во время выполнения больших дисковых операций (знаменитый баг 12309, который по документам исправлено, но по факту продолжает досаждать), BFS — планировщий процессов, более подходящий для десктопной работы, чем те что идут в ядре. Например CFS, который используется по умолчанию допускает ситуацию, когда 2 процесса, которые требуют приоритет реального времени будут исполнятся на одном ядре, хотя другие ядра заняты низкоприоритетными задачами. Естественно, такое поведение приводит к глобальным тормозам. Зато «честный планировщик». BFS не такой «честный», но зато намного более приближен к реалиям настольных компьютеров с небольшим (большое — это 4096) количеством ядер.

Для установки, я качаю с kernel.org необходимую версию ядра без стабилизационнх патчей и накладываю на него pf-kernel. В общем случае это выглядит так:

cd /usr/src
wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz
tar -xf linux-3.12.tar.xz
cd linux-3.12
wget https://pf.natalenko.name/sources/3.12/patch-3.12.4-pf.bz2
bunzip2 patch-3.12.4-pf.bz2
patch -p1 < patch-3.12.4-pf

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

Вот, например, скриншот htop при работе Dota 2 + The Sims 3 (multiseat):

При такой нагрузке на третьем экране можно спокойно работать и 25% (в 5-минутном окне по данным load-average) перегрузка CPU даже не чувствуется. Хотя, конечно, проц надо менять 🙁

5. Тюнингуйте ядро!

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

Так что делайте make xconfig

Я расскажу о наиболее важных опциях для оптимизации

Выключаем preemption, устанавливаем низкую частоту таймера и выключаем dynticks!

ДА! Мы действительно, даже вопреки документации к BFS отключаем «жизненно важные» опции для повышения отзывчивости системы. А причина в том что они — устарели, толку от них никакого и к тому же preemption негативно влияет на производительность.

Было время, когда у меня был одноядерный процессор, тогда еще в готовых ядрах не включали preemption и высокочастотный таймер, вот тогда, после включения этих опций был огромный эффект. А именно, тяжеловесное приложение, занимающее 100% CPU, даже при наличии дискового ввода-вывода и нехватке ОЗУ никак не влияло на интерактивность и отзывчивость. В те времена, еще кроме WinXP ничего не было, а подробно рассказывать как ужасно себя ведет XP в таких ситуациях, думаю, не надо, она обычно намертво виснет, заставляя тянуться к кнопке reset. Так что иметь систему, которая почти никогда не тормозит и не зависает было приятно.

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

Так что идем в Processor type and features и выбираем для параметра Preemption Model значение No Forced Preemption (Server). Не пугаемся фразы «ocasional longer delays are possible» потому что данную проблему у нас эффективно решает BFS и многоядерный процессор. Как и написано в описании, мы выигрываем в «raw processing power».

Также, в целях оптимизации, для параметра Processor family выберите свой процессор.

Далее, устанавливаем для параметра Timer frequency значение 300 HZ. 100 все же будет маловато, да и смысла особого нет (читайте в описании почему), но вы можете поэкспериментировать. Также, 300 Гц нацело делится и на 25 и 30, что является типичными частотами для видео, это вносит свой вклад в борьбу с тирингом (это из хелпа. По факту, с тирингом успешно борется только тройная буферизация + vsync).

В этом разделе есть немало интересных опций, посмотрите, например можно выключить hot-plug для cpu и памяти, так как на десктопе это просто невозможно сделать (а выключать-включать на лету ядра редко кому нужно).

Так как у меня не ноутбук, я выключаю все что связано с энергосбережением, то есть к примеру выключаю поддержку CPU Frequency scaling вообще.

Теперь отключим динамический таймер. Не уверен точно, так как не проверял конкретно, но похоже именно эта опция приводит к постоянным «подергиваниям» на некоторых видео и особенно в играх. Так что идем General setup -> Timers subsystem и для опции Timer tick handling выбираем Periodic timer ticks (constant rate, no dynticks).

Включаем BFQ

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

Идем Enable the block layer -> IO Schedulers включаем опции BFQ I/O scheduler и BFQ hierarchical scheduling support, для опции Default I/O scheduler выбираем, очевидно, BFQ.

6. Prelink

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

7. Заключение

Самое главное, что я всегда замечаю — после наложения патчсета и тюнинга ядра уходят «подергивания» в играх. Чем слабее железо, тем заметнее эти подергивания, хотя у меня есть подозрения что это все же какая-то проблема в драйверах nVidia, потому что разные версии ведут себя по-разному.

Ради пруфов решил провести тесты с помощью Geekbench 3 из Steam и gputest, результаты которых немного странные:

3.14-pf:

Single-Core Score 2421

Multi-Core Score 8209

gputest: 3720 pts, 62 FPS

3. 13-generic:

Single-Core Score 2646

Multi-Core Score 8414

gputest: 3713 pts, 61 FPS

Windows:

Single-Core Score 2572

Multi-Core Score 8242

gputest: 3634 pts, 60 FPS

Как видно, почему-то на «оптимизированный» вариант в тесте CPU набирает меньше попугаев, а в тесте GPU — больше. Только сейчас я заметил что тестировал разные ядра, возможно в этом и причина различий результатов. Как будет время, проведу эти же тесты на 3.16, надеюсь, удастся найти причину. Самое же веселое тут в том, что у Windows результаты хуже, особенно в 3D значительно.

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

В этом руководстве мы покажем вам, как ускорить работу Ubuntu 18.04. В настоящее время – самую последнюю версию дистрибутива Linux от Canonical. Операционная система Ubuntu основана на ядре Linux. Оба являются бесплатными и с открытым исходным кодом, что означает, что используемый код доступен онлайн для всех, его можно использовать и просматривать. Canonical, основные разработчики Ubuntu, работают с сообществом Linux, чтобы обеспечить максимально эффективную работу ОС.

Однако со временем ваша система Ubuntu 18.04 может стать вялой. Это может быть связано с небольшим количеством свободного места на диске или возможно недостатком виртуальной памятью из-за количества загруженных вами программ.

В этом руководстве мы поговорим о том, как ускорить работу Ubuntu 18.04. Здесь вы найдете наши десять лучших советов, чтобы убедиться, что ваша система Ubuntu 18.04 работает на полную. Эти подсказки ускорения Ubuntu охватывают некоторые очевидные шаги, такие как установка большего количества ОЗУ, а также более неясные, такие как изменение размера раздела подкачки вашего компьютера.

1. Перезагрузите компьютер

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

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

2. Держите Ubuntu обновленным

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

Чтобы найти и загрузить обновления, откройте терминал Linux и введите:

sudo apt-get update

Чтобы проверить, доступно ли основное обновление, откройте Terminal и запустите команду:

sudo apt-get upgrade

Затем терминал предложит вам нажать «Y», чтобы продолжить.

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

3. Используйте легкие desktop альтернативы

Стандартная версия Ubuntu 18.04 использует рабочий стол GNOME 3, который предназначен для балансировки графики и эффективности ресурсов. Если у вас старая машина, она может столкнуться с некоторыми из более сложных функций.

К счастью, для Ubuntu есть облегченные desktop альтернативы. Один из самых известных – Lubuntu, основанный на ультраэффективной среде рабочего стола LX.

Чтобы начать работу, просто откройте «Терминал» и введите:

sudo apt-get install lubuntu-desktop

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

Кроме того, посетите домашнюю страницу Lubuntu, чтобы загрузить предварительно упакованную версию Ubuntu, которая использует эту быструю среду рабочего стола. Lubuntu также поставляется с различными приложениями, которые были выбраны для простого использования системных ресурсов.

4. Используйте SSD

SSD (твердотельные накопители) используют флэш-память, такую же, что и на USB-накопителях. Они обеспечивают гораздо более быстрый доступ и время записи, чем традиционные механические жесткие диски.

SSD, как правило, стоят дороже, чем обычные жесткие диски, но сделают систему гораздо более эффективной, если вы готовы покрыть расходы. Если вы хотите купить SSD для установки, убедитесь, что у вас есть правильный разъем для вашего устройства (2,5-дюймовые для портативных устройств, 3,5-дюймовые для настольных компьютеров).

Вы можете использовать бесплатное программное обеспечение, такое как Clonezilla для копирования содержимого вашего текущего жесткого диска на новый SSD.

5. Обновите свою оперативную память

Общая скорость вашего ПК может быть значительно улучшена за счет увеличения объема оперативной памяти (ОЗУ). Ubuntu 18.04 требует для бесперебойной работы 2 ГБ оперативной памяти, хотя это не учитывает ресурсные приложения, такие как видеоредакторы и определенные игры.

Самое простое решение – установить больше оперативной памяти. На вашем ПК имеется определенное количество слотов оперативной памяти, в которые вы можете вставлять чипы. Убедитесь, что вы нашли память для вашей конкретной модели компьютера, чтобы знать конкретный тип используемой ОЗУ, например DDR3.

Чтобы отобразить общий доступный объем оперативной памяти в Ubuntu, введите в терминале:

free –m

Чтобы отобразить тип и скорость RAM, используйте команду:

sudo lshw -c memory

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

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

6. Мониторинг приложений для запуска

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

Ubuntu 18.04 имеет удобное графическое приложение под названием «Startup Applications». Запустите его из меню GNOME, чтобы просмотреть полный список. С помощью мыши щелкните по отдельным приложениям и выберите «Удалить», чтобы предотвратить запуск программы.

В Ubuntu 18.04 вы можете посмотреть перечень служб, запускаемых при запуске, открыв терминал и выполнив команду:

service --status-all 

Чтобы остановить запущенную службу, введите команду:

sudo service <name> stop

Чтобы удалить существующую программу из Ubuntu откройте Terminal и запустите:

sudo apt-get remove <program name>

7. Увеличение пространства подкачки

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

Установщик Ubuntu автоматически назначит выделенный раздел подкачки на вашем жестком диске во время установки. Обычно этого достаточно, но вы можете увеличить его размер, используя дисковый менеджер Ubuntu по умолчанию «GParted».

Чтобы начать работу, вставьте последний DVD / USB-накопитель Ubuntu в ваш компьютер и загрузитесь в «живую» среду. Откройте GParted из меню GNOME. Здесь вы можете удалить существующий раздел подкачки и сжать свой основной.

Затем нажмите «Создать новый раздел», чтобы добавить новое, большее пространство подкачки. Если вам нужна помощь с использованием GParted, обязательно прочитайте руководство. Раздел справки на веб-сайте Ubuntu также содержит подробные инструкции.

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

8. Установите Preload

В вычислительных терминах «Предварительная загрузка» – это практика хранения необходимых файлов в ОЗУ. Это во много раз быстрее, чем размещение файлов на жестком диске.

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

Чтобы начать работу зайдите в терминал и выполните команду:

sudo apt-get install preload

По завершении установки просто перезагрузите компьютер, и Preload будет работать в фоновом режиме.

9. Используйте локальные зеркала

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

Чтобы изменить настройки зеркала, перейдите в «Программное обеспечение». Нажмите кнопку меню в левом верхнем углу экрана и выберите «Программное обеспечение и обновления»> вкладка «Программное обеспечение Ubuntu»> «Загрузить с». Отсюда выберите «Другое», а затем выберите ближайший к вам сервер.

10. Удалите старые файлы

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

С точки зрения файлов наиболее распространенным виновником является папка «Загрузки», так как обычно они содержат только файлы из Интернета. Обычно их можно удалить, так как вы можете просто загрузить их снова.

Чтобы очистить временный кеш, используемый «apt-get», выполните команду:

sudo apt-get clean

Это не приведет к удалению каких-либо реальных приложений.

В то время как вы проводите весеннюю уборку, вы также можете удалить все неиспользуемые пакеты и зависимости, открыв терминал Ubuntu 18.04 и запустив:

sudo apt-get autoremove

Перевод материала от Greatech

Оригинал

Ускоряем Ubuntu уменьшая количество используемой памяти | Linuxsoid

Ускоряем Ubuntu Linux отключая ненужные службы и плагины

Если сейчас сравнить новые версии десктоп дистрибутива Ubuntu например с версией 14.04, вы должны были бы увидеть, что дистрибутивы Linux стали более «прожорливыми», да новые версии получили проблему в виде Unity которая жрет оперативку как слон и если у вас оперативной памяти меньше 2гб, будет не сладко. В сегодняшнем материале мы обсудим несколько способов более оптимального решения возникшей проблемы которые бы позволили уменьшить апетиты в использовании оперативной памяти. Первый, конечно же — это выбор легкого дистрибутива (Xubuntu или же Lubuntu и прочих). Второй способ, в данном случае мы постараемся уменьшить потребления памяти без ограничения в функциональности работы дистрибутива, для опытов мы выбрали Ubuntu 16.04 LTS.

Введение

Если вы только установили систему на компьютер который имеет два гигабайта ОЗУ, после первого запуска система будет кушать не меньше 1 Гб памяти. Вроде и не критично, но очень много, если взять хотя-бы в сравнение более маленький дистрибутив и сравнить потребление памяти. А если и запустить браузер например с 5-6 вкладками, то ваши 2 ГБ быстро израсходуются и вы увидите первые косяки в производительности прочие зависания браузера итд.

Рассмотрим что нам нужно в функциональности, а что нет.

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

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

Отключаем лишние службы / сервисы

В Ubuntu 16.04 используется systemd, чтобы посмотреть ПО которое запускается во время начальной загрузки, мы можем использовать следующую команду:

sudo systemctl list-units --type service

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

Список загружаемых сервисов systemd

AppArmor, предназначен для защиты системы, но в реальности если говорить о домашних системах, будет достаточно своевременно обновлять приложения. Если говорить о рисках заражения со стороны ПО, то он минимален, нужно очень постараться попасть на вредоносную страницу, начиненную эксплоитами, которые созданы под конкретную версию дистрибутива, так же стоит вспомнить о том, что по умолчанию профиль AppArmor для Firefox неактивен. Поэтому, если у вас приступ паники как у параноика, вы можете не отключать эту службу, но если вы мыслите трезво, можешь смело отключать, для чего воспользуйся следующей командой:

sudo systemctl disable apparmor.service

Apport — это служба которая предназначена для отправления отчетов об ошибках в Canonical. Да, вроде и полезный инструмент, но представьте ситуацию, у вас мобильный 3G интернет и это окно об ошибках постоянно маячит перед глазами, в данной ситуации имеет смысл отключить данную службу, иногда это окно уж очень слишком часто вылазит когда его не ждешь, я лично отключил сразу же после установки так как иногда оно просто выводит своими появлениями когда его не ждешь. Отключать ли вам, вы должны сами решить для себя. Для отключения набираем команду:

sudo systemctl disable apport.service

Avahi — это демон который предназначен для обнаружения служб / компьютеров в домене .local. Вроде и удобная штука, но на практике, если у вас есть пара компьютеров в локальной сети, смысла держать этот демон активным нет, мoжете смело отключить:

sudo systemctl disable avahi-daemon.service

CGManager предназначен для управления cgroup позволяя непривилегированным пользователям получать доступ к cgroup и предотвращая выход из текущего cgroup в родительский не исключение и привилегированные приложения. Если трезво мыслить, он может пригодиться лишь при создании вложенных контейнеров LXC, если вы их не используете и не пользуетесь песочницей, в которой все это может пригодиться для запуска программ, смело отключайте:

sudo systemctl disable cgmanager.service

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

sudo systemctl disable colord.service

ModemManager — это интерфейс, позволяющий реализовать подключение к сети интернет используя мoдемы, каналы связи (2G/3G/4G/CDMA), способы соединения (RS232, USB, Bluetooth) и методoв управления (AT, QCDM, QMI, MBIM). Если у вас кабельный интернет и вы не планируете использовать модем, отключайте:

sudo systemctl disable ModemManager.service

Speech Dispatcher — это унифицированный API, который имеет предназначение для изменения порядка вызова синтезатора, так же позволяет предотвратить наложения звука при использовании нескольких приложений и воспроизведении в них звука одновременно. Если вы не планируете использовать синтезаторы речи, отключайте:

sudo systemctl disable speech-dispatcher.service

Whoopsie — эта служба имеет те же корни что и Apport, если вы ее отключили, так же стоит и поступить с Whoopsie. Прежде всего откройте конфиг  /etc/default/whoopsie здесь нам нужно изменить значение в параметре report_crashes замени true на false, сохраняем и после отключаем службу:

sudo systemctl disable whoopsie.service

Отключение компонентов программ и графической подсистемы

Если отключить графическую подсистему, то ваша Ubuntu будет использовать на 40%. Первое, о чем стоит вспомнить и что может существенно облегчить работу в ubuntu, это отключение онлайн-поиска, который в большей части никому не нужен вовсе. Чтобы отключить вы можете перейти в «Параметры системы -> Защита и приватность -> Поиск» и переключить «Отображать результаты поиска в интернете». Или же воспользоваться консольным способом и выполнить в терминале следующую команду:

gsettings set com.canonical.Unity.Lenses remote-content-search none

Стоит вспомнить и о композитном менеджере Compiz, который имеет апетит как у слона и кушает вашу память сильнее, чем все остальные процессы. Чтобы умерить его апетиты, вам потребуется установить CompizConfig Settings Manager(после установки запустить):

sudo apt-get install compizconfig-settings-manager
ccsm

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

  • «Команды», если вы для комбинаций клавиш не задаете никаких команд, можете смело отключать; в Unity он не используется и никаких побочных последствий не вызовет если отключить.
  • Enhanced Zoom Desktop — это подобия «Экранной лупы». Если вам не нужно подобное ПО, отключайте.
  • Desktop Wall — это всем известный куб Compiz в 2D. Если вы не планируете использовать куб, отключайте.
  • Viewport Switcher — этот плагин, предназначен для переключения рабочих столов. Он так же создает нагрузки и если для вас он не нужен, отключайте.
  • В группе «Эффекты» можно отключить плагин: Animations и «Проявление/исчезание окон». Я в данном разделе вовсе все отключил и работаю без анимаций и без лишних красот так как в этом нет необходимости.
  • Session Management — предназначен для сохранения/восстановления положений и размера окон в сессии в промежутках между входом/выходом пользователя). Если вам это не нужно, отключайте как и я поступил.
  • При отключении лишних мусорных плагинов лучше всего перейти в вкладку «Все» и отключать ненужно лишь листая вверх или вниз где все будет под рукой.

Отключаем Compiz плагины через ccsm

Возьмем к примеру приложение Network Manager. В списке плагинов данного приложения имеется ofono, в том случае если вы не используете мобильные соединения не пользуетесь модемами и у вас лишь кабельный интернет, можете смело отключать если вы не планируете пользоваться модемами. Чтобы отключить, в терминале выполните команду sudo gedit /etc/NetworkManager/NetworkManager.conf в строчке Plugin удалите ,ofono и сохраните изменения.

Рассмотрим более пристально плагины Network Manager

При запуске рабочего стола ubuntu, запускается много плагинов, о которых пользователь даже и не догадывается или не знает для чего они нужны, как он мог бы о них узнать если они в графическом интеpфейсе нигде не отображаются. Да, некоторые из них нужны, но не все и ниже мы обсудим те от которых можно избавиться.

Для отключения нужно сделать следующее, перейти в каталoг /etc/xdg/autostart:

cd /etc/xdg/autostart
sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' onboard-autostart.desktop 

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

sudo sed --in-place 's/NoDisplay=false/NoDisplay=true/g' onboard-autostart.desktop

Посмотрим, что можно отключить:

  • Если вы не пользуетесь GPG, то gnome-keyring-gpg можете отключать, все равно системные утилиты будут напрямую обращаться к связке ключей.
  • Indicator-bluetooth, если вы не используете и не планируете использование Bluetooth, отключайте.
  • Indicator-messages предназначен для отображение входящих сообщений в почтовых клиентах, если не пользуетесь почтовыми клиентами, можете отключать, если пользуетесь, соответственно не отключать.
  • Indicator-printers — отображает подключение принтеры, если у вас нет принтера, отключайте.
  • Onboard-autostart — предназначен для запуска экранной клавиатуры, если не используете, отключайте, я отключил не раздумывая так как не пользуюсь ей и не планирую.
  • Orca-autostart — это экранная лупа, тот же мусор что и клавиатура, если у вас зрение хорошее, отключайте.
  • Print-applet — плагин который отображает задания на печать, как я писал выше к indicator-printers, если нет принтера, отключайте.
  • Telepathy-indicator — плагин который отображает уведомления от этого клиента, если вы им не пользуетесь, отключайте.
  • Update-notifier — плагин для уведомлений об обновлениях. Если вам не лень самому запустить процесс обновления, можете отключать.
  • Zeitgeist-datahub — плагин который имеет роль коллектора который запускает разные собиратели информации по технологии Zeitgeist. Эта технология регистрирует активного пользователя в целях восстановления хронологии событий. Да, стоит напомнить, что эта технология очень хорошо связана с Unity, чтобы ее отключить придется выполнить дополнительные манипуляции.

В первую очередь нужно закрыть доступ записи в файл БД для процесса zeitgeist-daemon, откройте терминал CTRL+ALT+T и выполним следующую команду:

 chmod -rw ~/.local/share/zeitgeist/activity.sqlite

Проверим, что этот процесс туда писать не может:

zeitgeist-daemon --replace

Если вы выполнили все правильно, после выполнения команды выше, он должен поругается, что нет доступа к файлу БД, после можно отключать плагин.

Используем zRam для увеличения памяти

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

Для активации zRam, вам нужно установить следующие пакет:

 sudo apt-get install zram-config

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

 sudo swapon -s

Если все хорошо прошло, у вас на устройстве /dev/zram0 появится своп. По дефолту создается по одному на каждый процессор.

Вывод

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

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

Если у вас два гигабайта оперативной памяти, вместо нагрузочных приложений, например взяв офисный пакет LibreOffice Writer, вы можете заменить на более легкий AbiWord, вместо системного браузера который предустановлен по умолчанию Firefox, выберите более легкий, например Midori.

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

Как увеличить скорость работы Ubuntu — 10 советов

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

Preload

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

Для его установки введите следующую команду:

sudo apt-get install preload



sudo apt-get install preload

Если вы хотите отредактировать настройки Preload откройте его конфигурацию данной командой:

sudo gedit /etc/preload.conf



sudo gedit /etc/preload.conf

Если нужно посмотреть логи демона воспользуйтесь командой ниже:

sudo tail -f /var/log/preload.log



sudo tail -f /var/log/preload.log

Чистка кэша APT

Время от времени стоит чистить кэш APT. Для этого воспользуйтесь данной командой:

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

Обязательно почистите список автоматически запускаемых приложений. Чтобы это сделать, в Dash найдите приложение «Автоматически запускаемые приложения«:

Откроется окно со списком приложений, которые запускаются при загрузке Ubuntu:

Вот тут то вам и нужно отключить ненужные приложения.

Настройка Swappiness

Что бы проверить значение Swappiness воспользуйтесь следующей командой:

cat /proc/sys/vm/swappiness



cat /proc/sys/vm/swappiness

Стандартное значение — 60. Чтобы изменить его воспользуйтесь данной командой:

sudo gedit /etc/sysctl.conf



sudo gedit /etc/sysctl.conf

И вставьте в конец файла следующую команду:

Затем сохраните файл и перезагрузите систему.

Отключите спящий режим (не рекомендуеся)

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

sudo gedit /etc/initramfs-tools/conf.d/resume



sudo gedit /etc/initramfs-tools/conf.d/resume

И поставьте решётку (#) перед единственной строчкой в файле. Вот так:

Сохраните файл и перезагрузите систему.

Отключите меню у GRUB

Когда ваша Ubuntu загружается, то по умолчанию на 10 секунд появляется меню GRUB. Предлагаю отключить его. Для этого воспользуйтесь данной командой:

sudo gedit /etc/default/grub



sudo gedit /etc/default/grub

В открывшемся файле найдите параметр «GRUB_TIMEOUT» и присвойте ему значение «0». Вот так:

После чего сохраните файл, закройте его и воспользуйтесь командой:

Всё, теперь при загрузке не будет отображаться меню GRUB, однако вы можете вызвать его, зажав клавишу «Shift».

Воспользуйтесь ZRAM

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

Для установки ZRAM воспользуйтесь следующими командами:

sudo add-apt-repository ppa:shnatsel/zram
sudo apt-get update && sudo apt-get install zramswap-enabler



sudo add-apt-repository ppa:shnatsel/zram

sudo apt-get update && sudo apt-get install zramswap-enabler

Используйте все ядра процессора

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

sudo gedit /etc/init.d/rc



sudo gedit /etc/init.d/rc

После чего найдите следующую строчку:

И замените её на такую:

Сохраните файл и перезагрузитесь.

Отключите визуальные эффекты

Если у вас достаточно старый компьютер, то стоит отключить визуальные эффекты. Для этого установите Compizconfig Settings Manager следующей командой:

sudo apt-get install compizconfig-settings-manager



sudo apt-get install compizconfig-settings-manager

И в разделе «Эффекты» уберите все галочки.

Воспользуйтесь TMPFS

На раздел /tmp приходится очень много операций чтения/записи, поэтому рекомендуется перенести его в оперативную память (если, конечно, у вас её достаточно). Для этого откройте файл /etc/fstab:

И добавьте такую строчку в конец файла:

tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0



tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0

После этого сохраните файл и перезагрузитесь.

10 советов по ускорению Linux Ubuntu

Перед тем как перейдем к ускорению работы Ubuntu, разберемся, почему же система со временем становится медленнее. На это может быть несколько причин. У вас может быть слабый компьютер с обычной конфигурацией. Вы могли установить несколько приложений, которые «съедают» ресурсы во время запуска системы. По сути, причин — бесконечное множество.

Ниже перечислены разные хитрости, которые помогут немного ускорить Ubuntu. Это одни из лучших вариантов, которые можно предпринять для того, чтобы система работала более гладко и качественно. Можно последовать всем из представленных советов или только некоторым из них. При их использовании скорость Ubuntu заметно увеличивается.

Советы по ускорению Ubuntu

Я использовал эти хитрости с более старой версией Ubuntu, но, думаю, их можно применять и на других версиях, а также на других дистрибутивах Linux, которые основаны на Ubuntu: Linux Mint, Elementary OS Luna и т. д.

Уменьшите время загрузки экрана выбора.

Этот экран дает 10 секунд на то, чтобы выбрать операционную систему, войти в режим восстановления и т. д. Мне кажется, этого времени слишком много. Если следовать этой системе, нужно сидеть рядом с компьютером и нажать на нужную клавишу, чтобы как можно скорее войти в Ubuntu. Это занимает некоторое время, не так ли? Первая хитрость — изменить время появления этого экрана выбора. Если вам удобнее использовать инструмент графического интерфейса, можно ознакомиться с материалами, в которых рассказывается об изменении времени и порядка загрузки в Grub Customizer.

Все остальные могут просто ввести следующую команду, чтобы открыть настройки конфигурации экрана загрузки:

sudo gedit /etc/default/grub &

Нужно заменить GRUB_TIMEOUT=10 на GRUB_TIMEOUT=2. Тогда время загрузки будет 2 секунды. Лучше не выбирайте 0 секунд, ведь тогда вы не сможете выбирать между входом в ОС и в режим восстановления. После изменения конфигурации введите следующую команду, которая закрепит изменения:

sudo update-grub

Настройте автозапуск приложений.

Со временем вы начинаете устанавливать приложения. Некоторые из них запускаются каждый раз при загрузке ОС. Конечно, на запуск этих приложений тратятся ресурсы.

Итог: компьютер замедляется на большой промежуток времени после запуска. Зайдите в Unity Dash и найдите там Startup Applications:

Там вы увидите все приложения с автозагрузкой. Подумайте, нет ли там приложений, которые вам не нужны при запуске ОС? Их можно убрать из этого списка.

А если вы не хотите выключать автозагрузку? Например, если вы установили какое-нибудь приложение-индикатор для Ubuntu, вам будет нужно, чтобы оно автоматически запускалось при запуске компьютера.

В таком случае можно отложить запуск приложений. Тогда вы освободите некоторое количество ресурсов, которые используются при загрузке ОС, а через какое-то время нужные приложения будут запущены автоматически. На экране с предыдущей картинки нажмите кнопку «Edit» и измените время запуска с помощью опции sleep.

Например, если вы хотите отложить запуск индикатора Dropbox на, допустим, 20 секунд, нужно просто добавить в существующую команду вот это:

sleep 10;

Тогда команда dropbox start -i меняется на sleep 20; dropbox start -i. Это значит, что Dropbox теперь будет запускаться с 20-секундной задержкой. Аналогично можно изменить время старта других приложений.

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

Предварительная загрузка — фоновый процесс, который анализирует поведение пользователя и часто загружает приложения. Откройте терминал и введите следующую команду для установления предварительной загрузки:

sudo apt-get install preload

После установки перезапустите компьютер и забудьте об этом процессе. Он будет работать в фоновом режиме.

Выбирайте лучшие зеркала для обновлений.

Хорошо бы убедиться в том, что вы используете лучшие версии зеркал для обновления приложений. Хранилище софта «отзеркаливается» по всему миру в случае Ubuntu. Оптимизация состоит в том, чтобы использовать сервер, который находится ближе к вам территориально. Благодаря этому система будет быстрее обновляться, ведь сокращается время отправки пакетов к серверу.

В Software & Updates -> вкладка Ubuntu Software -> Download From выберите Other, а затем кликните на Select Best Server:

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

Для быстрых обновлений используйте apt-fast, а не apt-get.

Apt-fast — сценарий оболочки для apt-get. Он улучшает скорость обновления и скачивания пакетов, так как с ним пакеты скачиваются одновременно по нескольким связям. Если вы часто используете терминал и apt-get для установки и обновления этих пакетов, задумайтесь о том, чтобы попробовать применить apt-fast. Его можно установить с официального PPA при помощи следующих команд:

sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get install apt-fast

Уберите из apt-get обновлений ign, который относится к языкам.

Когда-нибудь обращали внимание на то, что выдает sudo apt-get обновление? Оно содержит три типа строк: hit, ign, get. Если взглянуть на строки ign, можно заметить, что они в основном связаны с переводом языков. Если вы пользуетесь приложениями и пакетами на одном языке, вам не нужен перевод на него же.

Если вы уберете из apt-get обновления, связанные с языком, то скорость apt-get немного увеличится. Для этого откройте такой файл:

sudo gedit /etc/apt/apt.conf.d/00aptitude

Добавьте в конце этого файла следующую строчку:

Acquire::Languages "none";

Уменьшите перегревание.

Перегревание — частая проблема, которая встречается у большинства компьютеров. Перегретый компьютер довольно медленно работает. На открытие программы уходят столетия, когда вентилятор процессора крутится со скоростью Усэйна Болта. Существует 2 способа, позволяющие уменьшить степень нагревания, а значит и повысить эффективность работы Ubuntu, оптимизация тоже будет лучше. Это TLP и CPUFREQ.

Для установки и использования TLP введите в терминал такие команды:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
sudo tlp start

После установки вам ничего не нужно делать. TLP работает в фоновом режиме.

Чтобы установить индикатор CPUFREQ, воспользуйтесь следующей командой:

sudo apt-get install indicator-cpufreq

Перезагрузите компьютер и включите режим сбережения энергии:

Настройте LibreOffice, чтобы эти программы работали быстрее.

Если вы часто пользуетесь офисными программами, тогда вы, может быть, захотите настроить LibreOffice ради ускорения работы. Здесь будет настраиваться память. Откройте LibreOffice, зайдите в Tools -> Options. Там из левого столбца выберите Memory и включите Systray Quickstarter, увеличьте распределение памяти.

По возможности пользуйтесь более легким интерфейсом.

Если вы пользуетесь обычным интерфейсом Unity или GNOME, возможно, вам будет интересно перейти на более простые интерфейсы вроде Xfce или LXDE.

Эти интерфейсы меньше используют ОЗУ и тратят мощность процессора. В них также есть программы небольшого размера, которые также позволяют ускорить работу Ubuntu.

Конечно, эти интерфейсы могут выглядеть не настолько современными, как Unity или GNOME. На такой вот компромисс вам придется пойти.

Используйте более легкие по размеру версии приложений.

Это скорее просто предложение, так этот вопрос зависит от личных предпочтений. Многие стандартные или популярные приложения тратят много ресурсов и могут не подходить для компьютера низкой мощности. В таком случае следует искать альтернативы таким приложениям. Например, вместо Ubuntu Software Center можно использовать AppGrid. Для установки пакетов подойдет Gdebi. Вместо LibreOffice Writer можно воспользоваться AbiWord.

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

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

В этом руководстве мы покажем вам, как ускорить работу Ubuntu 18.04, в настоящее время самой последней версии дистрибутива Linux от Canonical. Операционная система Ubuntu основана на ядре Linux. Оба являются бесплатным программным обеспечением с открытым исходным кодом, что означает, что используемый код доступен в Интернете для использования и просмотра другими пользователями. Canonical, основные разработчики Ubuntu, работают с сообществом Linux, чтобы обеспечить максимальную эффективность ОС.

Однако со временем ваш Ubuntu 18.04 установка может стать более медленной. Это может происходить из-за небольшого объема свободного дискового пространства или возможной нехватки виртуальной памяти из-за количества загруженных программ.

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

1.Перезагрузите компьютер.

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

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

2. Постоянно обновляйте Ubuntu

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

Для поиска и применения обновлений откройте Терминал Linux и введите:

  sudo apt-get update  

Чтобы проверить, доступно ли крупное обновление, откройте Терминал и выполните команду:

  sudo apt-get обновить  

Терминал предложит вам нажать «Y», чтобы продолжить.

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

3. Используйте облегченные альтернативы настольному компьютеру

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

К счастью, для Ubuntu доступны облегченные настольные альтернативы.Одна из самых известных — Lubuntu, основанная на ультраэффективной среде рабочего стола LX.

Для начала просто откройте Терминал и введите:

  sudo apt-get install lubuntu-desktop  

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

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

4. Используйте SSD

SSD (твердотельные накопители) используют флэш-память, такую ​​же, как и на USB-накопителях. Они обеспечивают гораздо более быстрый доступ и время записи, чем традиционные механические жесткие диски, в которых используются намагниченные диски.

SSD, как правило, стоят дороже за гигабайт, чем обычные жесткие диски, но сделают систему гораздо более эффективной, если вы готовы покрыть расходы. Если вы хотите купить SSD для самостоятельной установки, убедитесь, что у вас есть правильный размер для вашей машины (2.5 дюймов для портативных устройств, 3,5 дюйма для настольных компьютеров).

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

5. Обновите оперативную память

Общую скорость вашего ПК можно значительно улучшить, увеличив объем виртуальной памяти (ОЗУ). Ubuntu 18.04 требует не менее 2 ГБ ОЗУ для бесперебойной работы, хотя это не учитывает ресурсоемкие приложения, такие как видеоредакторы и некоторые игры.

Самое простое решение — установить больше ОЗУ. На вашем ПК есть определенное количество «слотов» RAM, в которые вы можете вставлять микросхемы. Обязательно выполните поиск вашей конкретной модели машины, чтобы узнать, какой тип оперативной памяти она использует, например DDR3.

Чтобы отобразить общий доступный объем ОЗУ в Ubuntu, введите в Teminal следующее:

  бесплатно –m  

Чтобы отобразить тип и скорость ОЗУ, используйте команду:

  sudo lshw -c memory  

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

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

6. Мониторинг запускаемых приложений

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

Ubuntu 18.04 имеет удобное графическое приложение под названием «Startup Applications».Запустите его из меню GNOME, чтобы просмотреть полный список. С помощью мыши щелкните отдельные приложения и выберите «Удалить», чтобы запретить запуск программы.

В Ubuntu 18.04 вы можете перечислить любые службы, запускаемые при запуске, открыв Терминал и выполнив команду:

  service --status-all  

Чтобы остановить работающую службу, введите команду:

  sudo service  stop  

Чтобы удалить существующую программу из Ubuntu, откройте Терминал и запустите:

  sudo apt-get remove <имя программы>  

7.Увеличьте пространство подкачки

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

Программа установки Ubuntu автоматически назначит выделенный раздел подкачки на жестком диске во время установки. Обычно этого достаточно, но вы можете увеличить его размер с помощью диспетчера дисков Ubuntu по умолчанию «GParted».

Для начала вставьте последнюю версию Ubuntu DVD / USB в свой компьютер и загрузитесь в «живую» среду. Откройте GParted из меню GNOME. Отсюда вы можете удалить существующий раздел подкачки и сжать основной.

Затем нажмите «Создать новый раздел», чтобы добавить новое, большее пространство подкачки. Если вам нужна помощь при использовании GParted, обязательно прочтите руководство. В разделе справки на веб-сайте Ubuntu также есть подробные инструкции.

Изменение размера жесткого диска опасно, если вы не являетесь опытным пользователем.Перед продолжением обязательно выполните полное резервное копирование ваших данных.

Как оптимизировать производительность Ubuntu

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

В Windows это обычно довольно просто: вы увеличиваете объем кеш-памяти и еженедельно выполняете дефрагментацию диска — заставляет ПК чувствовать, что он никогда не загружался, и каждый раз, когда вы это делаете; это как в первый раз все сначала.

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

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

preload — это демон адаптивного опережающего чтения.Он отслеживает приложения, запускаемые пользователями, и, анализируя эти данные, прогнозирует, какие приложения могут запускать пользователи, и загружает эти двоичные файлы и их зависимости в память для ускорения запуска.

Существует множество мнений о том, работает ли предварительная загрузка или нет, но большинство аргументов склоняются к тому, что программа будет полезна, если вы работаете с программами и приложениями, которые требуют частой перезагрузки из кеша (отсюда и название), и поэтому, если единственное, что у вас открыто весь день, — это Firefox или Chrome, вам, вероятно, лучше не устанавливать предзагрузку.

 Установить:

apt-get install preload

Конфиг:

/etc/preload.conf
 

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

Вы можете перейти по ссылке выше, чтобы узнать больше о Swapiness (или прочитать из снимка) и как это работает. Основной способ его изменения для среднего пользователя Linux:

 Изменить:

нано / и т.д. / sysctl.conf

Добавить:

vm.swappiness = 10
 

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

Менеджер загрузки

Я попытался использовать диспетчер запускаемых приложений по умолчанию, который предустановлен с Ubuntu 13.10, но оказалось, что единственное, что я мог сделать, — это добавить в список дополнительные элементы, а не удалять текущие.Пришлось искать альтернативу.

 Установить:

sudo apt-get install бомж
 

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

Повышение производительности Ubuntu

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

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

6 полезных приложений Linux для стресс-тестирования и оценки производительности процессора — Linux Hint

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

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

HardInfo (только Бенчмарк)

HardInfo — это графическая утилита для Linux, которая отображает информацию о различных аппаратных компонентах вашего ПК, таких как процессор, модули RAM, датчики, жесткие диски и так далее. Он также поддерживает экспорт подробного отчета о вашей системе в формате txt или html, чтобы вы могли поделиться им с друзьями, сравнить его с другими системами или использовать для отладки.

Помимо общей информации о вашей системе, HardInfo предоставляет несколько инструментов для тестирования производительности вашего оборудования. Что касается бенчмаркинга CPU, он включает пять методов: CPU Blowfish, CPU CryptoHash, CPU Fibonacci, CPU N-Queens и CPU Zlib.

Чтобы установить HardInfo в Ubuntu, выполните следующую команду:

$ sudo apt install hardinfo

Чтобы запустить тест ЦП, щелкните любой метод теста в разделе «Тесты», как показано на снимке экрана ниже.

По завершении теста HardInfo сообщит вам, лучше ли более низкий или более высокий балл. Он также отображает оценки процессоров других производителей для удобного сравнения.

Sysbench (только для тестирования)

Sysbench , как следует из названия, представляет собой приложение командной строки для запуска тестов производительности в вашей системе. Написанный на Lua, Sysbench в основном предназначен для тестирования баз данных. Однако он также включает опции для тестирования ЦП, памяти и пропускной способности файлов.

Чтобы установить Sysbench в Ubuntu, выполните следующую команду:

$ sudo apt установить sysbench

Чтобы запустить тест с помощью Sysbench, выполните следующую команду:

$ sysbench cpu —threads = 2 запустить

Где:

  • «cpu» — это тип теста
  • «потоков» — это количество потоков, созданных sysbench для выполнения многопоточного тестирования производительности

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

После завершения теста вы можете использовать переменную «событий в секунду» для измерения производительности вашего процессора. К сожалению, в отличие от HardInfo, Sysbench не предоставляет результаты тестов других моделей процессоров, производимых различными производителями оборудования. Если у вас несколько компьютеров, вы можете запустить тест на обоих, а затем сравнить числа. Чем больше количество событий в секунду, тем выше производительность процессора.

Стресс (только стресс-тест)

Stress — это простая утилита командной строки для проведения стресс-тестов ввода-вывода ЦП, памяти и дисков.

Вы можете установить стресс в Ubuntu, выполнив следующую команду:

$ sudo apt установить стресс

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

Вы можете запустить стресс-тест, выполнив приведенную ниже команду, где «cpu» означает количество потоков, используемых для выполнения теста. Чтобы остановить тест в любое время, закройте терминал или нажмите , чтобы остановить его.

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

Stress-ng (только стресс-тест)

Stress-ng — это обновленная реализация упомянутого выше инструмента Stress. Он гораздо более продвинутый и включает в себя сотни тестов, чтобы загрузить вашу систему.

Вы можете установить Stress-ng в Ubuntu, выполнив следующую команду:

$ sudo apt установить стресс-нг

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

Вы можете запустить стресс-тест, выполнив приведенную ниже команду, где «cpu» означает количество потоков, используемых для выполнения теста. Чтобы остановить тест в любое время, закройте терминал или нажмите , чтобы остановить его.

Выполнение указанной выше команды приведет к последовательному запуску около 70 тестов ЦП. Однако вы можете запустить все эти тесты параллельно, выполнив следующую команду:

$ стресс-нг — процессор 4 — все

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

S-tui (только стресс-тест)

S-tui — это монитор ресурсов ЦП, который использует графический интерфейс терминала для отображения данных и графиков.

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

S-tui можно установить в Ubuntu, выполнив следующую команду:

$ sudo apt install s-tui stress

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

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

7-Zip (только для теста)

7-Zip — это инструмент сжатия файлов, который может выполнять экстремальные уровни сжатия файлов и сохранять их в архивном формате 7z уменьшенного размера. 7-Zip поставляется со встроенной опцией для запуска тестов сжатия LZMA для измерения производительности процессора.

Чтобы установить 7-Zip в Ubuntu, выполните команду:

$ sudo apt install p7zip-full

Для запуска однопоточного теста используйте следующую команду:

Многопоточное тестирование можно запустить с помощью следующей команды:

Результаты выражаются в миллионах инструкций в секунду (MIPS).Вы можете сравнить эти результаты с другими моделями процессоров из здесь .

Заключение

Это некоторые из бесплатных утилит с открытым исходным кодом, которые могут запускать тесты CPU в вашей системе. В старые добрые времена запуск Flash Player в Firefox был отличным способом нагрузочного тестирования вашего процессора. Однако в наши дни все упомянутые выше приложения работают довольно хорошо.

Linux CPU Performance Monitoring Tutorial

Одна из основных задач системного администратора во время кризиса — найти узкие места в производительности работающей системы.Хотя в Linux доступно так много готовых инструментов для получения подробной информации о текущем состоянии системы, сделать вывод относительно производительности — непростая задача.

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

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

  • Монитор производительности системы

  • Найдите первопричину проблемы

  • Применение возможных исправлений для решения проблемы.

Я совершенно уверен, что большинство опытных системных администраторов, а также новички знают о команде, называемой «top».Команда Top может использоваться для получения текущего состояния работающей системы.

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

 вверху - 00:56:55 вверх 1 мин, 2 пользователя, средняя нагрузка: 0,15, 0,11, 0,05
Задачи: всего 74, 1 работает, 73 спит, 0 остановлено, 0 зомби
ЦП: 0,3% us, 0,3% sy, 0,0% ni, 99,3% id, 0,0% wa, 0,0% hi, 0,0% si, 0.0% ст
Mem: 499148k всего, 229116k использовано, 270032k свободно, 27520k буферов
Своп: всего 522236k, 0k используется, 522236k бесплатно, 67244k кэшировано

PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
996 убунту 20 0 73440 1676888 S 0,3 0,3 0: 00,06 sshd
1162 корень 20 0 17336 1248 944 R 0,3 0,3 0: 00,03 верх
1 корень 20 0 24200 2204 1360 S 0,0 0,4 0: 02,06 инициализации
2 корень 20 0 0 0 0 S 0,0 0,0 0: 00.00 kthreadd
3 корень 20 0 0 0 0 S 0.0 0.0 0: 00.34 ксофтиркд / 0
4 корень 20 0 0 0 0 S 0,0 0,0 0: 00.06 kworker / 0: 0
5 корень 0-20 0 0 0 S 0,0 0,0 0: 00.00 kworker / 0: 0H
6 корень 20 0 0 0 0 S 0,0 0,0 0: 00.00 kworker / u: 0
7 корень 0-20 0 0 0 S 0,0 0,0 0: 00,00 kworker / u: 0H
8 корень RT 0 0 0 0 S 0,0 0,0 0: 00.00 миграция / 0
9 корень 20 0 0 0 0 S 0.0 0.0 0: 00.00 rcu_bh
10 корень 20 0 0 0 0 S 0.0 0.0 0: 00.18 rcu_sched
11 корень RT 0 0 0 0 S 0,0 0,0 0: 00.00 сторожевой таймер / 0
12 корень 0-20 0 0 0 S 0,0 0,0 0: 00.00 процессор
 

Выше показан верхний вывод команды нормальной системы. Первая строка вывода дает вам статистику вашего процессора за последние пятнадцать минут. Он сообщает вам 3 различных значения загрузки процессора. Это последняя минута, Последние 5 минут, Последние 15 минут (это средние значения нагрузки). В наши дни существуют многоядерные процессоры, которые обычно используются для повышения вычислительной мощности.Одноядерный процессор в наши дни используется редко.

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

Если у вас двухъядерный четырехъядерный процессор, вам нужно разделить каждый из этих трех средних значений равно 8. Таким образом, если средняя загрузка за последнюю минуту равна 8 на двухъядерном процессоре, то правильным значением будет 8/8 = 1.

Теперь обратите внимание на тот факт, что загрузка отображается среднее значение для системы, а не для процессора.Всегда возможно иметь нагрузку 1.0, даже когда процессор ничего не делает. Это нормальное состояние, когда процессор ожидает ввода-вывода.

Связано: Linux System IO Monitoring

При мониторинге нагрузки нужно понимать, что это не всегда плохо, когда среднее значение нагрузки выше нормальных значений. Это зависит от типа процесса, запущенного в системе.

Если процесс слишком загружен ЦП, другие процессы должны ждать…Но если процесс интенсивен вводом / выводом, то во время ожидания ввода / вывода (время, когда процессор ожидает завершения операций ввода / вывода), CPU может обработать другой процесс.

Таким образом, тип процесса, запущенного в вашей системе, играет важную роль в выводе о загрузке системы.

 корень @ ubuntu2: ~ # nproc
1
 

Приведенная выше команда nproc даст количество ядер процессора в вашей системе Linux.Поскольку команда top дает вам только сводку по всем ядрам процессора в системе, лучше разделить средние значения top с выводом nproc, чтобы получить точное значение загрузки вашей системы.

Вы также можете получить подробную информацию о каждом ядре процессора с помощью верхней командной консоли. Нажмите 1 , чтобы просмотреть статистику по каждому ядру. Пример вывода показан ниже.

 вверху - 02:58:48 до 94 дней, 12:15, 1 пользователь, средняя загрузка: 0,31, 0,29, 0,24
Задачи: всего 173, 1 запущен, 172 спит, 0 остановлен, 0 зомби
Cpu0: 0.0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
ЦП1: 0,0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu2: 0,0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu3: 0,0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu4: 0,0% us, 0,3% sy, 0,0% ni, 99,7% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu5: 0,0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu6: 0,0% us, 0,0% sy, 0,0% ni, 100.0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Cpu7: 0,0% us, 0,0% sy, 0,0% ni, 100,0% id, 0,0% wa, 0,0% hi, 0,0% si, 0,0% st
Mem: всего 1011048k, использовано 949720k, свободно 61328k, буферов 9176k
Своп: всего 524284k, 98804k используется, 425480k бесплатно, 103884k кэшировано
 

В приведенных выше выходных данных показаны разные значения. Посмотрим, что означает каждый из них.

  • us: Показывает рабочую нагрузку процессора, вызванную процессами, выполняемыми обычными пользователями.Другими словами, это нагрузка, вызванная приложениями.
  • sy: Указывает на нагрузку, создаваемую системой. Означает, что это в большинстве случаев выполняется ядром Linux. Обычно он остается низким, но становится немного большим для определенных задач, в которых задействовано ядро.
  • ni: Это относится к количеству процессов, которые выполняются с измененным значением nice. Если вы новичок в хороших ценностях, обратитесь к статье ниже. \

Чтение: Приоритет процесса и хорошее значение в Linux

  • id: Это указывает количество времени, в течение которого ЦП ничего не делает.Более высокое значение id означает, что ЦП большую часть времени бездействует.
  • wa: Время, в течение которого ваш ЦП ожидает завершения операций ввода-вывода.
  • га: Это относится к аппаратным прерываниям. Это становится высоким, когда у вас более интенсивное использование диска или сети и т. Д.
  • si: Это прерывания, созданные программным обеспечением. Обычно эти значения остаются очень низкими.
  • st: Это относится к виртуальным машинам, запущенным в вашей системе.Когда виртуальным машинам нужен ЦП, они обычно берут его с хост-машины. Если у вас слишком много виртуальных машин, работающих на вашем сервере, и у вас это st значение выше, неплохо отключить несколько виртуальных хостов.

Большинство процессоров, используемых в наши дни на серверах, должны обрабатывать несколько процессов одновременно. Поскольку процессор (ну, ядро ​​процессора) может делать только одну вещь за раз, процессор должен ставить в очередь те процессы, которые необходимо запустить.

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

 вверху - 15:08:41 до 95 дней, 25 мин, 1 пользователь, средняя нагрузка: 7,12, 6,50, 5,40
Задачи: всего 172, 2 запущенных, 170 спящих, 0 остановленных, 0 зомби
ЦП: 3,9% us, 0,2% sy, 0,0% ni, 95,8% id, 0,1% wa, 0,0% hi, 0,0% si, 0,0% st
Mem: всего 1011048k, занято 980280k, свободно 30768k, буферов 10016k
Своп: 524284k всего, 103676k используется, 420608k бесплатно, 130100k кэшировано
 

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

Как я уже говорил, система Linux способна запускать несколько процессов одновременно. Хотя мы говорим в то же время, это только один процесс за один раз. Другие подходящие процессы должны дождаться освобождения ресурсов для обработки. Это происходит слишком быстро, и мы чувствуем, что процессор выполняет несколько задач одновременно.Но да, многоядерный процессор, например 8-ядерный процессор, может выполнять 8 различных задач одновременно (поскольку каждая из них обрабатывается разными ядрами).

Показанное среднее значение нагрузки указывает количество процессов в очереди, ожидающих запуска (это называется очередью выполнения). В ранее показанных выходных данных вы могли видеть, что у нас есть средняя загрузка 7,0, 6,50, 5,40 .

Это означает, что в течение последней минуты у нас было среднее значение 7.0 процессов в очереди выполнения, за последние 5 минут 6,50 процессов в очереди выполнения, а за последние 15 минут в очереди выполнения было в среднем 5,40 процессов.

Теперь вопрос в том, как проверить текущую очередь выполнения в системе Linux. Мы увидим это через некоторое время. Здесь важно понимать, что каждый процесс попадает в очередь выполнения до того, как его обработает процессор. Как мы обсуждали ранее, каждое ядро ​​имеет свою собственную очередь выполнения (это причина, по которой мы делим вывод средней нагрузки на общее количество выходных данных ядра процессора от команды nproc).Когда процесс попадает в очередь выполнения, он может иметь два возможных состояния. Он может быть запущен или заблокирован.

Задача ядра — выбрать следующий процесс для запуска на основе его приоритета.

Обратите внимание на тот факт, что показанные средние значения нагрузки являются процессами в очереди выполнения (независимо от того, находится ли она в рабочем или заблокированном состоянии).

Инструмент VMSTAT можно использовать для проверки общего количества процессы в очереди выполнения.Давайте посмотрим на пример вывода инструмента vmstat.

 корень @ ubuntu1: ~ # vmstat 1
procs ----------- память ---------- --- swap-- ----- io ---- -system-- ---- cpu-- -
r b swpd бесплатный кеш баффов si so bi bo in cs us sy id wa
1 0 0 315616 25852 56040 0 0 0 0 15 17 0 0100 0
0 0 0 315616 25852 56040 0 0 0 0 19 21 0 0100 0
0 0 0 315616 25852 56040 0 0 0 0 15 17 0 0100 0
0 0 0 315616 25852 56040 0 0 0 0 18 21 0 0100 0
0 0 0 315616 25852 56040 0 0 0 0 13 13 0 0100 0
 

Аргумент 1, который я дал в приведенной выше команде vmstat, будет запрашивать его обновление каждые 1 секунду.На выходе отображается несколько столбцов. Первые два столбца с «r» и «b» относятся к количеству процессов в очереди выполнения, находящихся в рабочем или заблокированном состоянии.

Как мы обсуждали ранее, Linux — это многозадачная операционная система. Это означает, что ядру приходится переключаться между процессами много раз. Хотя это выглядит просто, процессор должен выполнять несколько задач при выполнении нескольких задач. Для одновременного запуска нескольких процессов (что очень нормально) процессор должен выполнять следующие действия.

  • Процессору необходимо сохранить всю контекстную информацию текущего запущенного процесса перед переключением на выполнение другого процесса. Это очень необходимо, так как процессор должен снова вернуться к этому процессу позже.
  • Процессор должен получить контекстную информацию нового процесса для обработки.

Связано: Учебное пособие по администрированию и мониторингу процессов Linux

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

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

Как мы обсуждали ранее, большинство современных процессоров являются многоядерными.Что означает наличие нескольких процессоров внутри (в ядре Linux ядра — это отдельные процессоры). Обычно процесс перемещается между разными процессорами с течением времени в зависимости от того, как вы установили привязку. По умолчанию процесс использует все отдельные процессоры (ядра). Хотя несколько процессоров улучшают общую производительность системы, иногда это влияет на производительность нескольких процессов. Это связано с тем, что когда процесс переключается с одного ядра на другое, новый процессор должен очистить свой кэш.А теперь представьте, что если ваш процесс запущен в 8-ядерной системе, он будет много раз очищать кеш за время своего существования. Что означает влияние на производительность.

Чтобы предотвратить слишком большое количество сбросов кеша, вы можете настроить процесс для выполнения на одном ядре. Ядра считаются от 0 до 7, если у вас 8-ядерный процессор. Давайте посмотрим на привязку пары процессов по умолчанию на моем сервере.

Проверить сродство процесса можно с помощью команды taskset .

 [root @ www ~] # набор задач -c -p 6389
Текущий список соответствия pid 6389: 0-7
[root @ www ~] # набор задач -c -p 6580
Текущий список соответствия pid 6580: 0-7
 

Ну, показанные выше PID — это идентификаторы процессов mysql и nginx (-p 6389 и -p 6580). Поскольку я не установил привязку ни для одного из этих процессов, она имеет привязку по умолчанию 0-7. Это означает, что он будет работать на всех 8 ядрах в течение своего срока службы. Вы можете установить соответствие, используя ту же команду, что и показано ниже.

 [root @ www ~] # набор задач -c 0,1 -p 6389 

Приведенная выше команда привяжет идентификатор процесса 6389 к ядрам 0 и 1 (в 8-ядерном процессоре счет начинается с 0 до 7).

Как мы уже обсуждали, переключение контекста полезно, потому что оно позволяет ядру Linux выделять долю времени для каждого процесса. После того как процесс завершит выполнение в течение разрешенного срока, процессор возьмет другой процесс из очереди выполнения для обработки. Это управляется периодическим прерыванием таймера. Количество прерываний таймера может варьироваться в зависимости от версии ядра и архитектуры. / proc — это место, где можно найти ваше текущее количество прерываний.

Связано: файловая система / proc в Linux Учебник

Поскольку значения, которые вы найдете в / proc, динамически заполняются ядром, вам может потребоваться посмотреть это несколько раз (каждую секунду) . Чтобы узнать общее количество прерываний таймера, вам нужно заглянуть в файл ниже и ввести с помощью команды grep «timer »

 root @ ubuntu1: ~ # cat / proc / interrupts | grep timer
0: 49 IO-APIC-крайний таймер
LOC: 139261 Прерывания местного таймера
 

Это текущие подлинные прерывания таймера в вашей системе.В многоядерной системе вы сможете увидеть прерывания таймера для каждого ядра процессора в этом файле. Создайте небольшой скрипт для отслеживания прерываний таймера в этом файле каждую секунду, чтобы вы могли получать значение прерывания таймера в секунду. Здесь нам нужно понять кое-что очень важное. Значение, которое вы получаете из этого файла (/ proc / interrupts), представляет собой настоящие прерывания таймера, запускаемые ядром для переключения процессов …

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

Теперь, как проверить общее количество переключателей контекста в вашей системе. Это можно сделать, запустив команду vmstat с интервалом в 1 секунду, как показано ниже.

 корень @ ubuntu1: ~ # vmstat 1
procs ----------- память ---------- --- swap-- ----- io ---- -system-- ---- cpu-- -
r b swpd бесплатный кеш баффов si so bi bo in cs us sy id wa
1 0 0 235060 44896 104604 0 0 4 0 20 25 0 0100 0
0 0 0 235052 44896 104604 0 0 0 0 18 41 0 0100 0
0 0 0 235052 44896 104604 0 0 0 0 15 20 0 0100 0
0 0 0 235052 44896 104604 0 0 0 0 32 24 0 1 99 0
 

Столбец cs , показанный в выходных данных vmstat, показывает общее количество переключений контекста в секунду.Также в столбце в столбце показано количество прерываний в секунду (я говорю «ну в секунду», потому что мы запустили vmstat для обновления каждую секунду с 1 аргументом).

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

Это можно сделать с помощью команды top . В выходных данных команды top по умолчанию эти сведения не отображаются. Чтобы просмотреть эту информацию, вам нужно будет нажать клавишу f в командном интерфейсе вверху , а затем нажать j (нажмите клавишу ввода после того, как вы нажали j ). Теперь вывод покажет вам подробную информацию о процессе и о том, на каком процессоре он работает.Пример вывода показан ниже.

 вверху - 04:24:03 вверх 96 дней, 13:41, 1 пользователь, средняя загрузка: 0,11, 0,14, 0,15
Задачи: всего 173, 1 запущен, 172 спит, 0 остановлен, 0 зомби
ЦП: 7,1% us, 0,2% sy, 0,0% ni, 88,4% id, 0,1% wa, 0,0% hi, 0,0% si, 4,2% st
Mem: всего 1011048k, использовано 950984k, свободно 60064k, буферов 9320k
Своп: всего 524284k, использовано 113160k, свободно 411124k, кэшированных 96420k

PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + P COMMAND
12426 nginx 20 0 345 м 47 м 29 м S 77.6 4,8 40: 24,92 7 php-fpm
6685 mysql 20 0 3633m 34m 2932 S 4.3 3.5 63: 12.91 4 mysqld
19014 корень 20 0 15084 1188 856 R 1.3 0.1 0: 01.20 4 верх
9 корень 20 0 0 0 0 S 1.0 0.0 129: 42.53 1 rcu_sched
6349 memcache 20 0 355 м 12 м 224 S 0,3 1,2 9: 34,82 6 memcached
1 корень 20 0 19404 212 36 S 0,0 0,0 0: 20,64 3 init
2 корень 20 0 0 0 0 S 0,0 0,0 0: 30,02 4 kthreadd
3 корень 20 0 0 0 0 S 0,0 0,0 0:12.45 0 тысяч рублей / 0
 

Столбец p в выходных данных показывает номер ядра процессора, на котором в данный момент выполняется процесс. Наблюдая за этим в течение нескольких минут, вы поймете, что pid переключает ядра процессора между ними. Вы также можете проверить, работает ли ваш pid, для которого вы установили привязку, только на этом конкретном ядре (помните, что подсчет ядер начинается с 0)

Теперь, хотя мы обсуждали переключение контекста, мы не обсуждали, как проверить какой процесс выполняет много переключений контекста.Выявление этого может быть очень полезным при поиске процесса, вызывающего проблемы с производительностью в системе. Для этого есть очень хороший инструмент. Он называется pidstat . Инструмент доступен как часть пакета sysstat . Пользователям Ubuntu, возможно, придется установить sysstat для получения этой команды. Пример вывода показан ниже.

 корень @ ubuntu1: ~ # pidstat -w
Linux 3.8.0-29-generic (ubuntu1) 11.03.2014 _x86_64_ (1 ЦП)

09:32:48 AM PID cswch / s nvcswch / s Command
09:32:48 1 0.03 0,05 инициализации
09:32:48 2 0,01 0,00 kthreadd
09:32:48 3 2.20 0.00 ksoftirqd / 0
09:32:48 AM 5 0.00 0.00 kworker / 0: 0H
09:32:48 6 0.00 0.00 kworker / u: 0
09:32:48 AM 7 0.00 0.00 kworker / u: 0H
09:32:48 8 0.00 0.00 миграция / 0
09:32:48 9 0.00 0.00 rcu_bh
09:32:48 10 2.99 0.00 rcu_sched
 

-w Опция, которую я использовал с pidstat, покажет вам детали переключения контекста для всех процессов в системе. pidstat Справочная страница очень хорошо объясняет поля. Объяснение вывода на странице pidstat показано ниже.

cswch / s : общее количество произвольных переключений контекста, выполняемых задачей за секунду. Добровольное переключение контекста происходит, когда задача блокируется из-за того, что ей требуется ресурс, который недоступен.

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

Мониторинг производительности ЦП охватывает все концепции, которые мы обсуждали до сих пор. Некоторые из них выделены для простоты.

  • Очередь выполнения
  • Скорость переключения контекста
  • Использование ЦП в зависимости от системы и пользователя
  • Время простоя, затрачиваемое ЦП

Подходит для системы с 2-3 процессами на процессор (означает 2-3 процесса в очередь выполнения на ядро ​​процессора.). Это означает, что для 8-ядерного процессора средняя загрузка от 24 до 25 является приемлемой, если загрузка ЦП, показанная командой vmstat, остается в диапазоне указанных ниже процентных значений.

  • от 60 до 70 процентов времени пользователя
  • от 30 до 40 процентов системного времени
  • от 5 до 10 процентов времени простоя.

Приведенные выше сведения можно получить из вывода vmstat. Позвольте мне запустить vmstat с интервалом в 1 секунду.

 корень @ ubuntu1: ~ # vmstat 1
procs ----------- память ---------- --- swap-- ----- io ---- -system-- ---- cpu-- -
r b swpd бесплатный кеш баффов si so bi bo in cs us sy id wa
0 0 0 166600 45256 169068 0 0 5 2 20 26 0 0100 0
0 0 0 166592 45256 169068 0 0 0 0 23 47 0 0100 0
0 0 0 166592 45256 169068 0 0 0 0 14 18 0 0100 0
0 0 0 166592 45256 169068 0 0 0 0 38 30 1 0 99 0
0 0 0 166592 45256 169068 0 0 0 0 27 18 0 0100 0
0 0 0 166592 45256 169068 0 0 0 0 23 40 0 ​​0100 0
 

Поскольку моя система ничего не делает (нет процесса в очереди выполнения), вы можете видеть, что процессор тратит 0 процентов времени в пользовательском разделе (показано в столбце us ), 0 процентов времени в системном разделе (показано в столбце sy ).Большее количество переключений контекста можно игнорировать, если использование ЦП в секциях us, , sy, и id сбалансировано согласно ранее упомянутым процентным уровням.

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

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

 [root @ www ~] # mpstat -P ALL
Linux 3.11.6-x86_64 12.03.2014 _x86_64_ (8 ЦП)
05:31:41 AM CPU% usr% nice% sys% iowait% irq% soft% steal% guest% idle
05:31:41 все 3,26 0,00 0,11 0,74 0,00 0,00 0,54 0,00 95.34
05:31:41 0 1,12 0,00 0,16 1,41 0,00 0,00 0,39 0,00 96,93
05:31:41 1 10,43 0,00 0,17 0,99 0,00 0,01 1,22 0,00 87,17
05:31:41 2 7,47 0,00 0,19 0,76 0,00 0,01 0,89 0,00 90,69
05:31:41 3 2,99 0,00 0,11 0,65 0,00 0,00 0,58 0,00 95,67
05:31:41 4 1,34 0,00 0,07 0,58 0,00 0,00 0,40 0,00 97,61
05:31:41 5 0,88 0,00 0,06 0,54 0.00 0,00 0,31 0,00 98,20
05:31:41 6 0,91 0,00 0,05 0,52 0,00 0,00 0,28 0,00 98,23
05:31:41 7 0,92 0,00 0,05 0,49 0,00 0,00 0,27 0,00 98,27
 

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

  • Если столбец us в vmstat идет слишком высоко на выходе без аналогичного уровня переключения контекста, то возможно, что один процесс использует процессор в течение значительно большего времени
  • Если столбец wa также имеет слишком высокое значение в то же время (когда us выше, а cs существенно низко), это означает, что процесс, который заставил значение us оставаться высоким, делает некоторые тяжелые / о эксплуатации.
  • Случай, когда у вас большее количество прерываний (показано в столбце в vmstat) и существенно меньшее количество переключателей контекста (показано cs ), может указывать на то, что конкретное приложение (которое может быть однопоточным) отправляет слишком много аппаратных запросов.

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

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

Повышение производительности — ArchWiki

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

Основы

Знай свою систему

Лучший способ настроить систему — определить узкие места или подсистемы, ограничивающие общую скорость. Системные характеристики могут помочь идентифицировать их.

  • Если компьютер замедляется при одновременном запуске больших приложений (таких как LibreOffice и Firefox), проверьте, достаточно ли объема оперативной памяти. Используйте следующую команду и проверьте столбец «Доступно»:
 $ free -h
 
  • Если время загрузки медленное и приложения долго загружаются при первом запуске (только), то, скорее всего, виноват жесткий диск.Скорость жесткого диска можно измерить с помощью команды hdparm :

Примечание. hdparm указывает только чистую скорость чтения жесткого диска и не является допустимым эталоном. Однако значение выше 40 МБ / с (в режиме ожидания) приемлемо для средней системы.

 # hdparm -t / dev / sdX
 
  • Если загрузка ЦП постоянно высока даже при достаточном количестве доступной оперативной памяти, попробуйте снизить загрузку ЦП, отключив запущенные демоны и / или процессы. Это можно отслеживать несколькими способами, например, с помощью htop, pstree или любого другого инструмента системного мониторинга:
 $ htop
 
  • Если приложения, использующие прямой рендеринг, работают медленно (т.е.е те, которые используют графический процессор (например, видеоплееры, игры или даже оконный менеджер), то повышение производительности графического процессора должно помочь. Первый шаг — проверить, действительно ли включен прямой рендеринг. На это указывает команда glxinfo , часть пакета mesa-demos:
 $ glxinfo | grep "прямой рендеринг" 
 прямой рендеринг: Да
 
  • При работе в среде рабочего стола отключение (неиспользуемых) визуальных эффектов рабочего стола может снизить использование графического процессора. Используйте более легкую среду или создайте настраиваемую среду, если текущая не соответствует аппаратным и / или личным требованиям.

Бенчмаркинг

Эффекты оптимизации часто трудно оценить. Однако их можно измерить с помощью инструментов тестирования.

Устройства хранения

Несколько аппаратных путей

Эта статья или раздел требует улучшения языка, синтаксиса вики или стиля. См. Справку: стиль.

Внутренний аппаратный путь — это способ подключения устройства хранения к материнской плате. Существуют разные способы подключения к материнской плате, такие как TCP / IP через сетевую карту, подключение напрямую через PCIe / PCI, Firewire, Raid Card, USB и т. Д.Распределяя устройства хранения по этим множественным точкам подключения, вы максимально увеличиваете возможности материнской платы, например, 6 жестких дисков, подключенных через USB, будут намного медленнее, чем 3 через USB и 3 через Firewire. Причина в том, что каждый путь входа в материнскую плату похож на канал, и существует установленный предел того, сколько каналов может пройти через этот канал в любой момент. Хорошая новость в том, что на материнской плате обычно несколько трубок.

Еще примеры

  1. Непосредственно к материнской плате через PCI / PCIe / ATA
  2. Использование внешнего корпуса для размещения диска через USB / Firewire
  3. Превратите устройство в сетевое запоминающее устройство, подключившись через TCP / IP

Обратите внимание, что если у вас есть 2 порта USB на передней панели устройства и 4 порта USB на задней панели, и у вас есть 4 диска, оно Вероятно, быстрее всего будет поставить 2 спереди / 2 сзади, чем 3 сзади / 1 спереди.Это связано с тем, что внутри передние порты, вероятно, являются отдельным корневым концентратором, чем задние, что означает, что вы можете отправлять вдвое больше данных, используя оба, чем просто 1. Используйте следующие команды, чтобы определить различные пути на вашем компьютере.

 Дерево устройств USB 
 $ lsusb -t 
 Дерево устройств PCI 
 $ lspci -tv 

Разбиение на разделы

Убедитесь, что ваши разделы правильно выровнены.

Несколько приводов

Если у вас есть несколько дисков, вы можете настроить их как программный RAID для серьезного повышения скорости.

Создание свопа на отдельном диске также может немного помочь, особенно если ваша машина часто меняет местами.

Разметка на HDD

При использовании обычного вращающегося жесткого диска структура разделов может повлиять на производительность системы. Секторы в начале диска (ближе к внешней стороне диска) быстрее, чем в конце. Кроме того, меньший раздел требует меньше движений от головки диска и, следовательно, ускоряет операции с диском. Поэтому рекомендуется создать небольшой раздел (10 ГБ, более или менее в зависимости от ваших потребностей) только для вашей системы, как можно ближе к началу диска.Остальные данные (изображения, видео) следует хранить в отдельном разделе, и это обычно достигается путем отделения домашнего каталога ( / home / , пользователь , ) от системы (/).

Выбор и настройка файловой системы

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

Варианты крепления

Известно, что опция noatime улучшает производительность файловой системы.

Другие параметры монтирования зависят от файловой системы, поэтому см. Соответствующие статьи для файловых систем:

Reiserfs

Параметр data = writeback mount увеличивает скорость, но может повредить данные при отключении питания. Опция монтирования notail увеличивает пространство, используемое файловой системой, примерно на 5%, но также улучшает общую скорость. Вы также можете уменьшить нагрузку на диск, разместив журнал и данные на разных дисках.Это делается при создании файловой системы:

 # mkreiserfs –j / dev / sd  a1  / dev / sd  b1 
 

Замените / dev / sd a1 разделом, зарезервированным для журнала, а / dev / sd b1 разделом для данных. Вы можете узнать больше о reiserfs из этой статьи.

Настройка параметров ядра

Существует несколько ключевых параметров, влияющих на производительность блочных устройств, см. Sysctl # Virtual memory для получения дополнительной информации.

Планировщики ввода / вывода

Справочная информация

Планировщик ввода / вывода (I / O) — это компонент ядра, который решает, в каком порядке операции блочного ввода / вывода отправляются на устройства хранения. Здесь полезно напомнить некоторые спецификации двух основных типов дисков, поскольку цель планировщика ввода-вывода — оптимизировать способ обработки запросов на чтение:

  • Жесткий диск имеет вращающиеся диски и головку, которая физически перемещается в нужное место.Следовательно, случайная задержка довольно высока и составляет от 3 до 12 мс (будь то высокопроизводительный серверный накопитель или накопитель для портативного компьютера и в обход буфера записи контроллера диска), тогда как последовательный доступ обеспечивает гораздо более высокую пропускную способность. Типичная пропускная способность жесткого диска составляет около 200 операций ввода-вывода в секунду (IOPS) .
  • SSD не имеет движущихся частей, произвольный доступ выполняется так же быстро, как и последовательный, обычно менее 0,1 мс, и он может обрабатывать несколько одновременных запросов. Типичная пропускная способность SSD превышает 10 000 операций ввода-вывода в секунду, что больше, чем требуется при обычных рабочих нагрузках.

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

Алгоритмы планирования

Одним из способов повышения пропускной способности является линеаризация доступа: упорядочивая ожидающие запросы по их логическим адресам и группируя самые близкие из них.Исторически это был первый планировщик ввода-вывода Linux, названный лифтом.

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

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

Полностью справедливая организация очередей (CFQ) подходит к проблеме иначе, выделяя временной интервал и количество разрешенных запросов по очереди в зависимости от приоритета процесса, отправляющего их. Он поддерживает cgroup, которая позволяет зарезервировать некоторый объем ввода-вывода для определенного набора процессов. Это особенно полезно для общего и облачного хостинга: пользователи, которые заплатили за определенное количество операций ввода-вывода в секунду, хотят получать свою долю, когда это необходимо.Кроме того, он простаивает в конце синхронного ввода-вывода, ожидая других соседних операций, переняв эту функцию у упреждающего планировщика и внося некоторые улучшения. Планировщики с упреждением и лифт были выведены из эксплуатации из ядра Linux и заменены более продвинутыми альтернативами, представленными выше.

Бюджетная организация очереди (BFQ) основана на коде CFQ и содержит некоторые усовершенствования. Он не предоставляет диск каждому процессу на фиксированный отрезок времени, но назначает процессу «бюджет», измеряемый в количестве секторов, и использует эвристику.Это относительно сложный планировщик, он может быть более адаптирован для вращающихся дисков и медленных твердотельных накопителей, поскольку его высокие накладные расходы на операцию, особенно если они связаны с медленным процессором, могут замедлять работу быстрых устройств. Цель BFQ в персональных системах состоит в том, чтобы при интерактивных задачах запоминающее устройство реагировало практически так же, как если бы оно простаивало. В своей конфигурации по умолчанию он ориентирован на обеспечение наименьшей задержки, а не на достижение максимальной пропускной способности.

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

Планировщики ввода-вывода ядра

Хотя некоторые из ранних алгоритмов уже списаны, официальное ядро ​​Linux поддерживает ряд планировщиков ввода-вывода, которые можно разделить на две категории:

  • Планировщики нескольких очередей по умолчанию доступны в ядре.Механизм организации очередей блочного ввода-вывода с несколькими очередями (blk-mq) отображает запросы ввода-вывода на несколько очередей, задачи распределяются по потокам и, следовательно, ядрам ЦП. В рамках этой системы доступны следующие планировщики:
    • Нет , где не применяется алгоритм организации очереди.
    • mq-deadline , адаптация планировщика дедлайна (см. Ниже) для многопоточности.
    • Кибер
    • BFQ
  • Планировщики с одной очередью являются устаревшими планировщиками:
    • NOOP — это простейший планировщик, он вставляет все входящие запросы ввода-вывода в простую очередь FIFO и реализует объединение запросов.В этом алгоритме нет переупорядочивания запроса на основе номера сектора. Следовательно, его можно использовать, если упорядочивание выполняется на другом уровне, например на уровне устройства, или, если это не имеет значения, например, для SSD.
    • Срок
    • CFQ
Изменение планировщика ввода / вывода

Примечание:

  • Наилучший выбор планировщика зависит как от устройства, так и от точного характера рабочей нагрузки. Кроме того, пропускная способность в МБ / с — не единственный показатель производительности: крайний срок или справедливость ухудшают общую пропускную способность, но могут улучшить скорость реакции системы.Сравнительный анализ может быть полезным для определения производительности каждого планировщика ввода-вывода.

Чтобы перечислить доступные планировщики для устройства и активного планировщика (в скобках):

 $ cat / sys / block /   sda   / очередь / планировщик 
 mq-deadline kyber [bfq] нет
 

Чтобы вывести список доступных планировщиков для всех устройств:

 $ grep "" / sys / block /  *  / очередь / планировщик 
 / sys / block / pktcdvd0 / queue / scheduler: нет
/ sys / block / sda / queue / scheduler: mq-deadline kyber [bfq] нет
/ sys / block / sr0 / queue / scheduler: [mq-deadline] kyber bfq нет
 

Чтобы изменить активный планировщик ввода-вывода на bfq для устройства sda , используйте:

 # echo   bfq  > / sys / block /   sda   / очередь / планировщик
 

Процесс изменения планировщика ввода-вывода, в зависимости от того, вращается диск или нет, может быть автоматизирован и сохраняться при перезагрузках.Например, приведенное ниже правило udev устанавливает для планировщика значение none для NVMe, mq-deadline для SSD / eMMC и bfq для вращающихся дисков:

 /etc/udev/rules.d/60-ioschedulers.rules 
 # установить планировщик для NVMe
ACTION == "добавить | изменить", ЯДРО == "nvme [0-9] n [0-9]", ATTR {queue / scheduler} = "none"
# установить планировщик для SSD и eMMC
ACTION == "добавить | изменить", ЯДРО == "sd [az] | mmcblk [0-9] *", ATTR {queue / rotational} == "0", ATTR {queue / scheduler} = "mq-deadline "
# установить планировщик для вращения дисков
ACTION == "добавить | изменить", KERNEL == "sd [a-z]", ATTR {queue / rotational} == "1", ATTR {queue / scheduler} = "bfq" 

Перезагрузите или принудительно выполните udev # Загрузка новых правил.

Настройка планировщика ввода / вывода

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

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

 $ ls / sys / block /   sdb   / очередь / iosched 
 fifo_batch front_merges read_expire write_expire пишет_starved 

Чтобы улучшить пропускную способность с дедлайна за счет задержки, можно увеличить fifo_batch с помощью команды:

 # echo  32 > / sys / block /   sdb   / queue / iosched /  fifo_batch  

Конфигурация управления питанием

При работе с традиционными вращающимися дисками (HDD) может потребоваться уменьшить или полностью отключить функции энергосбережения.

Уменьшить количество операций чтения / записи с диска

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

Примечание: SSD объемом 32 ГБ с посредственным 10-кратным коэффициентом усиления записи, стандартным циклом записи / стирания 10000 и 10 ГБ данных, записываемых в день , будет иметь ожидаемый срок службы 8 лет . Это становится лучше с большими SSD и современными контроллерами с меньшим усилением записи.Также сравните [1] при рассмотрении вопроса о том, действительно ли необходима какая-либо конкретная стратегия ограничения записи на диск.

Показать запись на диск

Пакет iotop может сортировать записи на диск и показывать, сколько и как часто программы записывают на диск. См. Подробности в iotop (8).

Переместить файлы в tmpfs

Переместите файлы, такие как профиль вашего браузера, в файловую систему tmpfs, чтобы улучшить реакцию приложения, поскольку все файлы теперь хранятся в ОЗУ:

Файловые системы

См. Соответствующую страницу файловой системы, если там были инструкции по повышению производительности, например.грамм. Ext4 # Повышение производительности и производительности XFS #.

Место подкачки

См. «Производительность свопа #».

Интервал обратной записи и размер буфера

См. Подробности в Sysctl # Virtual memory.

Планирование ввода-вывода хранилища с ionice

Многие задачи, такие как резервное копирование, не зависят от короткой задержки ввода-вывода хранилища или высокой пропускной способности ввода-вывода для выполнения своей задачи, их можно классифицировать как фоновые задачи. С другой стороны, быстрый ввод-вывод необходим для хорошего отклика пользовательского интерфейса на рабочем столе.Следовательно, полезно уменьшить объем полосы пропускания хранилища, доступной для фоновых задач, в то время как другие задачи требуют ввода-вывода хранилища. Это может быть достигнуто путем использования планировщика ввода-вывода Linux CFQ, который позволяет устанавливать различные приоритеты для процессов.

Приоритет ввода-вывода фонового процесса может быть снижен до уровня «Idle», запустив его с

 # ionice -c 3 команда
 

См. Ionice (1) и [2] для получения дополнительной информации.

CPU

Разгон

Overclocking улучшает вычислительную производительность процессора за счет увеличения его пиковой тактовой частоты.Возможность разгона зависит от комбинации модели процессора и модели материнской платы. Чаще всего это делается через BIOS. У разгона тоже есть недостатки и риски. Здесь это не рекомендуется и не рекомендуется.

Многие чипы Intel неправильно сообщают о своей тактовой частоте в acpi_cpufreq и большинство других утилит. Это приведет к появлению чрезмерного количества сообщений в dmesg, чего можно избежать, выгрузив и занеся в черный список модуль ядра acpi_cpufreq .
Чтобы узнать их тактовую частоту, используйте i7z из пакета i7z.Для проверки корректности работы разогнанного процессора рекомендуется провести стресс-тестирование.

Масштабирование частоты

См. Масштабирование частоты процессора.

Альтернативные планировщики ЦП

Эту статью или раздел необходимо расширить.

Планировщиком ЦП по умолчанию в основном ядре Linux является CFS. Доступны альтернативные планировщики.

Одним из альтернативных планировщиков, ориентированных на интерактивность рабочего стола и быстродействие, является MuQSS, разработанный Кон Коливасом.MuQSS включен в пакет ядра linux-zen. Он также доступен как отдельный патч или как часть более широкого набора патчей -ck . См. Linux-ck и Linux-pf для получения дополнительной информации о наборе исправлений.

Ядро реального времени

Для некоторых приложений, например для работы карты ТВ-тюнера с разрешением Full HD (1080p), может быть полезно использование ядра реального времени.

Корректировка приоритетов процессов

См. Также nice (1) и renice (1).

Ананиций

Ananicy — это демон, доступный в пакете ananicy-git AUR , для автоматической настройки хороших уровней исполняемых файлов.Уровень nice представляет приоритет исполняемого файла при распределении ресурсов ЦП.

группы

См. Cgroups.

Cpulimit

Cpulimit — это программа, ограничивающая процент использования ЦП определенным процессом. После установки cpulimit вы можете ограничить использование ЦП PID процесса, используя шкалу от 0 до 100 раз превышающую количество ядер ЦП, которое имеет компьютер. Например, для восьми ядер ЦП процентное значение будет от 0 до 800. Использование:

 $ cpulimit -l 50 -p 5081
 

irqbalance

Цель irqbalance — распределять аппаратные прерывания между процессорами в многопроцессорной системе для повышения производительности.Его можно контролировать с помощью предоставленной irqbalance.service .

Отключить защиту от эксплойтов ЦП

Предупреждение: Не применяйте этот параметр, не учитывая уязвимости, которые он открывает. См. This и this для получения дополнительной информации.

Отключение защиты от эксплойтов ЦП повышает производительность (иногда до 50%). Используйте следующий параметр ядра, чтобы отключить их все:

 смягчения = выкл.
 

Описание всех переключателей, которые он переключает, дано в ядре.орг. Вы можете использовать specter-meltdown-checker AUR для проверки уязвимостей.

Графика

Конфигурация Xorg

Графическая производительность может зависеть от настроек в xorg.conf (5); см. статьи NVIDIA, ATI, AMDGPU и Intel. Неправильные настройки могут остановить работу Xorg, поэтому рекомендуется соблюдать осторожность.

Конфигурация Mesa

Производительность драйверов Mesa можно настроить через drirc. Доступны инструменты настройки графического интерфейса:

  • adriconf (Advanced DRI Configurator) — инструмент с графическим интерфейсом для настройки драйверов Mesa путем настройки параметров и записи их в стандартный файл drirc.
https://gitlab.freedesktop.org/mesa/adriconf/ || adriconf
  • DRIconf — апплет конфигурации для инфраструктуры прямого рендеринга. Он позволяет настраивать параметры производительности и визуального качества драйверов OpenGL на уровне драйвера, экрана и / или приложения.
https://dri.freedesktop.org/wiki/DriConf/ || driconf AUR

Разгон

Как и в случае с процессорами, разгон может напрямую улучшить производительность, но обычно не рекомендуется.В AUR есть несколько пакетов, таких как amdoverdrivectrl AUR (старые карты AMD / ATI), rocm-smi AUR (последние карты AMD), nvclock AUR (старые NVIDIA — до Geforce 9) и nvidia-utils для последних карт NVIDIA.

См. AMDGPU # Overclocking или NVIDIA / Советы и приемы # Включение разгона.

Оперативная память, свопинг и обработка OOM

Тактовая частота и тайминги

RAM может работать с разными тактовыми частотами и таймингами, которые можно настроить в BIOS.Производительность памяти зависит от обоих значений. Выбор максимальной предустановки, представленной BIOS, обычно улучшает производительность по сравнению с настройкой по умолчанию. Обратите внимание, что увеличение частоты до значений, не поддерживаемых производителем материнской платы и оперативной памяти, является разгоном, и при этом возникают аналогичные риски и недостатки, см. # Разгон.

Корень на оверлее RAM

Если используется медленный носитель записи (USB, вращающиеся жесткие диски) и требования к хранилищу низкие, корневой каталог может быть запущен в оверлее RAM поверх корневого диска, доступного только для чтения (на диске).Это может значительно повысить производительность за счет ограниченного пространства для записи root. См. Liveroot AUR .

Zram или zswap

Модуль ядра zram (ранее называвшийся compcache ) предоставляет сжатое блочное устройство в ОЗУ. Если вы используете его в качестве устройства подкачки, ОЗУ может содержать гораздо больше информации, но использует больше процессора. Тем не менее, это намного быстрее, чем переключение на жесткий диск. Если система часто переключается на свопинг, это может улучшить отзывчивость.Использование zram также является хорошим способом сократить количество циклов чтения / записи на диск из-за свопа на SSD.

Аналогичных преимуществ (при аналогичных затратах) можно получить, используя zswap, а не zram. Они в целом похожи по назначению, но не по принципу действия: zswap работает как сжатый кэш RAM и не требует (и не разрешает) обширной конфигурации пользовательского пространства.

Пример: Чтобы настроить одно устройство сжатого zram lz4 с емкостью 32 ГБ и приоритетом выше обычного (только для текущего сеанса):

 # modprobe zram
# echo lz4> / sys / block / zram0 / comp_algorithm
# echo 32G> / sys / block / zram0 / disksize
# mkswap --label zram0 / dev / zram0
# swapon --priority 100 / dev / zram0
 

Чтобы снова отключить его, либо перезагрузите, либо запустите

 # swapoff / dev / zram0
# rmmod zram
 

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

Пакет systemd-swap предоставляет модуль systemd-swap.service для автоматической инициализации устройств zram. Конфигурация возможна в /etc/systemd/swap.conf .

Пакет zramswap AUR предоставляет автоматизированный сценарий для настройки подкачки с более высоким приоритетом и размером по умолчанию 20% от размера RAM вашей системы. Чтобы делать это автоматически при каждой загрузке, включите zramswap.service .

Поменять местами zRAM с помощью правила udev

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

Сначала включите модуль:

 /etc/modules-load.d/zram.conf 
 зрам
 

Настройте необходимое количество узлов / dev / zram.

 /etc/modprobe.d/zram.conf 
 опции zram num_devices = 2
 

Создайте правило udev, как показано в примере.

 /etc/udev/rules.d/99-zram.rules 
 ЯДРО == "zram0", ATTR {disksize} = "512M" RUN = "/ usr / bin / mkswap / dev / zram0", TAG + = "systemd"
ЯДРО == "zram1", ATTR {disksize} = "512M" RUN = "/ usr / bin / mkswap / dev / zram1", TAG + = "systemd"
 

Добавьте / dev / zram в свой файл fstab.

 / и т. Д. / Fstab 
 / dev / zram0 нет свопинг по умолчанию 0 0
/ dev / zram1 нет swap по умолчанию 0 0
 

Использование ОЗУ графической карты

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

Повышение скорости отклика системы в условиях нехватки памяти

В традиционной системе GNU / Linux, особенно для графических рабочих станций, когда выделенная память перегружена, общая отзывчивость системы может ухудшиться до почти непригодного для использования состояния до того, как сработает встроенный в ядро ​​OOM-убийца или освободится достаточный объем памяти (что вряд ли произойдет быстро, когда система не отвечает, так как вы вряд ли сможете закрыть какие-либо требовательные к памяти приложения, которые могут продолжать выделять больше памяти).Поведение также зависит от конкретных настроек и условий, возврат к нормальному состоянию отклика может занять от нескольких секунд до более получаса, что может быть болезненным при ожидании в серьезном сценарии, например во время презентации на конференции.

Хотя поведение ядра и пользовательского пространства в условиях нехватки памяти может улучшиться в будущем, как обсуждалось в списках рассылки ядра [3] и fedora [4], пользователи могут использовать более осуществимые и эффективные параметры, чем жесткие ограничения. сброс системы или настройка vm.overcommit_ * sysctl-параметры:

  • Вручную запустить OOM-killer ядра с помощью клавиши Magic SysRq, а именно Alt + SysRq + f .
  • Используйте демон OOM пользовательского пространства для решения этих проблем автоматически (или в интерактивном режиме).

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

Иногда пользователь может предпочесть демон OOM SysRq, потому что с помощью OOM-killer ядра вы не можете установить приоритет (или нет) для завершения процесса. Чтобы перечислить некоторые демоны OOM:

  • earlyoom — Простая реализация OOM-убийцы в пользовательском пространстве, написанная на C. Fedora будет иметь это в своей стандартной рабочей станции [5].
https://github.com/rfjakob/earlyoom || Earlyoom
  • oomd — реализация OOM-killer на основе PSI, требует ядра Linux версии 4.20+. Конфигурация находится в JSON и довольно сложна. Подтвержден для работы в производственной среде Facebook.
https://github.com/facebookincubator/oomd || oomd AUR
  • nohang — Сложный обработчик OOM, написанный на Python, с дополнительной поддержкой PSI, более настраиваемый, чем Earlyoom.
https://github.com/hakavlad/nohang || nohang-git AUR
  • low-memory-monitor — усилия разработчика GNOME, направленные на улучшение связи с приложениями пользовательского пространства для индикации состояния нехватки памяти, помимо того, что его можно настроить для запуска OOM ядра -убийца.На основе PSI, требуется Linux 5.2+.
https://gitlab.freedesktop.org/hadess/low-memory-monitor/ || low-memory-monitor-git AUR

Сеть

Сторожевые собаки

Согласно Википедии: Сторожевой таймер:

Сторожевой таймер […] — это электронный таймер, который используется для обнаружения и восстановления после сбоев в работе компьютера. Во время нормальной работы компьютер регулярно сбрасывает сторожевой таймер […]. Если, […], компьютеру не удается сбросить сторожевой таймер, таймер истечет и сгенерирует сигнал тайм-аута, […] используемый для инициирования […] корректирующих действий […] обычно включает помещение компьютерной системы в сейф. состояние и восстановление нормальной работы системы.

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

Чтобы отключить сторожевые таймеры (как программные, так и аппаратные), добавьте nowatchdog к параметрам загрузки.

Для проверки новой конфигурации выполните:

 # cat / proc / sys / kernel / watchdog
 

или используйте:

 # wdctl
 

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

Примечание: Некоторые пользователи сообщали, что параметр nowatchdog не работает должным образом, но они успешно отключили сторожевой таймер (по крайней мере, аппаратный), занес в черный список вышеупомянутый модуль.

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

См. [6], [7], [8] и [9] для получения дополнительной информации.

См. Также

лучших практик для запуска Linux на Hyper-V

  • 5 минут на чтение

В этой статье

Применимо к: Windows Server 2019, Windows Server 2016, Hyper-V Server 2016, Windows Server 2012 R2, Hyper-V Server 2012 R2, Windows Server 2012, Hyper-V Server 2012, Windows Server 2008 R2, Windows 10, Windows 8 .1, Windows 8, Windows 7.1, Windows 7

В этом разделе содержится список рекомендаций по запуску виртуальной машины Linux на Hyper-V.

Настройка файловых систем Linux для динамических файлов VHDX

Некоторые файловые системы Linux могут занимать значительный объем реального дискового пространства, даже если файловая система в основном пуста. Чтобы уменьшить объем реального использования дискового пространства динамическими файлами VHDX, примите во внимание следующие рекомендации:

  • При создании VHDX используйте 1 МБ BlockSizeBytes (вместо 32 МБ по умолчанию) в PowerShell, например:
  PS> Новый-VHD-Путь C: \ MyVHDs \ test.vhdx -SizeBytes 127 ГБ -Dynamic -BlockSizeBytes 1 МБ
  
  • Формат ext4 предпочтительнее ext3, потому что ext4 более эффективно использует пространство, чем ext3, при использовании с динамическими файлами VHDX.

  • При создании файловой системы укажите количество групп равным 4096, например:

  # mkfs.ext4 -G 4096 / dev / sdX1

  

Тайм-аут меню Grub на виртуальных машинах поколения 2

Из-за того, что устаревшее оборудование было удалено из эмуляции в виртуальных машинах поколения 2, таймер обратного отсчета меню grub отсчитывает слишком быстро, чтобы меню grub отображалось, сразу загружая запись по умолчанию.Пока grub не будет исправлен для использования таймера с поддержкой EFI, измените /boot/grub/grub.conf , / etc / default / grub или эквивалент так, чтобы он имел «timeout = 100000» вместо «timeout = 5 по умолчанию». «.

Загрузка PxE на виртуальных машинах поколения 2

Поскольку таймер PIT отсутствует в виртуальных машинах поколения 2, сетевые подключения к серверу PxE TFTP могут быть преждевременно завершены, что не позволит загрузчику прочитать конфигурацию Grub и загрузить ядро ​​с сервера.

В RHEL 6.x можно использовать устаревший загрузчик EFI grub v0.97 вместо grub2, как описано здесь: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe -config-efi.html

В дистрибутивах Linux, отличных от RHEL 6.x, аналогичные шаги можно выполнить для настройки grub v0.97 для загрузки ядер Linux с сервера PxE.

Кроме того, в RHEL / CentOS 6.6 ввод с клавиатуры и мыши не будет работать с предустановленным ядром, что не позволяет указывать параметры установки в меню.Для выбора вариантов установки необходимо настроить последовательную консоль.

  • В файле efidefault на сервере PxE добавьте следующий параметр ядра «console = ttyS1»

  • На виртуальной машине в Hyper-V настройте COM-порт с помощью этого командлета PowerShell:

  Set-VMComPort -VMName  -Number 2 -Path \\. \ Pipe \ dbg1

  

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

Использовать статические MAC-адреса с отказоустойчивой кластеризацией

Виртуальные машины

Linux, которые будут развернуты с использованием отказоустойчивой кластеризации, должны быть настроены со статическим адресом управления доступом к среде (MAC) для каждого виртуального сетевого адаптера. В некоторых версиях Linux сетевая конфигурация может быть утеряна после отработки отказа, поскольку виртуальному сетевому адаптеру назначен новый MAC-адрес. Чтобы избежать потери конфигурации сети, убедитесь, что каждый виртуальный сетевой адаптер имеет статический MAC-адрес.Вы можете настроить MAC-адрес, отредактировав параметры виртуальной машины в диспетчере Hyper-V или диспетчере отказоустойчивого кластера.

Используйте сетевые адаптеры для Hyper-V, а не устаревший сетевой адаптер.

Настройте и используйте виртуальный адаптер Ethernet, который представляет собой специальную сетевую карту Hyper-V с повышенной производительностью. Если к виртуальной машине подключены как устаревшие, так и специфичные для Hyper-V сетевые адаптеры, имена сетей в выходных данных команды ifconfig -a могут отображать случайные значения, например _tmp12000801310 .Чтобы избежать этой проблемы, удалите все устаревшие сетевые адаптеры при использовании специфичных для Hyper-V сетевых адаптеров на виртуальной машине Linux.

Используйте планировщик ввода-вывода noop / none для повышения производительности дискового ввода-вывода

Ядро Linux предлагает два набора планировщиков дискового ввода-вывода для изменения порядка запросов. Один набор предназначен для старой подсистемы «blk», а другой — для новой подсистемы «blk-mq». В любом случае с современными твердотельными дисками рекомендуется использовать планировщик, который передает решения о планировании базовому гипервизору Hyper-V.Для ядер Linux, использующих подсистему «blk», это планировщик «noop». Для ядер Linux, использующих подсистему «blk-mq», это планировщик «none».

Для конкретного диска доступные планировщики можно увидеть в этом расположении файловой системы: / sys / class / block / <имя диска> / queue / scheduler, с текущим выбранным планировщиком в квадратных скобках. Вы можете изменить планировщик, записав в это расположение файловой системы. Это изменение необходимо добавить в сценарий инициализации, чтобы оно сохранялось при перезагрузках.За подробностями обращайтесь к документации вашего дистрибутива Linux.

NUMA

Версии ядра Linux

до 2.6.37 не поддерживают NUMA в Hyper-V с виртуальными машинами большего размера. Эта проблема в первую очередь затрагивает более старые дистрибутивы, в которых используется ядро ​​Red Hat 2.6.32, и была исправлена ​​в Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). Системы, использующие собственные ядра старше 2.6.37 или ядра на основе RHEL старше 2.6.32-504, должны установить параметр загрузки numa = off в командной строке ядра в grub.конф. Для получения дополнительной информации см. Red Hat KB 436883.

Зарезервировать больше памяти для kdump

В случае, если ядро ​​захвата дампа завершается с ошибкой при загрузке, зарезервируйте больше памяти для ядра. Например, измените параметр crashkernel = 384M-: 128M на crashkernel = 384M-: 256M в файле конфигурации Ubuntu grub.

Сжатие VHDX или расширение файлов VHD и VHDX может привести к ошибочным таблицам разделов GPT

Hyper-V позволяет сжимать файлы виртуального диска (VHDX) без учета каких-либо структур данных разделов, томов или файловой системы, которые могут существовать на диске.Если VHDX сжимается до того места, где конец VHDX находится перед концом раздела, данные могут быть потеряны, этот раздел может быть поврежден или при чтении раздела могут быть возвращены недопустимые данные.

После изменения размера VHD или VHDX администраторы должны использовать такую ​​утилиту, как fdisk или parted, для обновления структур разделов, томов и файловой системы, чтобы отразить изменение размера диска. Уменьшение или увеличение размера VHD или VHDX с таблицей разделов GUID (GPT) вызовет предупреждение, когда инструмент управления разделами используется для проверки макета разделов, и администратор будет предупрежден о необходимости исправить первый и дополнительный заголовки GPT .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *