Лимит выделенной памяти iis wsus
В процессе централизованной раздачи клиентам System Center 2012 R2 Configuration Manager (SCCM) очередной порции обновлений с сервера с ролью Software Update Point (SUP)столкнулись с ситуацией пиковой загрузки на канале передачи данных - участка с низкой пропускной способностью на канале между структурными подразделениями и площадкой, на которой был расположен сервер SCCM. По графику отдачи трафика на сервере SCCM было хорошо видно, что исходящий трафик “упёрся” в границу того самого “узкого места на канале. Разумеется таких ситуаций чаще всего можно избежать заранее настраивая приоритизацию трафика на разных уровнях, начиная с сетевого оборудования. Но что делать, если по какой-то причине проблема возникла прямо здесь и прямо сейчас, а доступа к сетевому оборудованию нет. То есть фактически нужно как-то оперативно “задушить” трафик отдачи обновлений Windows Update на определённый момент времени средствами Windows. Простое и эффективное решение подсказал автор заметки Ограничиваем аппетиты WSUS-а .
В качестве решения предлагается ограничение общей пропускной способности (в байтах) веб-сервера IIS. За это отвечает параметр maxGlobalBandwidth в разделе конфигурации IIS - system.applicationHost/webLimits .
Чтобы запросить текущие значения параметров в указанном разделе конфигурации IIS с помощью утилиты командной строки appcmd.exe выполним:
В полученном ответе мы увидим, что значение по умолчанию для интересующего нас параметра параметра – 4294967295:
Предположим, нам нужно уменьшить полосу пропускания трафика IIS до 20 Mbit/s. Рассчитаем необходимое значение параметра в байтах: (20 * 1024 * 1024)/8 = 2 621 440 байт.
Выполним команду установки рассчитанного значения:
Туже самую настройку можно выполнить и через консоль IIS Manager, перейдя на уровне веб-сервера в раздел Management > Configuration Editor
В поле Section из выпадающего дерева элементов конфигурации выберем system.applicationHost/webLimits , зададим значение интересующего нас параметра maxGlobalBandwidth и нажмём в правом меню действий Apply, чтобы изменения вступили в силу.
Результат сможем наблюдать сразу же. В нашем случае с настройками IIS по умолчанию отдача трафика клиентам была на пределе возможностей “узкого места” в сети, что вызывало ряд вытекающих проблем для пользователей находящихся в “задушенном” сегменте сети.
Сразу после применения рассчитанного нами параметра ситуация изменилась на глазах…
Таким образом критическая ситуация загрузки канала была ликвидирована.
У такого подхода к ограничению трафика в отличии от классического использования QoS есть преимущество в том, что в случае необходимости изменения пропускной способности по какому-то заданному расписанию, можно прибегнуть к помощи планировщика заданий Windows, запуская из него в нужное время вышеприведённую команду настройки IIS.
В этой статье данная статья содержит советы по предотвращению конфигураций с низкой производительностью из-за ограничений конструкции или конфигурации в WSUS.
Оригинальная версия продукта: Диспетчер конфигурации (текущая ветвь), Windows Server Update Services
Исходный номер КБ: 4490414
Ограничения емкости
Хотя WSUS может поддерживать 100 000 клиентов на сервере(150 000 клиентов при использовании Configuration Manager), мы не рекомендуем приближаться к этому ограничению.
Вместо этого рассмотрите возможность использования конфигурации 2-4 серверов с одной SQL Server базой данных. Таким образом, у вас есть безопасность в цифрах. Если один сервер выходит из эксплуатации, он не будет сразу портить выходные, так как ни один клиент не может обновиться, пока вы должны быть обновлены в отношении последнего использования нулевого дня.
Сценарий общей базы данных также предотвращает шторм проверки.
Может возникнуть шторм сканирования, когда многие клиенты меняют WSUS-серверы, а серверы не делятся базой данных. WSUS отслеживает действия в базе данных, чтобы оба знали, что изменилось с момента последнего сканирования клиента, и будут отправлять только обновленные с тех пор метаданные.
Если клиенты меняются на другой сервер WSUS, использующий другую базу данных, они должны сделать полное сканирование. Полное сканирование может привести к большим переносам метаданных. В этих сценариях могут происходить переводы свыше 1 ГБ на каждого клиента, особенно если сервер WSUS не поддерживается правильно. Он может генерировать достаточно нагрузки, чтобы вызвать ошибки при общении клиентов с экземпляром WSUS. И клиенты повторно повторяются в этом случае.
Совместное использование базы данных означает, что при переходе клиента в другой экземпляр WSUS, использующий тот же DB, штраф за проверку не понес. Увеличение нагрузки не является большим штрафом, который вы платите за переключение баз данных.
Сканы клиентов Configuration Manager требуют большего спроса на WSUS, чем автономные автоматические обновления. Диспетчер конфигурации, так как он включает проверку соответствия требованиям, запрашивает проверку с помощью критериев, которые возвращают все обновления, которые находятся в любом состоянии, кроме отклоненных.
Когда агент автоматического обновления сканирует или выбирает проверку обновлений в панели управления, агент отправляет критерии для получения только тех обновлений, которые утверждены для установки. Возвращенные метаданные обычно будут меньше, чем при инициировании проверки диспетчером конфигурации. Агент обновления кэширует данные, и следующие запросы на сканирование возвращают данные из клиентского кэша.
Отключение рециркуляции и настройка ограничений памяти
WSUS реализует внутренний кэш, который извлекает метаданные обновления из базы данных. Эта операция является дорогостоящей и очень интенсивной памятью. Это может привести к повторной переработке пула приложений IIS, в котором размещен WSUS (известный как WSUSPool), когда WSUSPool завышает ограничения частной и виртуальной памяти по умолчанию.
Рекомендуется увеличить длину очереди по умолчанию и отключить ограничение виртуальной и частной памяти, установив их до 0. IIS реализует автоматическую переработку пула приложений каждые 29 часов, ping и idle time-outs, все которые должны быть отключены. Эти параметры находятся в пулах приложений диспетчера IIS> > WsusPool, а затем щелкните ссылку Advanced Параметры в правой стороне области диспетчера IIS.
Ниже представлены сводка рекомендуемых изменений и соответствующий снимок экрана. Дополнительные сведения см. в программе Plan for software updates in Configuration Manager.
Имя параметра | Значение |
---|---|
Длина очереди | 2000 (по умолчанию 1000) |
Простое время ожидания (минуты) | 0 (по умолчанию 20) |
Включено Ping | False (по умолчанию true) |
Частное ограничение памяти (KB) | 0 (безлимитный, по умолчанию 1 843 200 КБ) |
Регулярный интервал времени (минуты) | 0 (для предотвращения повторной переработки и изменения по умолчанию 1740 г.) |
В среде, в которой кэшируются около 17 000 обновлений, может потребоваться более 24 ГБ памяти по мере того, как кэш будет построен до стабилизации (около 14 ГБ).
Проверьте, включено ли сжатие (если вы хотите сохранить пропускную способность)
WSUS использует кодиуминг Xpress типа сжатия. Он реализует сжатие метаданных обновления и может привести к значительной экономии пропускной способности.
ApplicationHost.Config
<scheme name="xpress" doStaticCompression="false" doDynamicCompression="true" dll="C:\Program Files\Update Services\WebServices\suscomp.dll" staticCompressionLevel="10" dynamicCompressionLevel="0" />
Раздел реестра
Если обе команды не представлены, ее можно включить с помощью этой команды и перезапуска пула приложений WsusPool в IIS.
Кодиление Xpress добавит часть накладных расходов ЦП и может быть отключена, если пропускная способность не является проблемой, но использование ЦП является. Следующая команда отключит ее.
Настройка продуктов и категорий
При настройке WSUS выберите только продукты и категории, которые планируется развернуть. Вы всегда можете синхронизировать категории и продукты, которые должны иметься позже. Добавление их, если вы не планируете их развертывать, увеличивает размер метаданных и накладные расходы на серверах WSUS.
Отключение обновлений itanium и других ненужных обновлений
Это не должно быть проблемой в течение длительного времени, так как Windows Server 2008 R2 была последней версией для поддержки Itanium. Но это имеет упоминания.
Настройка и использование этого скрипта в среде, чтобы отклонять обновления архитектуры Itanium. Скрипт также может отклонять обновления, содержащие предварительную версию или бета-версию в заголовке обновления.
Это приводит к тому, что консоль WSUS будет более отзывчивой, но не влияет на проверку клиента.
Отклонение от перенастройки обновлений и обслуживания запуска
Одна из наиболее важных вещей, которые можно сделать, чтобы помочь WSUS работать лучше. Сохранение обновлений, которые будут больше, чем требуется (например, после их развертывания), является основной причиной проблем с производительностью WSUS. Это нормально, чтобы держать их вокруг, если вы по-прежнему развертывание их. Удалите их после их окончания.
Сведения о снижении перенаправленных обновлений и других элементов обслуживания WSUS см. в статье Полное руководство по техническому обслуживанию Microsoft WSUS и Configuration Manager SUP.
WSUS с установкой SSL
По умолчанию WSUS не настроен на использование SSL для клиентской связи. Первым шагом после установки должна стать настройка SSL на WSUS, чтобы убедиться в безопасности между серверно-клиентской связью.
Необходимо принять одно из следующих действий:
- Создание самозаверяемого сертификата. Это не идеально, так как каждый клиент должен доверять этому сертификату.
- Получение одного из сторонних поставщиков сертификатов.
- Получение одного из внутренней инфраструктуры сертификатов.
Сертификат должен иметь короткое имя сервера, имена FQDN и SAN (псевдонимы), которые он проходит.
После установки сертификата обновим параметры групповой политики (или конфигурации клиентов для обновлений программного обеспечения в Configuration Manager), чтобы использовать адрес и SSL-порт сервера WSUS. Обычно порт 8531 или 443.
Настройка исключений антивируса
О накопительных обновлениях и ежемесячных откатах
Вы можете увидеть термины Ежемесячные откаты и накопительное обновление, используемые для Windows обновлений ОС. Они могут использоваться взаимозаменяемо. В откатах ссылаются на обновления, опубликованные для Windows 7, Windows 8.1, Windows Server 2008 R2 и Windows Server 2012 R2, которые являются только частично накопительными.
Дополнительные сведения см. в следующих блогах:
С Windows 10 и Windows Server 2016 обновления были накопительными с самого начала:
Накопительный означает, что: вы устанавливаете версию выпуска ОС и должны применять только последнее накопительное обновление, чтобы быть полностью исправлена. Для старых операционных систем у нас пока нет таких обновлений, хотя это направление, в каком мы движемся.
Для Windows 7 и Windows 8.1 это означает, что после установки последнего ежемесячного обновления по-прежнему потребуется больше обновлений. Вот пример для Windows и Windows Server 2008 R2 о том, что требуется, чтобы иметь почти полностью исправленную систему.
В следующей таблице содержится список Windows и накопительных обновлений. Вы также можете найти их, ища Windows <version> обновления.
Версия Windows | Update |
---|---|
Windows 7 SP1 и Windows Server 2008 R2 SP1 | Windows обновления 7 SP1 и Windows Server 2008 R2 SP1 |
Windows 8.1 и Windows Server 2012 R2 | Windows 8.1 и Windows Server 2012 обновления R2 |
Windows 10 и Windows Server 2016 | Windows 10 и Windows сервера |
в Windows Server 2019; | Windows 10 и Windows Server 2019 |
Еще один момент, который следует учитывать, это то, что не все обновления публикуются таким образом, чтобы они автоматически синхронизировали с WSUS. Например, накопительные обновления недели C и D являются обновлениями предварительного просмотра и не будут синхронизироваться с WSUS, но должны импортироваться вручную. См. раздел Ежемесячные обновления качества в Windows 10 обновления обслуживания cadence.
Использование PowerShell для подключения к серверу WSUS
Вот только пример кода для начала работы с PowerShell и API WSUS. Его можно выполнять там, где установлена консоль администрирования WSUS.
Открываем «Диспетчер служб IIS», переходим в «Пулы приложений», выбираем WsusPool и открываем «Дополнительные параметры». Устанавливаем «Лимит выделенной памяти» в 0 и перезапускаем IIS.
Настройка TempDB в MSSQL
«As a general rule, if the number of logical processors is less than or equal to 8, use the same number of data files as logical processors. If the number of logical processors is greater than 8, use 8 data files and then if contention continues, increase the number of data files by multiples of 4 (up to the number of logical processors) until the contention is reduced to acceptable levels or make changes to the workload/code.»
Т.е. если 8 или меньше логических процессоров - делаем по 1 файлу на каждый процессор. Если больше - умножаем на 4.
Открываем SQL Server Management Studio, далее «Базы данных» → «Системные базы данных» → tempdb, открываем свойства и выбираем «Файлы». Добавляем требуемое количество файлов, желательно разнести их по разным дискам. Начальный размер делаем у всех файлов одинаковым, автоувеличение делаем «С шагом по 10Мб, без ограничений».
Очистка базы WSUS
Очистка производится через «Параметры» → «Мастер очистки сервера» и желательно это делать регулярно, не реже раза в месяц. Если в процессе работы падает с ошибкой - увеличиваем кол-во памяти для IIS и в мастере очистки запускаем по одному пункту.
Если это не помогает, надо выполнить очистку напрямую в базе. Для этого необходимо подключиться к экземпляру SQL Server инструментом Management Studio. Management Studio стала отдельным продуктом. Его можно скачать по этой ссылке. Если вы используете Windows Internal Database, необходимо поставить Management Studio на сервер с WSUS. Для подключения к экземпляру используется строка:
Для очистки базы выполните 4 волшебные команды:
Для команды spCompressUpdate используется «обёртка»:
Такая же обертка для spDeleteUpdate:
Во время работы «обёрток» клиенты прекращают получать обновления. Вы можете в любой момент прервать выполнение скрипта без потери прогресса. Для того, чтобы продолжить процесс, не забудьте удалить временную таблицу:
Лимит составляет 96 Мб.
Можно ли как-то проверить что приложение действительно превышает 96 Мб?
Причем превышает сразу же.
У меня в этом большие сомнения.
Примеры кода, которые позволяют посмотреть параметры процессов IIS , не работают с IIS7.
Код сайта , конечно, далек от иделал, но я все-таки старался элементарные действия
предотвращающие утечки памяти соблюдать. Закрывать подключения к БД, readerы,
использовать Command.ExecuteReader(CommandBehavior.CloseConnection) и т.п.
Посмотрел в ANTS memory profiler, результат в скриншоте.
Единственное, меня смущает, результат Virtual Bytes, выше 200 Мб, но такой же результат
показывается и для простой странички типа Hello World, без всяких компонентов, сторонних dll и тому подобного.
Буду благодарен за любые советы и предложения, как с этим бороться, что можно проверить
и оптимизировать.
ну например Агава берет деньги за номинальную мощность блока питания (за наклейку!) - хоть сервер даже 10% от наклейки потребляет
почти все ублюдочные хостеры на M9 берут деньги за бренд сервера - например Intel типо бесплатно, а что-то менее брендовое - за дополнительные деньги
если у сервера больше двух дисков - вообще не берут такой сервер - пока не договришься о допольнительной оплате
счета тоже присылают какие им взбредет в голову
ну например ты по договору платишь за трафик - а денег им хочется - админ запускает nmap и дергает сервер - пока не докрутит до суммы, которую хочет получить начальство с этого клиента
не хочу называть эту хостинг-площадку (у меня там много-много серверов стоит - не хочется ругаться) но наверное все видели такие тонкие клиенты, развешанные прямо тупо в приемной - на которых идет nmap и докручивает трафик (ну типо досят сервера неизвестные) - на хостинге возле курского вокзала
особо даже никто не стестняется - чтобы докрутить сумму с клиента до желаемой - тонкие клиенты на которых идет nmap висят даже в комнате, куда выносят сервера для ремонта клиентам
на мой вопрос - почему так все нагло - мне ответили что это мониторинг работоспособности сайта и ведут они его строго по договору
нах такие хостинг-площадки - просто ищи нормальных
Ситуация на самом деле неприятная, я вот в некой растерянности нахожусь и не знаю с какой стороны
подступиться.
Читайте также:
- Зачем расширяют зрачки при проверке зрения на компьютере
- Как рыбачить в майнкрафте на компьютере
- Где можно поработать за компьютером в новосибирске
- Доступ к системному накопителю не может быть получен ps3
- Программный или программно аппаратный элемент компьютерной сети осуществляющий контроль и фильтрацию