Моя компания обновляет приложение / веб-сервер с 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.
В любом случае спасибо!