42.64K

Анализ производительности системы: измерение и оценка времени отклика системы, поиск и устранение проблем с производительностью

1.

Анализ производительности
системы: измерение и оценка
времени отклика системы, поиск и
устранение проблем с
производительностью.

2.

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

3.

Методологии производительности
систем
Метод инструментов
Метод USE
Определение характеристик потребления памяти
Анализ тактов
Мониторинг производительности
Выявление утечек
Статическая настройка производительности
Управление ресурсами
Микробенчмаркинг
Уменьшение потребления памяти

4.

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

5.

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

6.

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

7.

Методологии производительности
систем
Нагрузку на шину памяти легко определить с
помощью счетчиков мониторинга
производительности процессора (performance
monitoring counters, PMC), которые можно
запрограммировать для подсчета холостых тактов в
ожидании доступа к памяти, использования шины
памяти и т. д. Для начала можно определить
количество инструкций на такт (IPC), отражающее,
насколько нагрузка на процессор зависит от памяти.

8.

Методологии производительности
систем
Мониторинг производительности может помочь
обнаружить проблемы и модели поведения,
проявляющиеся со временем. Ключевые метрики
для памяти:
Потребление: процент использованной памяти,
который можно определить по объему доступной
памяти.
Насыщенность: наличие событий подкачки и
сообщений OOM Killer в журнале.

9.

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

10.

Методологии производительности
систем
Статическая настройка производительности фокусируется на проблемах сконфигурированной
среды. Анализируя производительность памяти, рассмотрите следующие аспекты статической
конфигурации:
Какой объем памяти выделен для использования приложениями (в их собственных
конфигурациях)?
Какие распределители памяти используются приложениями?
Какова архитектура системы? NUMA, UMA?
Поддерживает ли ОС архитектуру NUMA? Предоставляет ли она настройки NUMA?
Сколько шин памяти?
Сколько кэшей и какого размера имеют процессоры? TLB?
Какие настройки сделаны в BIOS?
Есть ли программные ограничения на потребление памяти (средствами управления
ресурсами)?

11.

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

12.

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

13.

Методологии производительности
систем
Уменьшение потребления памяти - это метод оценки
размера рабочего набора (working set size, WSS),
основанный на проведении отрицательного эксперимента
и требующий настройки устройств подкачки для этого
эксперимента. В ходе эксперимента объем основной
памяти, доступной приложению, постепенно
уменьшается и одновременно измеряются его
производительность и объем подкачки: точка, в которой
производительность начинает резко падать, а подкачка
увеличиваться, показывает, когда WSS перестает
умещаться в доступной памяти.

14.

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

15.

Способы поиска и устранения
неисправностей
Каковы симптомы ошибки
При начале описания ошибки самый естественный вопрос - "А в чем
проблема?" Этот вопрос может показаться простым; однако его можно
разбить на несколько более точных вопросов, которые создадут более
точную картину проблемы. Эти уточняющие вопросы могут быть такими:
Кто или что говорит о проблеме?
Каковы коды ошибок и сообщения о них?
Как происходит сбой системы? Например, это зацикливание, зависание,
падение, снижение производительности или неправильный результат?

16.

Способы поиска и устранения
неисправностей
Где проявляется ошибка?
Не всегда просто определить, где именно возникает ошибка, но это один из важнейших этапов
для ее устранения. Между сообщением об ошибке и аварийным компонентом может
существовать несколько технологических слоев. Сети, диски, драйверы - это только несколько
из компонентов, которые нужно рассмотреть при изучении ошибок.
Следующие вопросы могут оказаться полезными для определения слоя, в котором произошла
ошибка:
Встречается ли эта ошибка только на одной платформе или в одной операционной системе, или
она общая для нескольких платформ или операционных систем?
Поддерживается ли текущая среда и конфигурация?
У всех ли пользователей возникает эта ошибка?
(Для установок на нескольких площадках). На всех ли площадках возникает ошибка?

17.

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

18.

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

19.

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