Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

 this.performanceCounterRequestsTotal.CounterName =

"# of Requests";

 this.performanceCounterRequestsTotal.Readonly = false;

 // ...

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

Listener
класса
QuoteServer
. Метод
Increment
увеличивает счетчик на 1, метод
IncrementBy
увеличивает счетчик на значение аргумента.

Для счетчиков производительности, которые показывают посекундные значения, в методе

Listener
обновляются только две переменные —
requestPerSec
и
bytessPerSec
:

void protected void Listener {

 try {

listener = new TCPListener(port);

listener.Start;

while (true) {

Socket socket = listener.Accept;

if (socket == null) {

return;

}

string message = GetRandomQuoteOfTheDay;

UnicodeEncoding encoder = new UnicodeEncoding;

byte [] buffer = encoder.GetBytes(message);

socket.Send(buffer, buffer.Length, 0);

socket.Close;

performanceCounterRequestsTotal.Increment;

performanceCounterBytesSentTotal.IncrementBy(nBytes);

requestsPerSec++;

bytesPerSec += Bytes;

}

 } catch (Exception e) {

string message = "Quote Server failed in Listener: " + e.Message;

eventLog.WriteEntry(message, EventLogEntryType.Error);

 }

}

Чтобы показывать обновленные значения каждую секунду, используется компонент

Timer
. Метод
OnTimer
вызывается раз в секунду и задает счетчики производительности с помощью свойства
RawValue
класса
PerformanceCounter
:

protected void OnTimer(object sender, system.EventArgs e) {

 performanceCounterBytesSentPerSec.RawValue = bytesPerSec;

 performanceCounterRequestsPerSec.RawValue = reguestsPerSec;

 bytesPerSec = 0;

 requestsPerSec = 0;

}

perfmon.exe

Теперь можно контролировать нашу службу. Утилита Performance может запускаться из Administrative Tools|Performance. Нажимая кнопку + в панели инструментов, можно добавить счетчики производительности. Quote Service будет определяться как объект производительности. Все сконфигурированные счетчики показаны в списке счетчиков:

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

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

Если

не существует ссылки на объект счетчика производительности, и объект был удален сборщиком мусора, счетчик этого объекта теряется и запускается в следующий раз с 0. Чтобы решить эту проблему, состояние можно хранить в службе счетчиков производительности. С помощью .NET Framework служба счетчиков производительности устанавливается в системе. Необходимо только запустить службу; можно также сконфигурировать службу для автоматического запуска во время начальной загрузки системы.

Свойства служб Windows 2000

Windows 95, 98 и ME не поддерживают службы Windows. Они поддерживаются в Windows NT, Windows 2000 и Windows ХР. Windows 2000 имеет несколько больше свойств для служб по сравнению с Windows NT. Рассмотрим свойства служб в Windows 2000.

Изменения сетевого соединения и события электропитания

В Windows 2000 не требуется, чтобы система перезагружалась так часто, как это было необходимо в Windows NT; например, не нужно перезагружать систему, когда изменяется адрес IP, — служба получает события при смене адреса и действует соответственно. Windows 2000 посылает следующие управляющие коды службам, когда изменяется сетевое соединение:

Управляющий код
SERVICE_CONTROL_NETBINDADD
Доступен новый компонент для соединения.
SERVICE_CONTROL_NETBINDREMOVE
Компонент для соединения был удален. Необходимо заново считать информацию соединения и отсоединиться от удаленного компонента.
SERVICE_CONTROL_NFTBINDENABLED
Ранее отключенное соединение снова включено.
SERVICE_CONTROL_NETBINDDISABLE
Ранее включенное соединение теперь отключено.

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

Windows 2000 добавляет также увеличенную поддержку управления электропитанием. Существует поддержка для перевода системы в нерабочее состояние — память записывается на диск, поэтому возможна более быстрая начальная загрузка системы. Также возможно временно остановить машину, чтобы сократить потребление электроэнергии, при этом система в случае необходимости автоматически пробуждается.

Для всех событий электропитания служба получает управляющий код

SERVICE_CONTROL_POWEREVENT
с дополнительными параметрами. В параметре отражена причина события. Код причины может говорить о разряженности батареи, о том, что система переходит в приостановленное состояние, или об изменении статуса электропитания. В зависимости от кода причины служба должна замедлить скорость, приостановить фоновые потоки выполнения, закрыть сетевые соединения, закрыть файлы и т.д.

Классы в пространстве имен

System.ServiceProcess
также имеют поддержку для этих свойств Windows 2000 Служба конфигурируется так, чтобы она реагировала на события паузы и продолжении с помощью свойства
CanPauseAndContinue
, и задается свойство для управления электропитанием:
CanHandlePowerEvent
. Службы Windows 2000, которые управляют электропитанием, регистрируются в SCM с помощью метода API Win32
RegisterServiceCtrlHandlerEx
.

Поделиться:
Популярные книги

Вамп

Парсиев Дмитрий
3. История одного эволюционера
Фантастика:
рпг
городское фэнтези
постапокалипсис
5.00
рейтинг книги
Вамп

Не грози Дубровскому! Том II

Панарин Антон
2. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том II

Купец III ранга

Вяч Павел
3. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец III ранга

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Сумеречный Стрелок 10

Карелин Сергей Витальевич
10. Сумеречный стрелок
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Сумеречный Стрелок 10

Законы Рода. Том 7

Flow Ascold
7. Граф Берестьев
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Законы Рода. Том 7

Боярышня Дуняша 2

Меллер Юлия Викторовна
2. Боярышня
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Боярышня Дуняша 2

Пятнадцать ножевых 3

Вязовский Алексей
3. 15 ножевых
Фантастика:
попаданцы
альтернативная история
7.71
рейтинг книги
Пятнадцать ножевых 3

Секретарша генерального

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
8.46
рейтинг книги
Секретарша генерального

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Облачный полк

Эдуард Веркин
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Облачный полк

Бастард Императора. Том 6

Орлов Андрей Юрьевич
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 6

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2