Счетчики работы сети
Категория "Организация сети 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> (параметры сети)
Профилирование среды выполнения