Главная | FAQ по 1C + SQL | FAQ по 1С | Разработка ПО | Управление проектами | Литература | Экстремальное программирование | Статьи | Скачать | Ссылки | Прочее

 

Практическое использование Windows NT 4.0 Terminal Server Edition

Повышение эффективности работы в системе "1С Предприятие"

Павел Дронов (mdr@rambler.ru)

 

Для начала немного истории. Я уже три года работаю системным администратором в фирме, занимающейся оптовой торговлей лекарствами. Все это время фирма росла, рос и документооборот. В конце концов, когда размер базы данных перевалил за 450 Мбайт, а количество активных пользователей за 6 человек, появилась насущная необходимость что-то делать.

 

В период активной работы на открытие накладной уходило до 40 секунд! Некоторые сложные отчеты приходилось оставлять на ночь. Для ускорения обработки отчетов, базу переписывали на локальные диски, создавали необходимые отчеты, затем стирали. Все эти действия, производимые по 10 Мбитной сети, тоже не воодушевляли. Загрузка сети, отслеживаемая по индикаторам на хабе, и коллизии находились "в красной зоне". Но самым печальным было то, что "1С Предприятие" на клиентских машинах периодически "падало" из-за превышения времени ожидания пакетов, ошибок захвата таблиц. Соответственно регулярно приходилось выходить, заходить монопольно, переиндексировать базу, снова выходить, чтобы могли зайти другие. Накладные приходилось сохранять по несколько раз в процессе работы. Кто работал в продуктах 1С, знает, что для сохранения документа, его необходимо закрыть, потом снова открыть для продолжения работы. Работать дома с актуальной информацией было невозможно, из-за низкого качества телефонной связи, приводящей к нарушениям структуры базы, и низкой скорости. Необходимо также отметить, что и скорость печати по сети была удручающе медленной.

 

В то время наша сеть состояла из 8 компьютеров (в среднем Pentium 166MMX, 32 Mбайт RAM) и еще одного, исполнявшего роль файлового сервера (PII 350, 128 Mбайт RAM, IDE HDD), объединенных витой парой при помощи хаба SMC 3616TC. На сервере стояла Windows NT 4.0, на клиентских машинах Windows 95 OSR2. Рабочим протоколом был (и остается) TCP/IP. Принтеров у нас 3, все они лазерные и доступны по сети, но для распечатки первичных документов использовался один HP LJ-6P, поэтому дальше будем рассматривать только его.

 

Итак, необходимость перемен была очевидной. Увеличение производительности сети за счет покупки 100 Мбитных карт и коммутатора Fast Ethernet, возможно, снизило бы остроту проблемы (неизвестно, правда, насколько сильно и надолго ли по времени), но лобовое решение не всегда бывает правильным; кроме того, работать дома с актуальной информацией было бы по-прежнему невозможно.

 

Переход на SQL-версию 1С, рассматривавшийся как вариант, отпал из-за негативных отзывов о ней всех, с кем я общался, высокой цены ($2400 за "1C Предприятие 7.5" + MS SQL Server 6.5 на 5 пользователей) и сложности настройки.

 

И вот, прослышав о Windows NT 4.0 Terminal Server Edition, мы решили рискнуть и попробовать внедрить такое решение у себя.

 

Памятуя о "скромных" запросах линейки Windows NT и следуя рекомендациям Microsoft, был куплен компьютер:

М/B
P-II Giga-Byte GA-686BXDS (dual) UW-SCSI ATX
CPU
2 x PII 450
RAM
512 Mбайт PC-100 SDRAM*
HDD1
IDE 4.3 Гбайт Quantum L04300 LA-A**
HDD2
WIDESCSI 9.1 Гбайт IBM Neptun 309170W
CD-ROM
IDE Panasonic 40x
Video
Tseng ET6000 PCI***
NetCard
Realtek 100 TX PCI
Modem
USR Courier ext.

Некоторые пояснения:

* - 512 Мбайт было приобретено, конечно, с запасом: согласно рекомендациям Microsoft, для оптимальной работы необходимо 128 Mбайт самой Windows и по 128 Mбайт на каждые 5 подключенных клиентов

** - 2 жестких диска было куплено затем, чтобы установить саму Windows со всеми необходимыми настройками и программами на IDE диск в раздел FAT16, незначительно пожертвовав (при таком объеме оперативной памяти) скоростью чтения. Взамен обретаем возможность скопировать всю структуру на CD-ROM на случай необходимости быстрого восстановления Windows - просто переписываем, загружаемся с Repair Disk - и работоспособность восстановлена. Файл подкачки и базу данных размещаем на SCSI. Кроме этого, если придет в голову создать RAID массив, то это легко сделать, купив еще один такой же SCSI диск

*** - Эта старая видеокарта была взята уже потом, после того, как выяснилась невозможность установить "неродные" драйвера для видео. Они или не устанавливались совсем, или вызывали нестабильную работу системы, выражающуюся в периодических ее "зависаниях". Драйвер же для Tseng ET6000 PCI имеется в стандартном наборе Windows

 

Установка проходит без особых проблем, однако хочу посоветовать, не устанавливать, без крайней необходимости, этот компьютер как primary или backup domain controller - скорость работы, особенно загрузки, сильно падает, а аппаратные требования возрастают. В процессе установки надо ответить на вопрос: сколько "Terminal Server Desktops" будет в наличии. Лучше соврать, указав раза в 2 больше, так как потом это число увеличить не удастся. Pagefile по умолчанию оказался размером в 1 Гбайт. Зачем системе столько, я не знаю: при просмотре статистики, он у нас ни разу не использовался более чем на 10%. Но менять размер я не стал, благо места много. Кроме 3 обычных сетевых протоколов ставится еще один - Remote Desktop Protocol (RDP), собственно и обеспечивающий обмен данными с клиентами. Windows NT 4.0 Terminal Server Edition сразу же после установки имеет уровень Service Pack 3. Свежие SP и заплатки можно скачать отсюда:

 

http://www.microsoft.com/ntserver/terminalserver/downloads/recommended/tsesp4/

http://www.microsoft.com/ntserver/terminalserver/downloads/recommended/tsesp5/

ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40TSE/hotfixes-postSP3

 

Клиенты для терминальных сессий создаются средствами самой Windows при помощи пункта меню "Administrative Tools"-"Terminal Server Client Creator". Однако пользоваться этим клиентом неудобно по ряду причин:

  • " Из программы, запущенной в терминальной сессии не видны локальные диски (как HDD, так и FDD) и принтеры. Точнее, если постараться, то их можно увидеть, но как сетевые! То есть получается парадокс: чтобы отправить что-то на свой принтер, это "что-то" надо прогнать до сервера и назад по сети! Решение, прямо скажем, не лучшее с точки зрения уменьшения сетевого трафика. С файлами то же самое. Мало того - если хочешь иметь возможность записывать на локальные диски, все их, у всех компьютеров, необходимо открыть для полного доступа
  • " Программа может быть запущена только в полноэкранном режиме, что не всегда удобно

 

Поэтому рекомендую сразу ставить поверх Windows продукт фирмы Citrix Systems - Citrix MetaFrame (в моем случае использовалась версия 1.8).

 

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

 

Небольшое лирическое отступление по этому поводу. Хотя компьютеров слабее Pentium 166MMX, 32 Mбайт RAM, 3 Гбайт HDD у нас нет, я, вдохновившись этой возможностью, провел небольшой эксперимент:

 

Создав клиента для DOS (2 дискеты), я загрузился в Command prompt и установил программу. Запустив мышь и сеть Microsoft вручную (Net init, net start, net logon…), запускаю клиента и, ответив на пару простых вопросов об имени моего сервера, протоколе связи и отданных в запуск на терминале приложениях (Published applications) получаю окно "1С Предприятия", развернутое во весь экран. Скорость работы такая, какая и должна быть на Dual PII 450, 512 Mбайт RAM - то есть выше всяких похвал. Порадовала возможность подключиться по модему/нуль-модему. Из замеченных недостатков - только низкий Refresh Rate видеокарты, который можно исправить добавлением в config.sys утилитки, устанавливающей его принудительно (использовалась с некоторыми карточками в Windows 3.11).

 

После столь удачной попытки, я решил попробовать обойтись без жесткого диска. Взяв вместо сети Microsoft Novell NetWare Lite 1.0 (объем установленной версии 423 Kбайт), я загрузился с дискеты, подключил сеть и, переписав на виртуальный диск все необходимое, добился того же замечательного результата.

 

Принимая во внимание то, что в качестве Published application могут выступать почти все широко используемые в офисе программы, включая Word и Excel, мы получаем по настоящему дешевые рабочие места.

 

Дополнительным, и очень важным, плюсом при работе с Citrix MetaFrame является возможность, взяв с собой ноутбук, подключиться через модем к серверу и работать с приемлемой скоростью в любой точке, до которой идут телефонные провода. Причем никакие помехи на линии, никакие разрывы связи Вам не помешают: после разрыва связи терминальная сессия не прерывается и Вы, перезвонив, попадаете туда же, где были до сбоя. То есть при работе из другого города можно позвонить, запустить, к примеру, крупный отчет, отключиться и, перезвонив через 10 минут, распечатать его на месте. Фантастика!

 

Но, однако, я отвлекся. После установки клиентов Citrix MetaFrame первый раз их нужно запустить в режиме Server Desktop, зайти в контрольную панель на каждой клиентской машине и установить русский язык - по умолчанию он не ставится. Следствием этого является невозможность переключиться на кириллицу ни в каких приложениях.

 

Еще одна доработка заключается в исправлении реестра: В ветви [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers] нужно изменить на 0 значения параметров "NetPopup" и "EventLog". Первый отключает посылку уведомлений о выполненной печати, а второй запись их в лог. После этого можно грузить Published applications и наслаждаться.

 

Итак, что же у нас получилось.

 

Схема нашей сети на сегодня представлена на рисунке:

1 Сервер приложений P1 HP LJ-6P
2 Файловый сервер P2 HP 1100
3 Прокси-сервер P3 HP LJ-6L
4 Сервер модемного заказа P4 Canon BJC 2000

 

С прискорбием должен отметить, что все сервера в нашей фирме используются как рабочие станции, что, конечно, в корне неправильно, но, увы, сказывается тяжелая экономическая ситуация в стране ;)

 

Сервер приложений включен постоянно, что стало возможным вместе с покупкой Smart-UPS, который позволяет корректно выключать его при длительном отсутствии напряжения в сети без участия персонала.

 

Поскольку все копии "1С Предприятия" запускаются на одном компьютере, налицо следующие положительные моменты:

  • " при подключении к серверу приложений достаточно мощного принтера установке его в место наибольшего потребления накладных (к примеру, на складе), существенно сокращается время печати первичных документов, поскольку не происходит перекачки заданий по сети "
  • скорость выполнения отчетов сократилась радикально. К примеру, прайс-лист на 1500 наименований с восемью категориями цен, с остатками, сроками годности и количеством в упаковке, выполняется на сервере не более чем за 50 секунд. Если запускаться с терминала, все происходит чуть медленнее (на 8 секунд) Причем, эта разница остается величиной постоянной для любых отчетов, запускаемых локально и удаленно, видимо это время тратится на передачу задачи. Загрузка процессоров в это время не слишком велика

Запуск двух одинаковых отчетов, в частности прайсов, на сервере и терминале загружает процессоры сильнее, но все равно не критично; время изготовления на терминале больше все на те же 8 секунд

 

Но особенно сильно улучшилась производительность при активной работе: любые документы стали открываться моментально, как если бы ты был один. При среднем и максимальном количестве активных пользователей, время изготовления некоторых крупных отчетов, особенно берущих много первичных данных, сократилось в 40-60 раз! Ниже представлена загрузка процессоров при активной работе 6 человек.

Справедливости ради надо сказать, что такой выигрыш возможен, только если сервером приложений служит действительно мощный компьютер. Я думаю, если поставить на место сервера что-то слабее PII 450, 128 Mбайт RAM, то производительность даже снизится. Также, по моему мнению, настоятельно необходим SCSI диск, как более быстрый и менее нагружающий процессор(ы) при операциях чтения/записи.

  • значительно упрощается администрирование/апгрейд программы. Еще одно отступление. Раньше мне, для того, чтобы что-то изменить в "1С Предприятии" или зайти в него монопольно, нужно было долго обзванивать пользователей, с просьбой выйти из программы, доказывая им, что это для их же блага, на что они частенько говорили, что сильно заняты, и все прочее. Теперь в руках администратора появился мощный инструмент для пресечения произвола пользователей - Terminal server administration. С его помощью можно легко послать сообщение, отключить любого пользователя, причем, отключение пользователя происходит вполне корректно, как если бы он нажал Alt+F4. "

  • в теории исчезают проблемы с HASP ключом, так как программа в любом случае видит локально установленный ключ. Поясню, почему в теории. У себя мы так и не смогли добиться того, чтобы принтер, подключенный в LPT порт через HASP, работал. Попытка распечатать что-либо, заканчивалась "повисанием" задания. Разбираться мы не стали, оставив HASP ключ на файловом сервере
  • загрузка сети сильно снизилась, исчезли коллизии. Документы с файлового сервера стали открываться ощутимо быстрее

 

Теперь давайте попытаемся прикинуть примерную денежную выгоду при покупке оборудования. Если покупать для рабочих мест б/у компьютеры класса 486DX4-100, то можно обойтись по $100 - 150 против $450 - 500 за полноценный PC. То есть выигрыш с каждого компьютера составит как минимум $300, не считая всех вышеописанных преимуществ терминальной схемы работы. В принципе, можно купить и новые рабочие станции без жестких дисков, дисководов и грузиться по сети, что обойдется не намного дороже б/у-шных, ведь не обязательно покупать дорогие и качественные комплектующие поскольку "падение" терминала не приводит к краху системы. Экономия в этом случае составит долларов 200-250. Правда на сервер придется потратить минимум на $1000 больше. При монтаже сети на 20 компьютеров набегает тысяч пять экономии, за которые можно купить вышеописанное программное обеспечение, которое, конечно, не назовешь дешевым и общедоступным.

 

В качестве еще одного аргумента "за", может служить то, что кража терминала, не вызовет серьезных убытков из-за его невысокой цены и отсутствия на нем ценной информации, достаточно хорошо охранять сервер.

 

И несколько слов в заключение. Мы внедрили эту схему работы с начала этого года. Народ воспринял ее благосклонно, но без особого энтузиазма. Поработали 3 месяца, после чего у нас вышел из строя терминальный сервер, и 2 дня пришлось работать по старой схеме. Вот тогда-то все и оценили преимущества, которых временно лишились. Повторный ввод сервера в строй сопровождался "бурными и продолжительными аплодисментами, переходящими в овацию".

25 августа 2000 г.


 

Рекомендуемая литература:

Архитектура `тонкого` клиента в Windows NT/2000. Реализация терминальных служб и Citrix MetaFrame Рекомендую!

Тодд В. Мазерс (2001)

Эта книга написана опытным специалистом по разработке масштабируемых решений на основе `тонких` клиентов с использованием Microsoft Windows 2000 Terminal Services или Windows NT Server 4.0 Terminal Server Edition и расширений Citrix MetaFrame к этим ... [подробнее]

 

Дополнительная литература по теме >>>

 

 

Copyright © 2000-2002

Автор: denis2001@pisem.net

http://thebeautiful.narod.ru

 

 

Hosted by uCoz