Счетчики работы сети

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

Счетчик производительности

Описание

Получено байт

Общее совокупное число байтов, полученных всеми объектами Socket в домене AppDomain с момента запуска процесса. Это число включает данные и любые относящиеся к протоколу сведения, не определенные в TCP/IP.

Отправлено байт

Совокупное число байтов, отправленных всеми объектами Socket в домене AppDomain с момента запуска процесса. Это число включает данные и любые относящиеся к протоколу сведения, не определенные в TCP/IP.

Установлено подключений

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

Получено датаграмм

Общее совокупное число пакетов датаграмм, полученных всеми объектами Socket в домене AppDomain с момента запуска процесса.

Передано датаграмм

Общее совокупное число пакетов датаграмм, отправленных всеми объектами Socket в домене AppDomain с момента запуска процесса.

Среднее время существования HttpWebRequest

Среднее время завершения для всех объектов HttpWebRequest, которые завершились в последний интервал в AppDomain с момента запуска процесса.

Среднее время существования в очереди HttpWebRequest

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

Создано HttpWebRequests/сек

Количество объектов HttpWebRequest, созданных за секунду в домене AppDomain.

Поставлено в очередь HttpWebRequests/сек

Число HttpWebRequest объектов, которые были добавлены в очередь в домене AppDomain за секунду.

Прервано HttpWebRequests/сек

Число объектов HttpWebRequest, в которых приложение вызвало метод Abort в домене AppDomain за секунду.

Завершилось со сбоем HttpWebRequests/сек

Количество объектов HttpWebRequest, получивших код состояния сбоя от сервера в домене AppDomain за секунду.

Заметки

Существует несколько поддерживаемых классов сетевых счетчиков производительности:

  • Счетчики событий измеряют , сколько раз произошло некоторое событие.

  • Счетчики данных, измеряющие количество отправленных или полученных данных.

  • Счетчики длительности измеряют длительность разных процессов. Измерения делаются в объектах в каждый интервал (обычно в секунду) после выхода из различных состояний.

  • Поинтервальные счетчики, измеряющие число объектов, осуществляющих определенный переход в интервал времени (обычно в секунду).

Сетевые счетчики производительности для событий включают:

  • Установлено подключений

  • Получено датаграмм

  • Передано датаграмм

Эти счетчики производительности предоставляют количества с момента запуска процесса. Количество установленных подключений Socket включает явные вызовы метода Socket приложением для установленного подключения сокета потока, а также внутренние вызовы класса Socket, сделанные другими классами (например, HttpWebRequest FtpWebRequest, WebClientи TcpClient).

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

Сетевые счетчики производительности для данных включают:

  • Получено байт

  • Отправлено байт

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

Существует два счетчика длительности, измеряющих время, которое требуется объектам HttpWebRequest для прохождения либо всего их жизненного цикла, либо части его:

  • Среднее время существования HttpWebRequest

  • Среднее время существования в очереди HttpWebRequest

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

  • Если приложение никогда не вызывает методы GetResponse и BeginGetResponse, то время существования объекта HttpWebRequest игнорируется.

  • Если объект HttpWebRequest вызывает исключение WebException при вызове метода GetResponse или EndGetResponse, то время существования заканчивается при возникновении исключения. Технически основной поток ответа также закрывается в этот момент (возвращаемый пользователю поток ответа является в действительности потоком памяти, содержащим копию потока ответа).

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

  • Создано HttpWebRequests/сек

  • Поставлено в очередь HttpWebRequests/сек

  • Прервано HttpWebRequests/сек

  • Завершилось со сбоем HttpWebRequests/сек

В счетчике HttpWebRequests Aborted/sec также учитываются внутренние вызовы Abort. Эти внутренние вызовы обычно вызываются временем ожидания, которое может потребоваться измерить в приложении.

Счетчик HttpWebRequests Failed/sec содержит число объектов HttpWebRequest, получивших код состояния сбоя от сервера в секунду. Это означает, что код состояния, полученный от HTTP-сервера в конце запроса, не был в диапазоне от 200 до 299. Коды состояния, которые обрабатываются и приводят к новому запросу (например, многие коды несанкционированного состояния 401), выдадут или не выдадут сбой в зависимости от результата повторения. Если приложение увидит ошибку на основе повторения, то этот счетчик увеличится на значение приращения.

Доступ к сетевым счетчикам производительности и управление ими может осуществляться с помощью PerformanceCounter и связанных классов в пространстве имен System.Diagnostics. Сетевые счетчики производительности также можно просмотреть с помощью консоли монитора производительности Windows.

Чтобы можно было использовать сетевые счетчики производительности, их необходимо включить в файле конфигурации. Все сетевые счетчики производительности были включены или отключены с помощью одного параметра в файле конфигурации. Отдельные сетевые счетчики производительности не могут быть включены или отключены. Дополнительные сведения см. в разделе Элемент <performanceCounter> (параметры сети).

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

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

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

Сетевые счетчики производительности приведены в двух категориях:

  • ".NET CLR Networking" — исходные счетчики производительности, появившиеся начиная с версии 2 платформы .NET Framework и поддерживаемые последующими версиями этой платформы.

  • ".NET CLR Networking 4.0.0.0" — все приведенные выше счетчики сокета плюс новые счетчики производительности, поддерживаемые платформой .NET Framework начиная с версии 4. Эти новые счетчики предоставляют сведения о производительности в объектах HttpWebRequest.

Дополнительные сведения о доступе к счетчикам производительности и управлении ими в приложении см. в разделе Счетчики производительности в .NET Framework.

См. также

Ссылки

Элемент <performanceCounter> (параметры сети)

Профилирование среды выполнения

System.Diagnostics

Другие ресурсы

Счетчики производительности в .NET Framework