Android что грузит процессор. CPU Load: когда начинать волноваться? Следи за загрузкой процессора

08.04.2019

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

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

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

  • Размер буфера журнала – предоставляет возможность выбора объема памяти ;
  • Ускорение работы GPU – активирует обработку двухмерной графики;
  • Показывать загрузку ЦП – выводит экран с информацией о текущей загрузке центрального процессора;
  • Подключение USB – выбор режима работы устройства при подсоединении его к ПК по USB;
  • Отладка по USB – задействует режим отладки при подсоединении вашего Android к ПК с помощью кабеля.
  • Фиктивное местоположение устройства – позволяет заставить приложения «думать», что вы находитесь в другой точке мира.

Активация

Включить режим для разработчика несложно. Для этого нужно:

Перечень доступных настроек

Теперь разберем функции раздела для разработчиков более подробно.

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

  • Создание отчета об ошибках. Опция предназначена для отправки отчета об ошибках. Файлы для отправки создаются в течение пары минут.
  • Пароль для резервного копирования. Данный пункт дает возможность использовать ADB для создания резервного копирования данных на ПК. Для создания копии, требуется обязательный ввод пароля.
  • Активный режим. Если эта опция включена, экран устройства при его подключении к ПК не будет гаснуть. Стоит использовать с осторожностью, поскольку длительная работа экрана может его испортить.
  • Выбор рабочего модуля. Инструмент для выбора ART или Davlik. Не стоит ничего менять, если вы не знаете, для чего они необходимы.
  • Включение журнала трансляций операций HCI Bluetooth. Данная функция полезна только для разработчиков, поскольку позволяет вести перехват и анализ пакетов Bluetooth. После включения данной опции, пакеты будут сохраняться в файле «btsnoop_hci.log». Файл можно открыть и проанализировать в программе «Wireshark» или аналогичной.
  • Статистика процессов. Показывает информацию о процессах, которые в данный момент запущенны на устройстве. Для простого пользователя пользы не представляет.
  • Отладка USB. Позволяет подключать устройство к ПК через ADB.
  • Отзыв авторизации отладки USB. При первой отладке устройства по USB, его требуется авторизовать, используя для этого ключи. С помощью данной настройки, можно отменить это действие и повторить его еще раз.
  • Отчеты об ошибках. Опция очень полезна для тестирования приложений. При помощи зажатой кнопки питания можно проводить сбор и отправку отчетов о сбоях и ошибках.
  • Фиктивные местоположения. Позволяет вручную установить местоположение. Используется некоторыми разработчиками для тестирования приложений с привязкой по геоданным.
  • Приложения для отладки. Можно вручную задать приложения для отладки. Помогает разработчикам убедиться в корректной работе кода приложения.
  • Проверка по USB. С помощью данной опции можно проводить сканирование поставленных через ADB приложений и выявлять вредоносную активность.
  • Отображение касаний. Если опция активирована, на экране будут появляться визуальные эффекты, отображающие прикосновения к экрану.
  • Местоположение указателя. Выводит на экран координаты последней точки прикосновения к экрану.
  • Отображение границ макета. Отображение контуров элементов в диалоговых окнах. Позволяет более точно определить, куда нужно нажимать, чтобы активировать элемент на экране.
  • Написание справа налево. Включает изменение ориентации экрана. Опция требуется для работы с правосторонним вводом символов (необходимо для некоторых языков).
  • Эмуляция дополнительного дисплея. Полезно только для разработчиков, поскольку позволяет эмулировать разные размеры дисплея.
  • Принудительный рендеринг. Включает использование приложениями аппаратного двухмерного рендеринга. В некоторых случаях, может дать прибавку производительности, в некоторых наоборот, все испортить. Лучше использовать с осторожностью.
  • Отладка наложения. Позволяет видеть наложения, которые происходят в момент отрисовки графической системой изображений поверх чего-либо.
  • Активация 4х MSAA. Принудительно активирует улучшенное сглаживание. После активации заметно ухудшается производительность устройства.
  • Отобразить нагрузку ЦП. Выводит на экран информацию о текущей нагрузке центрального процессора.
  • Установка профиля GPU. Опция позволяет сохранять в отдельный файл график загрузки графической системы.
  • Трассеровка Open GL. Позволяет сохранять все ошибки OpenGL в отдельный файл.
  • Фоновые процессы. Опция позволяет вручную задать количество одновременно работающих в фоне процессов.
  • Показ ANR. Включает отображение системных сообщений при зависании приложений. Полезно если приложения конфликтуют между собой.

Деактивация

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

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

Заключение

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

Оптимизации расхода заряда батареи в Android. Как я уже писал раньше, у меня возникли проблемы с быстрой разрядкой батареи Wildfire S. Попытки с калибровкой батареи ни к чему не привели.

Смена прошивок от официальной до откровенно кастомной тоже результата не дали.

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

Вот короткая инструкция по пользованию этой программой:

1. Переходим «Меню->Настройки», ставим галку «Включить Мониторинг», остальные галки по желанию (у меня включены все кроме отображения температуры в Фарингейтах). Включается мониторинг активности приложений, в системном баре появляется значок программы. Оставляем аппарат на некоторое время в покое, желательно на всю ночь.

2. По прошествии некоторого времени переходим «Меню->Мониторинг». Нажимаем внизу кнопку «История», видим построенные графики. Вверху можем задать интервал вывода информации (если мониторинг работал всю ночь, удобнее выставить «8 часов»).

Описание графиков:

  • «зарядка аккумулятора» — показывает разряд аккумулятора.
  • «использование устройства» — показывает использование устройства при включённом экране.
  • «активность CPU» — показывает загрузку процессора за всё время мониторинга (в т.ч. когда аппарат спит). Загрузка 0,5-1% системными процессами в режиме сна для большинства устройствявляется нормальной, всё что больше — лишняя активность причину которой будем искать дальше.

3. Ищем того кто не спал. Находясь в «Истории», нажимаем на кнопку в верхнем левом углу «график» и выбираем там «Топ-приложения». В итоге получили список приложений и процессов отсортированный по их активности при загрузке CPU.

Нажимаем по очереди на наиболее активные процессы и видим информацию о процессе, внизу видим историю потребления в виде графика. Нажимаем кнопку «сравнить» и снизу добавляются ещё общие графики. Таким образом можем сравнить график одного процесса с общим графиком всех процессов и узнать какое участие данные процесс принял в общей массе (напомню, нас при этом в основном интересует время когда экран был выключен). Данная функция особенно полезна, когда были редкие но сильные всплески активности, т.е. когда в «Топе-приложений» процесс может быть и не в начале списка.

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

Пример работы

Вот пример (по сну выше приведённого скриншота). Просматривая графики каждого процесса по отдельности стало заметно, что Taskiller проявлял лишнюю активность (на нижнем скриншоте график процесса «Taskiller» в самом верху).

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

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

Основные участники обзора:

Также будут упомянуты:

Assistant for Android - подборка инструментов для оптимизации Android. Инструментарий этот включает в себя 18 основных функций оптимизации системы. Среди них - мониторинг, управление процессами и задачами, очистка от ненужных файлов, менеджер автозагрузки, диспетчер приложений и другие компоненты.

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

В разделе «Мониторинг» пользователь может выгрузить приложения из RAM (диспетчер задач) или очистить систему от ненужных данных - кэш временных файлов системы и установленных приложений, файлов журнала, пустых файлов / папок и прочего «мусора», удаление которого безвредно сказывается на системе. Кроме того, Assistant предоставляет список временных файлов на карте памяти, выборки пользовательских файлов по размеру, типу информации и т. п.

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

Третий раздел содержит опции, позволяющие оптимизировать расход батареи устройства. В верхней части экрана - управление сетями, яркость, звук, вибрация и прочие опции (также доступные посредством системных виджетов). Чуть ниже представлены различные сервисные приложения, полезные при оптимизации системы: пакетное удаление / установка программ, создание резервной копии, перемещение приложений на SD-карту, менеджер автозапуска, файловый менеджер, информация о батарее и системе, настройка прав. В целом, как видно, ничего примечательного здесь нет, и основная ценность подборки - доступность системных функций в одном разделе.

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

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

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

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

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

В разделе Apps собраны все установленные и системные приложения. Здесь можно управлять каждой программой индивидуально, но пакетные операции (например, установка и удаление) отсутствуют как таковые.

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

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

Резюме . Таким образом, приложение System Info for Android будет полезно рядовым пользователям ОС, отчасти - разработчикам. Это, скорее, инструмент с информационным уклоном, который позволяет в реальном времени отследить процессы, события в журнале. Полезных опций оптимизацией, связанных именно с настройкой, здесь считанное количество.

Elixir 2 - утилита для получения системной информации, диагностики устройства и добавления соответствующих виджетов на домашний экран.

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

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

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

Одна из наиболее интересных функциональных особенностей Elixir - раздел «Датчики». Соответственно, здесь можно ознакомиться с системными данными и потреблением доступных датчиков устройства на Android. Кроме этого, можно вручную запустить тесты для проверки их минимальной и пиковой мощности.

В «Журналах» выводится содержание файлов logcat и dmesg, и можно отфильтровать сообщения (ошибки / предупреждения / информация). Сгенерированные отчеты Elixir с системной информацией несложно отправить по e-mail.

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

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

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

На главной странице («Батарея») доступна информация о текущем состоянии батареи. Если устройство заряжается, можно узнать время, необходимое для полной зарядки. Кроме того, отсюда можно извлечь некоторые технические характеристики: температуру, напряжение и емкость батареи. На графике, в нижней части экрана, пользователь может отследить, как расходовался заряд батареи на протяжении дня, по уровню АКБ. Из этой шкалы все понятно, однако особого практического смысла в ней меньше, чем хотелось бы получить.

В разделе «Сохранение» - управление режимами потребления. Профили имеют описания, так что можно понять, за счет чего планируется оптимизировать телефон: звонки, смс, интернет и прочее. Можно создать собственный профиль из десятка параметров. Пользователям платной версии Battery Saver доступен т. н. «интеллектуальный» режим: отключение уведомлений, управление приложениями, автовыгрузка, изменение профилей энергопотребления на протяжении суток.

Во вкладке «Монитор» отслеживается потребление энергии приложениями и оборудованием. Здесь достаточно отчетливо видно, что больше всего разряжает батарею, «виновника» можно отключить.

Есть у приложения Battery Saver и другие функции, но они менее интересны, плюс, как и другие приложения этого разработчика, некоторые функции - сугубо рекламные.

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

Данные отображаются на диаграмме в виде цветных блоков, пропорционально занимаемому им пространству. Нажав на определенный блок, можно ознакомиться с файлами внутри этой директории. Таким образом, становится понятно, где искать «похитителей» дискового пространства.

Из дополнительных особенностей приложения - DiskUsage интегрируется с популярными файловыми менеджерами, такими как OI FileManager и Astro.

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

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

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

Еще один полезный модуль Clean Master - менеджер приложений. Здесь представлены приложения в виде выборок: последние установленные, редко используемые, по размеру, категориям и прочее. Можно отметить несколько элементов и удалить их в пакетном режиме, что очень удобно. Помимо этого, есть возможность создания резервной копии и удаления apk-установщиков приложений.

Clean Master радует информативностью по части оптимизации и позволяет быть осведомленным: информация о занятых/освобожденных мегабайтах постоянно отображается в верхней части приложения. Правда, визуальные красоты, анимация несколько замедляют приложение, и, как ни парадоксально, скорость системы временно ухудшается именно из-за Clean Master. Кроме того, программа изобилует дополнительными модулями (антивирус, CM Family и др.), которые интересны далеко не всем пользователям.

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

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

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

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

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

Некоторые модули, такие как «Анализатор SD-карты» и «Приложения», доступны только после установки файлового менеджера ES Explorer.

Advanced Task Manager - вполне предсказуемый по функциональности менеджер задач, но чуть более удобный, чем стандартный.

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

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

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

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

System Monitor

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

OS Monitor функционально полностью отличается от System Monitor – имеется всего четыре вкладки: «Процессы», «Соединения», «Разное», «Журнал». Во вкладке «Процессы», как вы догадались, отображаются все запущенные процессы и загрузка ими процессора в процентах. Во вкладке «Соединения» отображается журнал всех соединений, которые проводились: указывается протокол, а также локальный/внешний IP. Во вкладке «Разное» — все основные характеристики устройства, а в «Журнале» отображаются все события, которые происходят в вашем смартфоне.
Приложение подойдет для тех, кому интересны интернет-соединения и различные действия, производимые программами на вашем устройстве.

Данное приложение больше похоже на прошивку для разработчиков. Да, интерфейс выполнен явно не с учетом «отдыха» для глаз пользователя. Основная задача данного приложения – информативность. Здесь вы можете узнать гораздо больше информации, нежели в любом другом подобном приложении: температура вашей батареи, анализ свободного места внутреннего/внешнего накопителя, нагрузка процессора и памяти, качество сети, скорость Wi-Fi-соединения, информация о состоянии NFC/Bluetooth, ваше точное местоположение и другое. И все это лишь касаемо устройства. А ведь в запасе еще информация о программном обеспечении. Можно также установить виджеты на рабочем столе или в разделе уведомлений, имеется возможность проверки работы различных датчиков, встроенных в устройство.

Представляет собой различные мини-виджеты, которые в реальном времени проводят анализ вашего устройства и отображаются на экране в удобном для вас месте. Можно настроить практически всё. В мини-виджет можно добавить огромное количество информации, начиная загрузкой процессора и заканчивая типом сетевого подключения. Можно также добавлять/удалять различные индикаторы, которые представляют собой разноцветную шкалу: индикатор частоты процессора, скорость закачки, уровень Wi-Fi-сигнала и т. д.
Вы можете редактировать внешний вид виджета: тексту задаются различные цвета, настраивается ширина/высота плашек и т. д.

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

Приложение: Диски, Хранилища и SD карты Разработчик: Mobile Infographics Категория: Работа Версия: 1.7.3.3 Цена: Бесплатно/99 руб. Скачать:

Данная заметка является переводом статьи из блога компании Scout. В статье дается простое и наглядное объяснение такого понятия, как load average . Статья ориентирована на начинающих Linux-администраторов, но, возможно, будет полезна и более опытным админам. Заинтересовавшимся добро пожаловать под кат.

Вероятно, Вы уже знакомы с понятием load average . Load average - это три числа, отображаемые при выполнении команд top и uptime . Выглядят они примерно так:
load average: 0,35, 0,32, 0,41
Большинство интуитивно понимают, что эти три числа обозначают средние значения загрузки процессора на прогрессивно увеличивающихся временных промежутках (одна, пять и пятнадцать минут) и чем меньше их значения - тем лучше. Большие числа свидетельствуют о слишком большой нагрузке на сервер. Но какие значения считать предельными? Какие значения являются «плохими», а какие - «хорошими»? Когда Вам следует просто волноваться о занчениях средней загрузки, а когда следует бросать другие дела и решать проблему так быстро, как это возможно?
Для начала, давайте разберемся, что же означает load average . Рассмотрим простейший случай: предположим, что у нас в наличии один сервер с одноядерным процессором.

Аналогия транспортного потока

Одноядерный процессор похож на дорогу с одной полосой движения. Представьте себе, что Вы управяете движением машин по мосту. Иногда, Ваш мост загружен настолько сильно, что машинам приходится ждать в очереди чтобы проехать по нему. Вы хотите дать людям понять, как долго им придется ждать чтобы перебраться на другую сторону реки. Хорошим способом сделать это будет показать как много машин ждут в очереди в конкретный момент времени . Если машин в очереди нет, подъезжающие водители будут знать, что они сразу смогут проехать по мосту. В противном случае, они будут понимать, что придется ждать своей очереди.
Итак, Управляющий Мостом, какую систему обозначений Вы будете использовать? Как насчет такой:
  • 0.00 означает, что на мосту нет ни одной машины. Фактически, значения от 0.00 до 1.00 означают отсутствие очереди. Подъезжающая машина может воспользоваться мостом без ожидания;
  • 1.00 означает, что на мосту находится как раз столько автомобилей, сколько он может вместить. Все еще идет хорошо, но, в случае увеличения потока машин, возможны проблемы;
  • Значения, превышающие 1.00 означают наличие очереди на въезде. Насколько большой? Например, значение 2.00 показывает, что в очереди стоит столько же автомобилей, сколько движется по мосту. 3.00 означает, что мост полностью занят и в очереди ожидает в два раза больше машин, чем он может вместить. И так далее.
load average = 1.00
load average = 0.50
load average = 1.70
Вот базовое значение загрузки процессора. «Машины» обрабатываются с использованием промежутков процессорного времени («пересекают мост»), либо ставятся в очередь. В Unix это называется длина очереди выполнения : количество всех процессов, выполняемых в данный момент времени, плюс количество процессов, ожидающих в очереди.
Вам, как управляющему мостом, хотелось бы, чтобы машины-процессы никогда не ждали в очереди. Таким образом, предпочтительно, чтобы загрузки процессора была всегда ниже 1.00. Периодически возможны всплески трафика, когда загрузка будет превышать 1.00, но если она постоянно превышает данное значение - это повод начать волноваться.

Так Вы говорите, 1.00 - идеальное значание load average?

Не совсем. Проблема со значением 1.00 в том, что у Вас не остается запаса. На практике, многие системные администраторы проводят черту на отметке 0.70:
  • Практическое правило «Требуется присмотр»: 0.70. Если среднее значение загрузки постоянно превышает 0.70, следует выяснить причину такого поведения системы во избежании проблем в будущем;
  • Практическое правило «Почини это немедленно!»: 1.00. Если средняя загрузка системы превышает 1.00, необходимо срочно найти причину и устранить ее. В противном случае, Вы рискуете быть разбуженным посреди ночи и это точно не будет весело;
  • Практическое правило «Щас же 3 ночи!!! ШОЗАНАХ??!!»: 5.00. Если среднее значение загрузки процессора превышает 5.00, у Вас серьезные проблемы. Сервер может подвисать или работать очень медленно. Скорее всего, это произойдет в худший из возможных моментов. Например, посреди ночи или когда Вы выступаете с докладом на конференции.

Что насчет многопроцессорных систем? Мой сервер показывает загрузку 3.00 и все ОК!

У Вас четырехпроцессорная система? Все в порядке, если load average равен 3.00.
В мультипроцессорных системах загрузка вычисляется относительно количества доступных процессорных ядер. 100% загрузка обозначается числом 1.00 для одноядерной машины, числом 2.00 для двуядерной, 4.00 для четырехъядерной и т.д.
Если вернуться к нашей аналогии с мостом, 1.00 означает «одну полностью загруженную полосу движения». Если на мосту всего одна полоса, 1.00 означает, что мост загружен на 100%, если же в наличии две полосы, он загружен всего на 50%.
То же самое с процессорами. 1.00 означает 100% загрузки одноядерного процессора. 2.00 - 100% загрузки двуядерного и т.д.

Многоядерность vs. многопроцессорность

Что лучше: один процессор с двумя ядрами или два отдельных процессора? С точки зрения производительности, оба этих решения примерно равны. Да, примерно. Здесь существут множество нюансов, связанных с величиной кэша, переключениями процессов между процессорами т.д. Несмотря на это, единственной важной для измения загрузки системы характеристикой является общее количество ядер вне зависимости от того, на скольких физических процессорах они находятся.
Что приводит нас к еще двум практическим правилам:
  • «Количество ядер = максимальная загрузка». На многоядерной системе, загрузка не должна превышать количества доступных ядер;
  • «Ядра - они и в Африке ядра». То, как ядра распределены по процессорам - неважно. Два четырехъядерных = четыре двуядерных = восем одноядерных процессоров. Имеет значение лишь общее число ядер.

Сведем все вместе

Давайте посмотрим на средние значения загрузки с помощью команды uptime:
~$ uptime 09:14:44 up 1:20, 5 users, load average: 0,35, 0,32, 0,41
Здесь представлены показатели для системы с четырехъядерным процессором и мы видим, что имеется большой запас по нагрузке. Я даже не буду задумываться о ней, пока load average не превысит 3.70.
Какое среднее значение мне следует контролировать? Для одной, пяти или 15 минут?
Для значений, о которых мы говорили раньше (1.00 - почини это немедленно и т.д.), следует рассматривать временные промежутки в пять и 15 минут. Если загрузка Вашей системы превышает 1.00 на интервале в одну минуту, все в порядке. Если же загрузка превышает 1.00 на пяти- или 15-минутном интервале, Вам следует начать принимать меры (конечно, Вам следует также принимать во внимание количество ядер в Вашей системе).
Количество ядер важно для правильно понимания load average. Как мне его узнать?
Команда cat /proc/cpuinfo выводит информацию обо всех процессорах в вашей системе. Чтобы узнать количество ядер, «скормите» ее вывод утилите grep:
~$ cat /proc/cpuinfo | grep "cpu cores" cpu cores: 4 cpu cores: 4 cpu cores: 4 cpu cores: 4

Примечания переводчика

Выше представлен перевод самой статьи. Также много интересной информации можно почерпнуть из комментариев к ней. Так, один из комментаторов говорит о том, что не для каждой системы важно иметь запас по производтельности и не допускать значения загрузки выше 0.70 - иногда нам нужно чтобы сервер работал «на всю катушку» и в таких случаях load average = 1.00 - то, что доктор прописал.

PS

Хабраюзер dukelion добавил в комментариях ценное замечание, что в некоторых сценариях, для достижения максимального КПД «железа», стоит держать значение load average несколько выше 1.00 в ущерб эффективности работы каждого отдельного процесса.

PPS

Хабраюзер enemo в комментариях добавил замечание о том, что высокий показатель load average может быть вызван большим количеством процессов, выполняющих в данный момент операции чтения/записи. То есть, load average > 1.00 на одноядерной машине не всегда говорит о том, что в Вашей системе отсутствует запас по загрузке процессора. Требуется более внимательное изучение причин такого показателя. Кстати, это хорошая тема для нового поста на Хабре:-)

PPPS

Хабраюзер esvaf в комментариях интересуется, как интерпретировать значения load average в случае использования процессора с технологией HyperThreading. Однозначного ответа на данный момент я не нашел. В данной статье утверждается, что процессор, который имеет два виртуальных ядра при одном физическом, будет на 10-30% более производительным, чем простой одноядерный. Если принимать такое допущение за истину, считаю, при интерпретации load average стоит брать в расчет только количество физических ядер.

Теги: Добавить метки