Система балансировки нагрузки на несколько СП (монитор производительности серверов и переадресация терминалов)

Автор:Goblin
Дата:20.01.2006
Просмотров:2218
Скачиваний:668
Оценка:, Оценок - 1
Скачать (rar-файл; Размер - 122449)

Обсудить в форуме

Описание

Сервер статистики (apsrvmon.exe) периодически считывает текущую загрузку компонентов серверов приложений: процессора, памяти, сетевого интерфейса, количество работающих процессов из числа интересующих нас, также проверяет по запросу клиента стаус определенного TCP порта на предмет запущенного СП, используя для этого стандартные средства API и пару недокументированных (но стандартных) функций WinNT. Работает под WinNT, начиная с 4.0 SP4. Тестировал под NT4.0SP6 server, W2kSP4 server, W2k3SP1 server.

Клиентская часть (apsrvbln.exe) опрашивает сервера статистики средствами WSA, затем расчитывает приоритетный сервер по двум алгоритмам: 1 - если найден сервер(ы), где процессор и память нагружены менее 50%, то приоритетным будет тот, где запущено меньше отслеживаемых процессов, 2 - рассчитываются весовые коэффициенты для каждого сервера, приоритетным будет менее загруженный сервер (если от серверов не получено статистики, то веса расчитываются случайным образом, то есть запуск терминала будет произведен, даже если нет ни одного работающего сервера). После выбора приоритетного сервера запускает терминал, настроенного на работу с этим сервером и выгружается из памяти, оставляю терминалу свою консоль. Может вести журнал работы, рассылать критические сообщения средствами SMTP и NetSend, блокировать кнопку закрытия консоли, устанавливать определенный размер консоли в символах отдельно по вертикали и по горизонтали. Также умеет обновлять собственный exe файл, скачанный с сервера статистики (на будующее). Работает под всеми Windows, начиная с 98 (под 95 не проверял). NetSend работает только под NT.

Оба exe файла имеют настроечные ini файлы, создающиеся при первом запуске из шаблона и короткую справку, вызывающуюся со стандартными ключами. apsrvmon.exe - сервис WinNT, ставится и удаляется из командной строки.

Ярлык на клиентских р/ст нужно делать на сам exe-файл apsrvbln. Если ярлык будет на bat-ник, то после запуска term.exe и выгрузки apsrvbln командный процессор (cmd.exe) установит свои параметры консоли перед тем как выгрузится сам, в результате у терминала будут перехватываться некоторые комбинации клавиш и будет невозможно работать мышью. Можно сделать в батнике команду start apsrvbln.exe, но тогда вновь созданная консоль будет иметь параметры по умолчанию вместо пользовательских. Вообщем тут есть над чем подумать: можно, конечно, оставлять apsrvbln в памяти, тогда с консолью будет все красиво, но на каждый терминал будет висеть по экземпляру cmd.exe и apsrvbln.exe, или создавать свою консоль и менять ей параметры - пока решил оставить так. На самом деле батник нужен только под 98, для того чтобы пользователи могли сохранять свои параметры консоли.

Писано на MS VC++. Исходники прилагаются.