Назад | Перейти на главную страницу

Проблемы с производительностью в IIS7 и CGI (по сравнению с IIS6)

Моя компания обновляет приложение / веб-сервер с Windows 2003 до Windows 2008 (в основном потому, что хостинговые компании больше не предлагают 2003, и нам нужно новое оборудование для повышения производительности).

Наше приложение написано на Delphi (модули CGI), а база данных представляет собой (это немного смущает) файлы DBF.

Наш старый сервер:

Новый сервер:

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

Загрузка производственного сервера обычно ниже 5 запросов в секунду (довольно мало), за исключением случаев, когда Google выполняет индексацию (до 10-20). Иногда запросы занимают некоторое время (поиски, списки продаж ...).

ПРОБЛЕМА. У нас серьезные проблемы с производительностью. Новый сервер работает нормально, но теперь для выполнения запросов требуется вдвое больше времени. Плохо то, что 4 ядра во время выполнения кажутся довольно простаивающими.

Я включил 32-битные приложения в пул приложений. Я попытался создать веб-сад (с 4 рабочими процессами) и запустить 4 одновременных CGI с интенсивным использованием ЦП, но старый сервер все равно превосходит новый. Я попытался повысить приоритет рабочих процессов, ничего не изменилось.

Есть ли у кого-нибудь представление о том, что может происходить, и что я могу сделать, чтобы повысить производительность на новом сервере?

(помимо переписывания нашего приложения, очевидно)

Заранее спасибо!

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

Мы пробовали запускать исполняемые файлы консоли, которые в основном делали то же самое, что и CGI (доступ к той же базе данных FoxPro), и время выполнения было примерно таким же (хотя они должны были улучшиться, но, по крайней мере, они были не хуже).

Решение: Переустановите новый сервер с Windows 2003 Standard Edition..

Standard Edition (вместо Web Edition) позволяет Windows 2003 использовать все четыре ядра и 4 ГБ ОЗУ. Windows 2003 и IIS6 не наказывают наши CGI. Время выполнения одного CGI теперь примерно на 30% меньше, чем на старом сервере. Кроме того, 4 ядра позволяют обрабатывать двойное количество одновременных CGI.

В любом случае спасибо!