powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Произвоительность ISAPI и ASP при доступе к БД MS SQL
5 сообщений из 5, страница 1 из 1
Произвоительность ISAPI и ASP при доступе к БД MS SQL
    #32022205
Sergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения за OFF topic, но я знаю, что среди вас есть кто писал ASP, CGI и ISAPi.
Написал ISAPI приложение, которое делает запросы к БД (MS SQL Server
2K)и выводит отчеты клиентскому броузеру.
Работает очень быстро (явно быстее чем CGI) , но есть одно но.
При синхронном(одновременном) подключении более 10 юзверов, т.е.
порядка 10 в секунду, ISAPI впадает в штопор, а именнно загружает
процессор(ы) на все 100 и не собирается из него вылезать.
Это происходит в силу довольно сложной обработки внутри Dll.
Если обработка на запрос довольно простая, то ISAPI
справляется "на пять из пяти" и никаких серьезных загрузок процессора нет.
Отсюда хочу спросить у тех кто РЕАЛЬНО разрабатывал и тестировал
ISAPI, CGI или ASP:
Хотелось бы узнать, как ведет себя ASP, CGI и ISPAI приложения в
подобных ситуациях у Вас?
Сервер на котором проходил тест Isapi имеет следующую конфигурацию:
2хPIII, 512 оперативка, скази. ОС Win2K Advanced server SP2, MSQ SQL 2K
...
Рейтинг: 0 / 0
Произвоительность ISAPI и ASP при доступе к БД MS SQL
    #32022236
Sergy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не уж-то никто не использует ASP?
...
Рейтинг: 0 / 0
Произвоительность ISAPI и ASP при доступе к БД MS SQL
    #32022281
При чем здесь ASP?

ASP используют многие. Но если внимательно прочитать твой вопрос, то окажется, что он касается на самом деле исключительно ISAPI, причем багу ты сам увязываешь с твоей собственной "сложной обработкой внутри DLL". Расклад такой:
1. На ISAPI опытных спецов совсем мало по сравнению с ASP
2. Тех немногих спецов по ISAPI, которые есть в природе, именно в этой конфе гораздо меньше.
3. Опытных спецов на ISAPI, которые к тому же ходят на этот форум, да еще со спец. знанием твоих собственных "сложных обработок внутри DLL", практически совсем не встречается в природе.

Отсюда следствие: шансы получить толковый ответ на твой вопрос - практически нулевые.
...
Рейтинг: 0 / 0
Произвоительность ISAPI и ASP при доступе к БД MS SQL
    #32022284
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю.
Мне так кажется, что ISAPI и ASP очень по-разному работают, в смысле обработки запросов, поэтому тут сравнивать тяжело.

Но склоняюсь естественно в пользу ASP. Простой пример: сами посмотрите, сколько сайтов работают на ASP, и не наблюдается повисания хотябы на сотнях клиентов, не говоря уж о десяти.
...
Рейтинг: 0 / 0
Произвоительность ISAPI и ASP при доступе к БД MS SQL
    #32022296
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую вставить свои 2 копейки... (может поможет).

Само по себе ядро обработки ASP - тоже представляет собой ISAPI-приложение (вроде - известный в природе факт?).
IIS-у наплевать на то, что запрашивает клиентский броузер, он просто знает, что если у этого "что" - расширение имени файла ".asp" (или ".aspx" с недавних пор) - то это "что" надо передать на обработку "движку" ASP, а потом получить от него обратно готовый HTML, который и впарить клиенту.

С точки зрения производительности - обрашения к БД средствами ASP (Server.CreateObject("ADODB.Recordset") и т.д.) происходит по-определению медленнее, чем те же самые действия из "самописного" ISAPI-приложения, т.к. во-первых - оно (ASP) интерпретатор, во-вторых - оно тратит ресурсы сервера на создание-инициализацию-открытие-закрытие-очистку довольно "навороченных" по функциональности объектов ADO.

Но есть как всегда "НО" - ISAPI-приложения (насколько мне известно) запускаются в адресном пространстве IIS, и что более плохо - ограничены числом его (IIS-a) потоков выполнения... Т.е. если вы (не дай Бог) скомпиллировали свое ISAPI-приложения в одно-потоковом режиме, то IIS так и будет запускать все (!!!) обращения к этому процессу в одном потоке "по очереди поступления" (что и приводит в загрузке процессора до 100%). Некоторой "альтернативой" является компилляция в режиме "разделения потоков", тогда IIS - в состоянии для каждого нового обращения к ISAPI-приложению создавать новый поток выполнения, но он делает это только (!!) в том случае, если все его "штатные" потоки уже заняты другой обработкой... Т.е. при большом количестве "одновременных" запросов - загрузки процессора в 100% не избежать, зато есть шанс избавиться от "толкотни в очереди" выполнения. Полная труба начнется (со слов некоторых знатоков), если вы захотите сделать настоящее много-потоковое ISAPI-приложение, которое якобы само в состоянии разделять свои потоки обработки, т.к. для этого необходимо будет синхронизировать потоки приложения и потоки IIS-a, а возможно ли это вообще - не знаю... (не специалист).

Но, как обычно, мелко-мягкие предлагают "разумный компромисс" - COM-объекты, загруженные на выполнение в MTS...
MTS - умеет разделять потоки выполнения лучше чем IIS...
IIS - умеет пользоваться объектами, загруженными в MTS, не тратя собственных ресурсов...

Что еще надо "ленивому" для полного счастья?

(пару мощных серваков и быстрый, надежный канал связи между ними)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Произвоительность ISAPI и ASP при доступе к БД MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]