Параметры периодического перезапуска для периодического перезапуска <пула приложенийRestart>
Общие сведения
Элемент <periodicRestart>
содержит параметры конфигурации, которые позволяют управлять перезапуском пула приложений. Можно указать, что службы IIS 7 перезапускает пул приложений через интервал времени (в минутах) или в определенное время каждый день. Можно также настроить СЛУЖБЫ IIS для перезапуска на основе объема виртуальной или физической памяти, используемого рабочим процессом в пуле приложений, или настроить IIS для перезапуска пула приложений после обработки рабочим процессом определенного количества запросов.
Совместимость
Версия | Примечания |
---|---|
IIS 10.0 | Элемент <periodicRestart> не был изменен в IIS 10.0. |
IIS 8,5 | Элемент <periodicRestart> не был изменен в IIS 8.5. |
IIS 8,0 | Элемент <periodicRestart> не был изменен в IIS 8.0. |
IIS 7,5 | Элемент <periodicRestart> не был изменен в IIS 7.5. |
IIS 7.0 | Элемент <periodicRestart> появился в IIS 7.0. |
IIS 6,0 | Элемент <periodicRestart> заменяет части свойства метабазы IIsApplicationPools IIS 6.0. |
Настройка
Коллекция <applicationPools>
включена в установку IIS 7 по умолчанию.
Инструкции
Настройка периодического перезапуска для пула приложений
Откройте диспетчер служб IIS.
Если вы используете Windows Server 2012 или Windows Server 2012 R2:
- На панели задач щелкните диспетчер сервера, инструменты, а затем диспетчер служб IIS.
Если вы используете Windows 8 или Windows 8.1:
- Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
- Щелкните Администрирование, а затем дважды щелкните диспетчер служб IIS.
Если вы используете Windows Server 2008 или Windows Server 2008 R2:
- На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем щелкните Диспетчер служб IIS.
Если вы используете Windows Vista или Windows 7:
- На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
- Дважды щелкните элемент Администрирование, а затем дважды щелкните диспетчер служб IIS.
В области Подключения разверните имя сервера и щелкните Пулы приложений.
В области Пулы приложений выберите пул приложений, который требуется изменить.
На странице Условия перезапуска мастера изменения параметров перезапуска пула приложений выберите хотя бы один из параметров в разделе Фиксированные интервалы , введите значения в соответствующие текстовые поля и нажмите кнопку Далее.
(Необязательно) На странице Перезапуск событий для записи в журнал мастера изменения параметров перезапуска пула приложений выберите настраиваемые события перезапуска и события перезапуска во время выполнения, которые службы IIS должны отправлять в журнал событий при их возникновении, а затем нажмите кнопку Готово.
Конфигурация
Элемент <periodicRestart>
можно настроить на уровне сервера в файле ApplicationHost.config.
Атрибуты
Атрибут | Описание |
---|---|
memory |
Необязательный атрибут uint. Указывает объем виртуальной памяти (в килобайтах), который рабочий процесс может использовать до перезапуска рабочего процесса. Значение по умолчанию — 0 , которое отключает атрибут . |
privateMemory |
Необязательный атрибут uint. Указывает объем частной памяти (в килобайтах), которую рабочий процесс может использовать до перезапуска рабочего процесса. Значение по умолчанию — 0 , которое отключает атрибут . |
requests |
Необязательный атрибут uint. Указывает, что рабочий процесс должен быть переработан после обработки определенного числа запросов. Значение по умолчанию — 0 , которое отключает атрибут . |
time |
Необязательный атрибут timeSpan. Указывает, что рабочий процесс должен быть переработан по истечении указанного времени. Значение по умолчанию — 29:00:00 (29 часов). |
Дочерние элементы
Элемент | Описание |
---|---|
schedule |
Необязательный элемент. Указывает планирование периодических перезапусков пулов приложений. |
Образец конфигурации
В следующем примере конфигурации используется элемент пула <add>
приложений для создания пула приложений с именем Contoso. Элемент <recycling>
настраивает ведение журнала для перезапуска пула приложений, <periodicRestart>
элемент настраивает время перезапуска пула приложений, а <processModel>
элемент настраивает атрибуты shutdownTimeLimit и startupTimeLimit для завершения работы и запуска рабочих процессов в пуле приложений в течение 30 секунд каждый. При превышении этих ограничений службы IIS завершают рабочий процесс.
<add name="Contoso">
<recycling logEventOnRecycle="Schedule">
<periodicRestart>
<schedule>
<clear />
<add value="03:00:00" />
</schedule>
</periodicRestart>
</recycling>
<processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
</add>
Пример кода
В следующих примерах кода добавляется пул приложений с именем Contoso на сервер IIS 7, а затем в пуле приложений устанавливается ежедневная очистка в 3:00 утра.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
Можно также использовать следующий синтаксис:
appcmd.exe add apppool /name:"Contoso"
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
Примечание
При использовании AppCmd.exe для настройки этих параметров для параметра apphost
фиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = @"Contoso";
ConfigurationElement recyclingElement = addElement.GetChildElement("recycling");
ConfigurationElement periodicRestartElement = recyclingElement.GetChildElement("periodicRestart");
ConfigurationElementCollection scheduleCollection = periodicRestartElement.GetCollection("schedule");
ConfigurationElement addElement1 = scheduleCollection.CreateElement("add");
addElement1["value"] = TimeSpan.Parse("03:00:00");
scheduleCollection.Add(addElement1);
applicationPoolsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
addElement("name") = "Contoso"
Dim recyclingElement As ConfigurationElement = addElement.GetChildElement("recycling")
Dim periodicRestartElement As ConfigurationElement = recyclingElement.GetChildElement("periodicRestart")
Dim scheduleCollection As ConfigurationElementCollection = periodicRestartElement.GetCollection("schedule")
Dim addElement1 As ConfigurationElement = scheduleCollection.CreateElement("add")
addElement1("value") = TimeSpan.Parse("03:00:00")
scheduleCollection.Add(addElement1)
applicationPoolsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;
var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso";
var recyclingElement = addElement.ChildElements.Item("recycling");
var periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart");
var scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection;
var addElement1 = scheduleCollection.CreateNewElement("add");
addElement1.Properties.Item("value").Value = "03:00:00";
scheduleCollection.AddElement(addElement1);
applicationPoolsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST")
Set applicationPoolsCollection = applicationPoolsSection.Collection
Set addElement = applicationPoolsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso"
Set recyclingElement = addElement.ChildElements.Item("recycling")
Set periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart")
Set scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection
Set addElement1 = scheduleCollection.CreateNewElement("add")
addElement1.Properties.Item("value").Value = "03:00:00"
scheduleCollection.AddElement(addElement1)
applicationPoolsCollection.AddElement(addElement)
adminManager.CommitChanges()