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

Различия в производительности веб-серверов Linux и Windows 7

Недавно я попытался запустить несколько тестов, и я хотел что-то проверить в Windows, и обнаружил огромные различия в производительности между базовыми веб-серверами HTTP на одной машине с Linux и Windows.

Я тестировал несколько веб-серверов IIS, Apache2, Lighttpd с разными клиентами Apache ab и моим собственным клиентом, и результат был тем же (запросов в секунду) id, отображающим простую веб-страницу HTML (страница веб-сервера по умолчанию) размером в несколько сотен байтов. размер:

           IIS 7.5   Apache 2.2  Lighttpd
Windows    750         800        -
Linux      -         9,300        22,000

Я пытался отключить Антивирус в Windows, но результат не изменился.

Я не понимаю одного, как дела тем же аппаратно (i5 2,4 ГГц 4G) веб-сервер в самой тривиальной задаче не справляется с такими же нагрузками.

Даже если я «про-Linux», я все еще не могу понять, как это может быть так по-разному. Обе 64-битные новейшие операционные системы (Linux 2.6.35 и Windows 7), но разница на порядок.

Окружающая среда:

Вопрос:

Перед тем, как проголосовать за закрытие:

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

Кто-нибудь?

Для всех респондентов, которые предложили использовать Windows Server 2008 ...

Это был АниВирус. Он не был отключен должным образом.

После его отключения производительность улучшилась с 600 до 5000 запросов / с - не так хорошо, как в Linux, но, по крайней мере, разумно.

Мне было бы больше интересно увидеть сравнение с Server R2. Windows 7 не должна запускать веб-серверы, хотя я согласен, что разница в результатах кажется очень большой.

Тест, который вы могли бы провести, чтобы увидеть, связано ли это со слоем ОС или ниже, состоял бы в том, чтобы повторно запустить тест Linux, находясь на виртуальной машине с Windows 7. Если вы испытываете аналогичные числа, но немного меньше, то исходный Linux это доказывает, что Windows 7 ответственна. Если вы испытываете числа, похожие на Windows 7, у вас может быть проблема с тем, как Windows 7 использует ваше оборудование, возможно, проблема с драйвером или аналогичная проблема низкого уровня.

Тестирование статической страницы с небольшим количеством контента или без него при использовании ограниченного количества подключений - плохой тест.

Что вы хотите сделать, так это смоделировать 30+ пользователей, обращающихся к страницам, которые одновременно используют PHP и MySQL с несколькими активами.

В этом случае вы увидите, что хорошо настроенный WAMP (например, WampDeveloper, который я использую) соответствует или превосходит аналогичную настройку LAMP.

В Windows потоки являются предпочтительным механизмом (по сравнению с моделями на основе процессов в Linux).

Убедитесь, что вы используете PHP как модуль на основе потоков (а не процесс FCGI, хотя это тоже подойдет).

Отредактируйте настройки Apache KeepAlive и MPM ...

C: \ WampDeveloper \ Config \ Apache \ extra \ httpd-default.conf

KeepAlive On
KeepAliveTimeout 1

C: \ WampDeveloper \ Config \ Apache \ extra \ httpd-mpm.conf

ThreadsPerChild 64
ThreadLimit 64

Это создаст около 64 потоков, каждый из которых будет работать с одним и тем же клиентом около 1 секунды.

ab -c 32 -n 10000 http://127.0.0.1/page-with-PHP-and-MySQL-and-Assets.php