Введение
Как известно, для того чтобы ваш компьютер и установленная на него операционная система нормально функционировали, необходимо периодически следить за ошибками и предупреждениями в журнале событий, а также проверять отчет о неполадках при помощи журнала стабильности. Но во время использования специализированных программ, игровых приложений или при работе операционной системы в целом, вы можете ощущать, что ваша система «тормозит» и работает совсем не так, как вам бы этого хотелось. Но иногда неполадки обнаруживаются не сразу, и для их идентификации требуется дополнительный анализ. Если вы не обнаружили никаких ошибок в указанных выше средствах диагностики неполадок операционной системы, то, возможно, у вас есть некие проблемы, связанные с производительностью. По определению, производительность – это скорость, с которой компьютер выполняет системные задачи и задачи установленных и используемых приложений. Общая производительность системы может быть ограничена скоростью доступа к физическим жестким дискам, количеством памяти доступной текущим процессам, скоростью процессора и максимальной пропускной способностью сетевых интерфейсов. Иногда, именно при помощи компонентов, предназначенных за мониторингом производительности вашего компьютера, вы можете проанализировать и отследить использование доступных ресурсов отдельными приложениями и процессами, после чего правильно спланировать аппаратные ресурсы в соответствии с возрастающими запросами.
Для обнаружения проблем с производительностью системы используется утилита «Системный монитор». Системный монитор – это оснастка консоли управления MMC операционных систем Windows, предназначенная для анализа работы программ на производительность компьютера в реальном времени, а также для создания интерактивных коллекций системных счетчиков или группы сборщиков данных для многократного использования. Помимо вышеперечисленных действий, при помощи данной оснастки вы можете в реальном времени осуществлять контроль над производительностью приложений и оборудования, выбирать данные, которые будут сохраняться в файлах журналов, задавать пороговые значения для оповещений и автоматических действий, генерировать отчеты и просматривать историю производительности системы, используя различные способы сортировки и многое другое. Данное средство удобно для кратковременного наблюдения за текущей производительностью локального или удаленного компьютера. Например, если требуется проследить за выполнением какого-либо системного процесса.
Системный монитор визуально отображает встроенные счетчики производительности Windows в реальном времени или в режиме просмотра предыдущих дат, а также совмещает такие службы, как журналы и оповещения производительности (Performance Logs and Alerts – PLA: служба, которая по заранее определенному графику собирает данные о производительности на локальном и удаленных компьютерах, а затем заносит их в журнал или использует для создания сообщения), советник по производительности сервера (Server Performance Advisor — SPA: приложение, предназначенное для диагностики производительности Windows Server 2003) и системный монитор.
В этой статье вы узнаете о том, как открывать и использовать оснастку «Системный монитор». К сожалению, функционал данной оснастки довольно велик, поэтому в данной статье вы познакомитесь со средствами узла «Средства наблюдения». В следующей статье вы узнаете о различных счетчиках, затем я расскажу вам о группах сборщиков данных. В четвертой статье вы познакомитесь с функционалом управления отчетами, а затем на нескольких примерах я покажу принцип работы всех этих средств. В заключительной статье вы научитесь анализировать производительность свой системы средствами командной строки.
Введение
Как известно, для того чтобы ваш компьютер и установленная на него операционная система нормально функционировали, необходимо периодически следить за ошибками и предупреждениями в журнале событий, а также проверять отчет о неполадках при помощи журнала стабильности. Но во время использования специализированных программ, игровых приложений или при работе операционной системы в целом, вы можете ощущать, что ваша система «тормозит» и работает совсем не так, как вам бы этого хотелось. Но иногда неполадки обнаруживаются не сразу, и для их идентификации требуется дополнительный анализ. Если вы не обнаружили никаких ошибок в указанных выше средствах диагностики неполадок операционной системы, то, возможно, у вас есть некие проблемы, связанные с производительностью. По определению, производительность – это скорость, с которой компьютер выполняет системные задачи и задачи установленных и используемых приложений. Общая производительность системы может быть ограничена скоростью доступа к физическим жестким дискам, количеством памяти доступной текущим процессам, скоростью процессора и максимальной пропускной способностью сетевых интерфейсов. Иногда, именно при помощи компонентов, предназначенных за мониторингом производительности вашего компьютера, вы можете проанализировать и отследить использование доступных ресурсов отдельными приложениями и процессами, после чего правильно спланировать аппаратные ресурсы в соответствии с возрастающими запросами.
Для обнаружения проблем с производительностью системы используется утилита «Системный монитор». Системный монитор – это оснастка консоли управления MMC операционных систем Windows, предназначенная для анализа работы программ на производительность компьютера в реальном времени, а также для создания интерактивных коллекций системных счетчиков или группы сборщиков данных для многократного использования. Помимо вышеперечисленных действий, при помощи данной оснастки вы можете в реальном времени осуществлять контроль над производительностью приложений и оборудования, выбирать данные, которые будут сохраняться в файлах журналов, задавать пороговые значения для оповещений и автоматических действий, генерировать отчеты и просматривать историю производительности системы, используя различные способы сортировки и многое другое. Данное средство удобно для кратковременного наблюдения за текущей производительностью локального или удаленного компьютера. Например, если требуется проследить за выполнением какого-либо системного процесса.
Системный монитор визуально отображает встроенные счетчики производительности Windows в реальном времени или в режиме просмотра предыдущих дат, а также совмещает такие службы, как журналы и оповещения производительности (Performance Logs and Alerts – PLA: служба, которая по заранее определенному графику собирает данные о производительности на локальном и удаленных компьютерах, а затем заносит их в журнал или использует для создания сообщения), советник по производительности сервера (Server Performance Advisor — SPA: приложение, предназначенное для диагностики производительности Windows Server 2003) и системный монитор.
В этой статье вы узнаете о том, как открывать и использовать оснастку «Системный монитор». К сожалению, функционал данной оснастки довольно велик, поэтому в данной статье вы познакомитесь со средствами узла «Средства наблюдения». В следующей статье вы узнаете о различных счетчиках, затем я расскажу вам о группах сборщиков данных. В четвертой статье вы познакомитесь с функционалом управления отчетами, а затем на нескольких примерах я покажу принцип работы всех этих средств. В заключительной статье вы научитесь анализировать производительность свой системы средствами командной строки.
Ява
- inspectIT — это решение для управления производительностью приложений (APM) с открытым исходным кодом для мониторинга и анализа программных приложений, доступное по лицензии Apache , версия 2.0 (ALv2).
- JConsole — это профилировщик, который поставляется с Java Development Kit.
- JProfiler
- JRockit Mission Control , профилировщик с низкими накладными расходами.
- , профилировщик, интегрированный в IDE NetBeans (внутренне использует профилировщик jvisualvm )
- Plumbr , мониторинг производительности Java-приложений с автоматическим обнаружением первопричин. Связывает утечки памяти, неэффективность сборщика мусора, медленные вызовы базы данных и внешних веб-служб, заблокированные потоки и другие проблемы производительности со строкой исходного кода, которая их вызывает.
- OverOps , постоянная надежность для современной цепочки поставок программного обеспечения, автоматически обнаруживает и обеспечивает автоматизацию первопричин всех ошибок.
- VisualVM — это визуальный инструмент, объединяющий несколько инструментов JDK командной строки и облегченные возможности профилирования. Он входит в комплект Java Development Kit, начиная с версии 6, обновление 7.
- FusionReactor , мониторинг производительности приложений Java — низкие накладные расходы, инструменты производственного уровня для производственной отладки, профилирования кода, анализа памяти и потоков
Собственные счетчики производительности
Системный монитор — чрезвычайно удобный инструмент, однако значения счетчиков производительности можно читать из любого приложения для .NET, с помощью класса PerformanceCounter из пространства имен System.Diagnostics. Более того, можно даже создавать собственные счетчики производительности и добавлять их к множеству уже имеющихся.
Ниже описаны некоторые ситуации, когда может пригодиться создание собственных категорий счетчиков:
-
При разработке библиотеки, используемой как часть большой системы. Посредством счетчиков библиотека может сообщать информацию о производительности, что часто намного проще для разработчиков и системных администраторов, чем копаться в файлах журналов или в исходном коде.
-
При разработке серверной системы, принимающей нестандартные запросы, обрабатывающей их и возвращающей ответы (например, нестандартного веб-сервера или веб-службы), может потребоваться оценить скорость обработки запросов, количество встречающихся ошибок и другие похожие параметры. (Дополнительные подсказки можно найти в категории счетчиков производительности ASP.NET.)
-
При разработке высоконадежной службы Windows, которая выполняется без контроля со стороны человека и обменивается данными с нестандартным оборудованием. С помощью счетчиков производительности служба может сообщать о состоянии этого оборудования, о частоте следования операций обмена с ним и другие параметры.
Следующий фрагмент кода — это все, что необходимо, чтобы экспортировать из приложения категорию счетчиков производительности, имеющую единственный экземпляр, и обновлять их периодически. Предполагается, что класс MyUsers хранит информацию о количестве зарегистрировавшихся к настоящему моменту пользователей в вашем приложении, и вы хотите экспортировать эту информацию в виде счетчика производительности. (Чтобы скомпилировать этот фрагмент, потребуется добавить пространство имен System.Diagnostics.)
Как видите, нужно совсем немного усилий, чтобы определить собственные счетчики производительности, и они могут предоставлять весьма важную информацию. Корреляции системного и пользовательского счетчиков производительности часто бывает достаточно, чтобы понять причины, вызывающие проблемы с производительностью или настройками.
Системный монитор можно использовать и для сбора другой информации, не имеющей отношения к счетчикам производительности. Например, его можно применять для сбора информации о системных настройках — значений ключей из реестра, свойств объектов WMI и даже содержимого файлов на диске. Поддерживается также возможность захватывать данные, поставляемые провайдерами механизма ETW для последующего анализа. Используя XML-шаблоны, администраторы могут создавать группы сборщиков данных на других компьютерах и генерировать отчеты, выполнив всего несколько простых операций по настройке.
Счетчики производительности позволяют получить массу интересной информации о производительности, но они не могут использоваться как высокопроизводительная инфраструктура мониторинга и журналирования. Не существует системных компонентов, способных обновлять счетчики производительности чаще нескольких раз в секунду, а сама программа Performance Monitor не позволяет читать значения счетчиков чаще, чем один раз в секунду. Если для анализа потребуется выполнять замеры каких-либо характеристик тысячи раз в секунду, счетчики производительности окажутся непригодными для этого.
Монитор ресурсов Windows
Программа загружает обзор при запуске. В этом обзоре перечислены данные о процессоре, диске, сети и памяти, включая все процессы, которые используют ресурсы.
На боковой панели отображаются графики, которые показывают использование процессора, диска, сети и памяти в течение 60 секунд.
Вы можете захотеть скрыть графики, например, чтобы освободить место для более важных данных и запустить окно Resource Monitor с максимально возможным разрешением.
Обзорная вкладка является хорошей отправной точкой, поскольку она дает вам обзор использования ресурсов. Он подчеркивает использование процессора и памяти, использование диска и использование сети в режиме реального времени.
Каждый конкретный список предлагает множество информации. В блоке ЦП перечислены имена и идентификаторы процессов, IP-адреса сетевых блоков и передачи данных, жесткие сбои блока памяти и операции чтения и записи блока диска.
Если вы выберете конкретный процесс в разделе CPU, Resource Monitor перечислит использование диска, сети и памяти для этого процесса только в его интерфейсе. Это одно из отличий от диспетчера задач, так как вы не можете сделать что-то подобное в инструменте.
Мониторинг использования ЦП с помощью Resource Monitor
Вам нужно переключиться на вкладку CPU, если вы хотите подробно контролировать загрузку CPU. Там вы найдете список процессов на странице обзора, а также три новых списка сервисов, связанных дескрипторов и связанных модулей.
Вы можете фильтровать по процессам для отображения данных только для этих процессов. Это очень удобно, так как это быстрый способ увидеть ссылки между процессами, службами и другими файлами в системе.
Обратите внимание, что графики отличаются от отображаемых ранее. Графики на вкладке ЦП показывают использование каждого ядра, использование ЦП службы и общее использование ЦП
Связанные модули перечисляют файлы, такие как библиотеки динамических связей, которые используются процессом. Связанные дескрипторы указывают на системные ресурсы, такие как файлы или значения реестра. Они предлагают конкретную информацию, но иногда полезны. Например, вы можете запустить поиск дескрипторов, чтобы выяснить, почему вы не можете удалить файл в этот момент времени.
Resource Monitor дает вам некоторый контроль над процессами и сервисами на вкладке CPU. Щелкните правой кнопкой мыши по любому процессу, чтобы отобразить контекстное меню с параметрами, чтобы завершить выбранный процесс или все дерево процессов, приостановить или возобновить процессы и запустить поиск в Интернете.
Контекстное меню Сервисов ограничено запуском, остановкой и перезапуском сервисов, а также поиском информации в Интернете.
Память в мониторе ресурсов
Вкладка памяти перечисляет процессы так же, как вкладка ЦП, но с акцентом на использование памяти. Он имеет представление физической памяти поверх визуального распределения памяти на компьютере с Windows.
Если вы впервые получаете доступ к информации, вы можете быть удивлены тем, что довольно много памяти может быть зарезервировано аппаратно.
Графики показывают используемую физическую память, заряд фиксации и количество серьезных сбоев в секунду.
Каждый процесс перечисляется с его именем и идентификатором процесса, серьезными ошибками и различной информацией, связанной с памятью.
Вы получаете тот же уровень контроля в меню правой кнопки мыши, так что вы можете завершить любой процесс, используя его.
Информация об активности диска
Вкладка «Диск» в мониторе ресурсов Windows содержит информацию о дисковой активности процессов и информацию о хранилище.
Он визуализирует использование диска в целом и для каждого запущенного процесса. Вы получаете чтение операций чтения и записи на диск каждого процесса и можете использовать параметры фильтрации для фильтрации по определенному процессу или нескольким процессам.
В списке «Storage» внизу перечислены все доступные диски, доступное и общее пространство на диске, а также активное время.
Графики отображают длину очереди диска. Это индикатор для запросов к этому конкретному диску и хороший индикатор для определения того, может ли производительность диска не отставать от операций ввода-вывода.
Сетевая активность в Resource Monitor
На вкладке Сеть перечислены сетевая активность, TCP-соединения и порты прослушивания. Он перечисляет сетевую активность любого запущенного процесса в деталях. Это само по себе полезно, так как сразу сообщает, подключены ли процессы к Интернету.
Вы получаете списки TCP-соединений, которые выделяют удаленные серверы, к которым подключаются процессы, использование полосы пропускания и локальные порты прослушивания.
Теперь Вы : Вы используете монитор ресурсов?
Наши новогодние скидки
А на вкладке, например, с сетью, можно посмотреть какой процесс сколько взаимодействовал с интернетом, отправлял и получал данные, куда, в каком объёме, на какой локальный и удалённый адрес, какой порт использовался и прочее прочее. В общем-то практически всё тоже самое о чём мы с Вами говорили в статье про TCPView.
Возможно вас заинтересует: Windows пишет недостаточно памяти — что делать?
Ну и логично, что вкладка с диском, собственно, позволяет отслеживать какой процесс как использует ресурс чтения-записи, какими файлами (и в каких папках) на диске манипулирует и прочее прочее.
Такой вот инструмент. На сим, пожалуй, всё и можно переходить к послесловию.
Счетчики загрузки
Категория консоли производительности «Загрузка CLR .NET» включает счетчики производительности, предоставляющие данные о загружаемых сборках, классах и доменах приложений. Эти счетчики производительности представлены в следующей таблице.
Счетчик производительности | Описание |
---|---|
% времени на загрузку | Зарезервировано для последующего использования. |
Длительность поиска сборки | Зарезервировано для последующего использования. |
Байт в куче загрузчика | Отображение текущего размера памяти (в байтах), выделенной загрузчиком классов для всех доменов приложений. Выделенная память — это физическое пространство, зарезервированное в файле подкачки на диске. |
Текущих доменов приложений | Отображение текущего числа доменов приложений, загруженных в данном приложении. |
Текущее число сборок | Отображение текущего числа сборок, загруженных во всех доменах приложений текущего выполняемого приложения. Если сборка загружается как нейтральная к домену из нескольких доменов приложений, этот счетчик увеличивается только один раз. |
Загружено классов на текущий момент | Отображение текущего числа классов, загруженных во всех сборках. |
Частота загрузок доменов приложений | Отображение числа доменов приложений, загруженных в секунду. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. |
Частота выгрузок доменов приложений | Отображение числа доменов приложений, выгруженных в секунду. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. |
Частота загрузок сборок | Отображение числа сборок, загруженных во всех доменах приложений (в секунду). Если сборка загружается как нейтральная к домену из нескольких доменов приложений, этот счетчик увеличивается только один раз. Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. |
Частота загрузок классов | Отображение текущего числа классов, загруженных во всех сборках (в секунду). Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. |
Частота сбоев при загрузке | Отображение числа классов, при загрузке которых произошел сбой (в секунду). Усреднение по времени не производится; отображается разность значений двух последних выборок, деленная на длительность интервала выборки. Сбой загрузки может возникнуть по многим причинам, например из-за несоответствия требованиям безопасности или недопустимого формата. Дополнительные сведения см. в справке по службам профилирования. |
Всего сбоев при загрузке | Отображение пикового числа классов, которые не удалось загрузить с момента запуска приложения. Сбой загрузки может возникнуть по многим причинам, например из-за несоответствия требованиям безопасности или недопустимого формата. Дополнительные сведения см. в справке по службам профилирования. |
Всего доменов приложений | Отображение пикового числа доменов приложений, загруженных с момента запуска приложения. |
Всего выгружено доменов приложений | Отображение общего числа доменов приложений, выгруженных с момента запуска приложения. Если домен приложения загружается и выгружается несколько раз, значение этого счетчика увеличивается при каждой выгрузке домена. |
Общее число сборок | Отображение общего числа сборок, загруженных с момента запуска приложения. Если сборка загружается как нейтральная к домену из нескольких доменов приложений, этот счетчик увеличивается только один раз. |
Всего загружено классов | Отображение совокупного числа классов, загруженных во всех сборках с момента запуска приложения. |
Удаление счетчиков производительности
При проведении анализа производительности вашей системы может понадобиться удалить несколько счетчиков из получившегося отчета. Удалить счетчики можно так же просто, как и добавить. Для этого выполните одно из следующих действий:
- в области сведений оснастки «Системный монитор» выделите счетчик, который нужно удалить и нажмите на клавишу DELETE;
- откройте диалоговое окно свойств оснастки, перейдите на вкладку «Данные», выберите счетчик, который для дальнейшего анализа вам больше не потребуется (также вы можете выбрать сразу несколько счетчиков, удерживая клавишу CTRL) и нажмите на кнопку «Удалить», как показано ниже:
Рис. 3. Удаление счетчиков производительности из диалогового окна свойств оснастки
Просмотр активности на компьютере с помощью монитора ресурсов
Многие, даже начинающие пользователи, сносно ориентируются в диспетчере задач Windows и умеют найти процесс, который тормозит систему, или который выглядит подозрительным. Монитор ресурсов Windows позволяет увидеть еще больше подробностей, которые могут потребоваться для решения возникших с компьютером проблем.
На главном экране вы увидите список запущенных процессов. Если отметить любой из них, внизу, в разделах «Диск», «Сеть» и «Память» отобразятся активности только выбранных процессов (используйте кнопку со стрелкой для того, чтобы открыть или свернуть любую из панелей в утилите). В правой части находится графическое отображение использования ресурсов компьютера, хотя на мой взгляд, лучше свернуть эти графики и опираться на цифры в таблицах.
Нажатие правой кнопкой мыши по любому процессу позволяет завершить его, а также все связанные процессы, приостановить или же найти информацию о данном файле в Интернете.
Использование центрального процессора
На вкладке «ЦП» вы можете получить более подробную информацию об использовании процессора компьютера.
Также, как и в главном окне, вы можете получить полные сведения только об интересующей вас запущенной программе — например, в разделе «Связанные дескрипторы» отображается информация об элементах системы, которые использует выбранный процесс. И, если к примеру, файл на компьютере не удаляется, так как занят каким-либо процессом, вы можете отметить все процессы в мониторе ресурсов, ввести имя файла в поле «Поиск дескрипторов» и узнать, какой именно процесс его использует.
Использование оперативной памяти компьютера
На вкладке «Память» в нижней части вы увидите график, отображающий использование оперативной памяти RAM на вашем компьютере
Обратите внимание, что если вы увидите «Свободно 0 мегабайт», не стоит переживать по этому поводу — это нормальная ситуация и в действительности, память, отображенная на графике в графе «Ожидание» — это тоже своего рода свободная память
В верхней части — все тот же список процессов с подробной информацией по использованию ими памятью:
Вкладка Диск
На данной вкладке вы можете просмотреть скорость операций чтения записи каждого процесса (и суммарный поток), а также увидеть список всех запоминающих устройств, а также свободного места на них.
Использование сети
С помощью вкладки «Сеть» монитора ресурсов вы можете просмотреть открытые порты различных процессов и программ, адреса, по которым они обращаются, а также узнать, разрешено ли данное соединение брандмауэром. Если вам кажется, что какая-то программа вызывает подозрительную сетевую активность, кое-какую полезную информацию можно почерпнуть именно на этой вкладке.
Опыт оптимизации и контроля производительности в БД с 3000 пользователей Промо
Данная статья написана по материалам доклада, прочитанного на Конференции Инфостарта IE 2014 29-31 октября 2014 года.
Меня зовут Сергей, являюсь руководителем отдела оптимизации и производительности систем в компании «Деловые линии».
Цель этого доклада – поделиться информацией о нашем опыте работы с большой базой на платформе 1С, с чем пришлось столкнуться, как удалось обеспечить работоспособность.
Уверен, что вам будет интересно, так как подобной информацией мало кто делится, да и про само существование таких систем их владельцы стараются не рассказывать, максимум про это «краем глаза» упоминают участвовавшие в проекте вендоры.
**update от 04.03.2016 по вопросам из комментариев