Pull to refresh
0
0
Send message
dmach, я поговорил с девелопером который кодировал WAS — он подтвердил, что WAS действительно потребляет больше памяти, особенно в случае хостинга когда на одной машине находится множество сайтов. Причина, как было уже упомянуто, в том что WAS загружает все содержимое applicationHost.config в память и потом соединяет и раздает конфигурацию в рабочие процессы. Размер памяти потребляемой WAS прямо пропорционален размеру applicatioHost.config. Команда, которая работает над WAS'ом, сказала, что они слышали об этой проблеме от клиентов и рассматривают способы улучшить это в IIS8 (надо уточнить что в Win7 и Windows Server 2008 R2 будет IIS 7.5, с существующей конфигурационной системой).
Насчет разделения сайтов в различные рабочие процессы — это не бред :), вот ссылка на хостинг документацию, которая была написана IIS командой. Там есть MS Word атачмент к посту (его не очень легко заметить). Мы работали с многими хостерами, чтобы проанализировать типичную веб нагрузку на серверах. На основе этого был определено, что не все сайты активны не сервере одновременно. В среднем обычно 10% сайтов работают, что уменьшает количетсво рабочих процессов на сервере. Конечно, веб нагрузка может отличатся от хостера к хостеру. Параметры тестированя которые использовались IIS командой были следуюшие:
1. До 4000 веб сайтов в отдельных рабочих процессах(не все рабочие процессы работают одновременно)
2. Нагрузка: 90% запросов на 10% сайтов (примерно 400 рабочих процессов работают одновременно)
Это тестировалось на машине с 4 Гб памяти и все это выдавало приемлемые результаты. Я не упоминаю здесь детали других преимуществ разделения процессов (security isolation, manageability, etc).
Наверняка есть какие то причины по которым вы выбрали конфигурацию с использованием одного рабочего процесса для 1000 сайтов. Некоторые хостеры, которые работают с IIS7 используют такую конфигурацию. С такой конфигурацией размер DefaultAppPool.config будет сравнимый с размером applicationHost.config (вы это упоминали в своем блоге). Если бы использовались отдельные рабочие процессы то размеры каждого временного .config намного меньше. Это конечно же не значит, что полное потребление памяти на сервере будет меньше если будут работать 1000 рабочих процессов вместо одного, но если не все 1000 сайтов активны в одно и то же время, то возможно, что полное потребление памяти будет меньше.
Теперь конкретно о svchost.exе и inetinfo.exe. Насколько я понимаю, вы используете metabase compatibiliy для конфигурирования сервера. Опять же, наверняка у вас есть какие то причины для этого, но если бы вы могли избавится от metabase compat, и использовать новые средства конфигурации, то тогда бы у вас не было intinfo.exe.
Как я уже упоминал, размер svchost.exe, где находится WAS, прямо пропорционален размеру applicatioHost.config. Я слышал (но сам не тестировал), что при использовании ADSI, может получится, что конфигурация по умолчанию в applicationHost.config файле дублируется для индивидуальных сайтов, что в некоторых случаях может увеличить размер конфиг файла. Если вы можете выслать мне applicationHost.config файл (пожатый) на ruslany at microsoft dot com, то можно будет более точно подтвердить это.
Спасибо за коментарии, было интересно почитать ваш блог :). Я починил контакт форму на своем сайте (баг в WordPress плагине) — так что можете использовать ее (http://ruslany.net/contact/), если есть какие то вопросы по IIS. Также, можете использовать email адрес упомянутый выше.

Information

Rating
Does not participate
Registered