Система медленная? Как узнать, привязан ли Linux к памяти, ЦП или вводу-выводу — CloudSavvy IT

Shutterstock / solarseven

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

Память, вычислительные ресурсы (ЦП) или ограничения ввода-вывода?

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

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

Думайте об этом, как о трубах, по которым течет вода. Представьте, что память вашей системы, вычислительный блок (ваш ЦП или центральный процессор — основной чип / процессор в вашей системе) и диски (как часть системы ввода-вывода или системы ввода-вывода) — все это как водопроводные трубы. Теперь представьте, что самые медленные компоненты — это труба меньшего размера, а самые быстрые компоненты — это труба большего размера. Если вам нужно было пропустить 10 л через каждую трубу, самая медленная труба займет гораздо больше времени, чем самая большая.

В Linux основными узкими местами являются память (ОЗУ), вычисления (ЦП) или ввод-вывод (дисковые операции). В случае с памятью скорость может быть фактором, но ее нехватка — большая проблема. Что касается ЦП, если вы используете более старое оборудование, каждое ядро ​​ЦП работает намного медленнее, и их может не хватить. Для ввода-вывода проблемой может быть чтение с медленных жестких дисков, а также чрезмерная запись на диск.

Существуют инструменты, с помощью которых можно легко определить, является ли система памятью, вычислительными ресурсами (ЦП) или ограничением ввода-вывода. Все, что вам нужно, это htop и iotop, два полуграфических инструмента, которые можно легко установить в Linux.

Установка htop и iotop

Установка htop и iotop

Чтобы установить htop и iotop в дистрибутив Linux на основе Debian / Apt (например, Ubuntu и Mint), выполните:

sudo apt установить htop iotop

Чтобы установить htop и iotop в дистрибутив Linux на основе RedHat / Yum (например, RedHat и Fedora), выполните:

sudo yum установить htop iotop

Связанный с ЦП

Вывод htop системы, привязанной к процессору

Легко увидеть, привязана ли система к процессору или нет. Просто введите `htop` в командной строке и нажмите Enter. Затем посмотрите на цветные полосы процессора в верхней части экрана. Если у вашего процессора 16 потоков, будет 16 полосок.

На простой вопрос, на который нужно ответить: все ли они почти « заполнены » (почти на 100%) или есть достаточно места для перемещения:

Системный вывод htop без привязки к ЦП

Если полоски полностью заполнены, система явно ограничена процессором. Также обратите внимание, что полоски памяти (Mem) и подкачки (Swp) ни в коем случае не заполнены: это не связано с производительностью памяти.

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

Первое значение средней нагрузки — это среднее значение за 1 минуту, следующее — за 5 минут, а последнее — за 15 минут. В этом случае 1-минутная нагрузка составляет 270, что почти в 17 раз превышает количество потоков: наша система сильно загружена ЦП.

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

Если вы хотите узнать больше о том, что обозначают различные цвета в htop, см. Цветовые полосы в htop — что они означают?

Ограничение памяти

Сразу после доступа к htop легко увидеть, привязана ли система к памяти или нет. Просто посмотрите на панели памяти (Mem) и свопа (Swp), упомянутые ранее.

Если полоса памяти полностью заполнена, а полоса подкачки, например, заполнена на 50%, система почти наверняка сильно меняет местами. Своппинг — это процесс обмена содержимым основной памяти с диском (с использованием специального файла подкачки или раздела подкачки), потому что он заполнен, и, как правило, он очень медленный. Как только система запустится и продолжит переключение, она станет чрезмерно медленной.

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

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

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

Другой способ быстро проверить это — запустить команду free -g в командной строке (или free -m для машин с меньшим объемом памяти, таких как Raspberry Pi):

free -g Вывод

Это легко прочитать: 62 гигабайта памяти, 25 используется, 12 свободно и 24 в настоящее время назначены для буферов и кеша. Доступные 32 — это приблизительное общее количество фактических свободных (12) и все, что назначено для буферов и кеша (24), за вычетом того, что уже используется (не показано), или, другими словами, 12 + 24 = 36 и 32 доступно, поэтому примерно 4 гигабайта используется буферами и кешированием.

Обратите внимание, что мы также можем увидеть, сколько места подкачки было зарезервировано (10 гигабайт) и сколько здесь используется: 0 в настоящее время и, следовательно, 10 свободных.

Ограничение ввода / вывода

Допустим, вы проверяете htop и видите следующее:

Системный вывод htop без привязки к ЦП

Система выглядит загруженной, но недостаточно загруженной, чтобы ее можно было считать связанной с процессором. Используемая / свободная память и панели подкачки тоже выглядят нормально. Давайте дальше проверим iotop. Для этого вам нужно использовать sudo iotop для запуска iotop, поскольку iotop требует sudo.

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

iotop показывает текущую пропускную способность чтения и записи диска

Хотя число M / s не является сверхвысоким с точки зрения современных SSD, постоянное чтение и запись нескольких мегабайт в секунду на медленный жесткий диск — это довольно интенсивный ввод-вывод!

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

Устранение проблем с производительностью

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

Связан ли системный диск / ввод-вывод? Возможно, имеет смысл остановить некоторые службы журналов с интенсивной записью, обновить систему ввода-вывода (например, добавив карту SATA на старый компьютер), перейти на более быстрое устройство хранения (например, диск на основе NVMe вместо диска HDD) или просто найти более быстрый SSD.

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

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

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

Более чем одно узкое место в производительности?

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

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

Подведение итогов

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

Похожие записи

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

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