Узел службы локальной системы загружает диск Windows 10

Обновлено: 04.07.2024

В этой статье устранена ошибка «Местоположение недоступно» при попытке скопировать файлы с подключенного диска.

Применимо к: Windows Server 2012 R2
Исходный номер базы знаний: 2019185

Симптомы

При включенном контроле учетных записей (UAC) вы можете получить следующую ошибку при попытке скопировать файл с подключенного диска в локальный каталог:

Местоположение недоступно
\ относится к местоположению, которое недоступно. Это может быть на жестком диске этого компьютера или в сети. Убедитесь, что диск вставлен правильно или что вы подключены к Интернету или сети, а затем повторите попытку. Если его по-прежнему невозможно найти, возможно, информация была перемещена в другое место.

Причина

Основной причиной является контроль учетных записей и взаимодействие с разделенным токеном. Когда администратор входит в систему с включенным режимом одобрения администратором (AAM), пользователю предоставляется два токена доступа:

  • токен полного доступа администратора
  • отфильтрованный токен доступа стандартного пользователя

По умолчанию, когда член локальной группы администраторов входит в систему, административные привилегии Windows отключаются, а права пользователя с повышенными правами удаляются. Это приводит к стандартному маркеру доступа пользователя. Затем маркер доступа стандартного пользователя используется для запуска рабочего стола (Explorer.exe). Explorer.exe — это родительский процесс, от которого все другие инициированные пользователем процессы наследуют свои маркеры доступа. В результате все приложения по умолчанию запускаются от имени обычного пользователя, если только пользователь не предоставит согласие или учетные данные для утверждения приложения для использования маркера полного административного доступа. В отличие от этого процесса, когда обычный пользователь входит в систему, создается только маркер доступа стандартного пользователя. Затем этот токен доступа стандартного пользователя используется для запуска рабочего стола.

Для возникновения ошибки должны быть соблюдены следующие условия:

  1. UAC включен с AAM.
  2. Пользователь не вошел в систему как администратор локального компьютера или с учетными данными администратора домена.
  3. Диск сопоставляется с использованием стандартного пользовательского контекста безопасности.
  4. У пользователей нет разрешений на создание и запись NTFS в целевом каталоге.

Пользователь подключил диск с помощью параметра «Подключить сетевой диск» в проводнике Windows или запустив команду net use в командной строке без повышенных прав. Подключенные диски можно увидеть, запустив net use от имени обычного пользователя из командной строки без повышенных прав. В данном случае диск был сопоставлен как обычный пользователь.

Выполнение той же команды в командной строке с повышенными привилегиями показывает, что подключенный диск отсутствует.

Это ясно показывает, что сеанс с повышенными правами не видит подключенный диск обычного пользователя. Поэтому он не может завершить операцию копирования. Такое поведение предусмотрено дизайном.

По умолчанию AAM включен для учетных записей, входящих в локальную группу администраторов. Этот параметр можно найти в узле «Параметры безопасности» локальной политики в разделе «Параметры безопасности». Его можно настроить с помощью редактора локальной групповой политики (secpol.msc) и консоли управления групповыми политиками (GPMC) (gpedit.msc). Дополнительную информацию о UAC см. в разделе Контроль учетных записей пользователей.

Разрешение

Подключите диск с помощью процесса с повышенными правами. Но проводник Windows не увидит сопоставление дисков с повышенными правами. Дополнительные сведения см. в разделе «Дополнительная информация».

Используйте путь UNC для подключения к сетевым ресурсам, например, \\server\share.

Используйте настройки групповой политики для подключения дисков. В техническом документе, на который ссылаются ниже, представлены настройки групповой политики, которые являются новой функцией в Windows Server 2008. В техническом документе описывается, как вы можете использовать предпочтения групповой политики для более эффективного развертывания и управления настройками операционной системы и приложений. Предпочтения групповой политики позволяют настраивать, развертывать и управлять параметрами операционной системы и приложений, которыми вы ранее не могли управлять с помощью групповой политики. Примеры включают подключенные диски, запланированные задачи и параметры меню «Пуск». Для многих типов операционных систем и параметров приложений использование предпочтений групповой политики является лучшей альтернативой их настройке в образах Windows или сценариям входа в систему.

Подключите диски с помощью сценария входа, который использует сценарий launchapp.wsf для планирования выполнения команд с помощью планировщика задач. Приведенный ниже документ поможет вам разобраться в новых и обновленных функциях, доступных в Windows Vista. Он также содержит множество рекомендаций, которые помогут вам развернуть групповую политику.

В следующей статье описывается неподдерживаемый метод, который отменяет описанное ранее изменение безопасности путем настройки значения реестра EnableLinkedConnections. Это значение позволяет Windows Vista совместно использовать сетевые подключения между маркером отфильтрованного доступа и маркером полного доступа администратора для члена группы администраторов.После настройки этого значения реестра LSA проверяет, не связан ли другой маркер доступа с текущим сеансом пользователя, если сетевой ресурс сопоставляется с маркером доступа. Если LSA определяет наличие связанного маркера доступа, он добавляет сетевой ресурс в связанное местоположение.

Подробнее

Когда пользователь с правами администратора входит в систему, Windows обрабатывает сценарии входа с помощью маркера с повышенными правами. Скрипт действительно работает и подключает диск. Однако Windows блокирует просмотр сопоставленных сетевых дисков, поскольку рабочий стол использует отфильтрованный токен, а диски были сопоставлены с помощью маркера с повышенными правами (полного администратора).

До Windows 2000 SP2 имена устройств (например, подключенные диски) оставались глобально видимыми до тех пор, пока они не были удалены явным образом или система не была перезагружена. По соображениям безопасности мы изменили это поведение, начиная с Windows 2000 SP2. С этого момента все устройства связаны с идентификатором аутентификации (LUID). LUID — это идентификатор, генерируемый для каждого сеанса входа в систему. Процесс, работающий в контексте LocalSystem, может создать имя устройства в глобальном пространстве имен устройств, хотя объекты локального пространства имен могут скрывать объекты глобального пространства имен.

Эти подключенные диски связаны с LUID. А приложения с повышенными правами используют другой LUID, сгенерированный во время отдельного события входа в систему. Таким образом, приложение с повышенными правами больше не будет видеть подключенные диски для этого пользователя. Вы заметите такое же поведение, как раньше, используя RunAs или API CreateProcessAsUser, но UAC значительно увеличивает количество пользователей, которые будут использовать эти концепции.

В результате, если вы повысите уровень доступа в командной строке, вы больше не увидите подключенных к локальному пространству имен дисков, созданных на основе вашего первоначального входа (независимо от того, были ли они созданы с помощью сценария входа, с помощью API WNetAddConnection или иным образом). Существует смягчение для сценария запуска из проводника Windows. Если дважды щелкнуть исполняемый файл, который либо обнаружен как установочный файл, либо отображается как requireAdministrator, Windows может обнаружить, что он был повышен и что есть ошибка, указывающая на то, что путь не найден, и скопировать сопоставление этого диска с исходного ЖИДКОСТЬ. Однако это единственный автоматизированный сценарий.

В этой статье описываются основные шаги по устранению неполадок, которые можно использовать для диагностики проблем запуска службы кластеров в Windows Server 2003.

Применимо к: Windows Server 2003
Исходный номер базы знаний: 266274

Обзор

В этой статье описываются основные шаги по устранению неполадок, которые можно использовать для диагностики проблем запуска службы кластеров в Windows Server 2003. Хотя это не полный список всех проблем, которые могут привести к тому, что служба кластеров не запускается, он устраняет большинство Проблемы с запуском Windows Server 2003. Содержимое этой статьи НЕ относится к Windows Server 2008 или более поздней версии.

Подробнее

При первоначальном запуске служба кластеров пытается присоединиться к существующему кластеру. Для этого служба кластеров должна иметь возможность связаться с существующим узлом кластера. Если процедура присоединения завершается неудачей, кластер переходит к этапу формирования; основным требованием на этом этапе является возможность монтирования устройства кворума.

Вот шаги процесса запуска по порядку:

  • Аутентифицируйте учетную запись службы.
  • Загрузите локальную копию базы данных кластера.
  • Используйте информацию из локальной базы данных, чтобы попытаться связаться с другими узлами, чтобы начать процедуру присоединения. Если с узлом установлена ​​связь и аутентификация прошла успешно, процедура присоединения выполнена успешно.
  • Если другой узел недоступен, служба кластеров использует информацию из локальной базы данных для подключения устройства кворума и обновляет локальную копию базы данных, загружая последний файл контрольной точки и воспроизводя журнал кворума.

Устранение неполадок при запуске службы кластеров

Этот раздел, метод или задача содержат инструкции по изменению реестра. Однако при неправильном изменении реестра могут возникнуть серьезные проблемы. Поэтому убедитесь, что вы внимательно выполните следующие действия. Для дополнительной защиты создайте резервную копию реестра перед его изменением. Затем вы можете восстановить реестр, если возникнет проблема. Для получения дополнительных сведений о резервном копировании и восстановлении реестра щелкните следующий номер статьи базы знаний Майкрософт:
322756 Как выполнить резервное копирование и восстановление реестра в Windows

Убедитесь, что узел кластера, на котором возникли проблемы, может правильно аутентифицировать учетную запись службы. Это можно определить, войдя на компьютер с учетной записью службы кластеров или проверив журнал системных событий на наличие сообщений о проблемах входа в службу кластеров.

Убедитесь, что папка %SystemRoot%\Cluster содержит допустимый файл Clusdb и что служба кластеров пытается запуститься. Запустите редактор реестра (Regedt32.3xe) и убедитесь, что следующий ключ реестра действителен и загружен: HKEY_LOCAL_MACHINE\Cluster

У куста кластера должна быть структура, очень похожая на Cluster Administrator. Запишите ключи сети и кворума. Если база данных недействительна, вы можете скопировать и использовать базу данных кластера с работающего узла.

Если узел не является первым узлом в кластере, проверьте подключение к другим узлам кластера во всех доступных сетях. Используйте инструмент Ping.exe для проверки подключения TCP/IP и используйте администратор кластера для проверки возможности связи со службой кластеров. Используйте адреса TCP/IP сетевых адаптеров на других узлах в диалоговом окне «Подключение к» в администраторе кластера.

Если он не может связаться с каким-либо другим узлом, служба продолжает фазу формы. Он пытается найти информацию о кворуме в базе данных локального кластера, а затем пытается подключить диск. Если диск кворума не может быть подключен, служба не запускается. Если другой узел успешно запущен и владеет кворумом, служба не запускается. Обычно это вызвано проблемами с подключением или аутентификацией. Если это не так, вы можете проверить состояние устройства кворума, запустив службу с параметром -fixquorum и попытаться перевести диск кворума в оперативный режим или изменить расположение кворума для службы. Кроме того, проверьте журнал системных событий на наличие ошибок диска. Если диск кворума успешно подключается к сети, вероятно, кворум поврежден.

Проверьте атрибуты файла Cluster.log, чтобы убедиться, что он не доступен только для чтения, и убедитесь, что не действует никакая политика, запрещающая изменение файла Cluster.log. Если одно из этих условий существует, служба кластеров не может быть запущена.

Если эти действия не помогли устранить проблему, следует выполнить дополнительные действия по устранению неполадок. Файл журнала кластера может быть полезен при устранении дополнительных неполадок. По умолчанию ведение журнала кластера включено на компьютерах под управлением Windows 2000, на которых запущена служба кластеров.

В этой статье перечислены все доступные переключатели, которые можно использовать в качестве параметров запуска для запуска службы кластеров.

Применимо к: Windows Server 2012 R2
Исходный номер базы знаний: 258078

Обзор

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

Для этого перейдите в свойства службы, установите соответствующий переключатель в поле "Параметры запуска" и нажмите кнопку "Пуск".

Вы также можете использовать переключатели при запуске службы кластеров из командной строки. Например:

Поставьте тире (-) перед переключателем для Microsoft Windows 2000 Server и более ранних версий.

Переключатель отладки имеет специальные параметры запуска. Информацию о правильном использовании см. в разделе "Отладка" далее в этой статье.

В Windows Server 2003 есть сокращения для каждого переключателя. Это упрощает использование переключателей запуска службы кластеров. Например, вы можете запустить службу с помощью переключателя /FixQuorum или переключателя /FQ.

К допустимым параметрам относятся следующие:

< td>FixQuorum < /tr>
Переключатель Функция Сокращение Windows 2003
Не монтировать устройство кворума, а ведение журнала кворума отключено. FQ
NoQuorumLogging Ведение журнала кворума отключено. NQ
Отладка Отображает события во время запуска службы кластеров. Информацию о специальном синтаксисе см. в разделе «Отладка» далее в этой статье.
LogLevel N Устанавливает уровень журнала для режима отладки.
DebugResMon Служба кластеров ожидает подключения отладчика ко всем процессам Resource Monitor при их запуске. DR

Переключатели только для Windows 2000 и более поздних версий включают следующее.

< td>ResetQuorumLog
Переключатель Функция Сокращение Windows 2003
Динамически воссоздает журнал кворума и файлы контрольных точек (эта функция выполняется автоматически в Microsoft Windows NT 4.0). RQ
NoRepEvtLogging Нет репликации записей журнала событий.

Только коммутаторы Windows Server 2003 и более поздних версий включают следующее.

< td>ForceQuorum или
Переключатель Функция Сокращение Windows 2003
Принудительно установить большинство узлов со списком узлов N1, N2 и т. д. (Применимо только для кворума Majority Node Set.) FO
NoGroupInfoEvtLogging Не регистрировать события в журнале событий, связанные группировать онлайн и оффлайн. NG

Описание переключателей

Ниже приводится описание некоторых переключателей:

Отладка

Функция. Журнал кластера может не содержать никакой полезной информации для диагностики сбоев запуска службы кластеров. Это связано с тем, что служба кластеров может выйти из строя до запуска Cluster.log. Запуск службы кластеров с помощью этого переключателя отображает инициализацию службы кластеров и может помочь вам определить эти ранние проблемы.

Требования: используйте этот переключатель только для временных диагностических целей. Если службу кластеров не удается запустить из-за ошибки входа в учетную запись службы или другой ошибки, связанной с системой, у службы может не быть возможности запуститься. В результате файл cluster.log не может быть создан. Этот метод запускает службу за пределами обычной среды, заданной диспетчером управления службами. Чтобы использовать этот переключатель, вы должны войти в систему локально с правами администратора и запустить команду из командной строки. Не используйте переключатель отладки для обычного использования или в течение длительного времени. С установленным параметром служба работает не так эффективно.

Сценарии использования. Этот переключатель следует использовать только в том случае, если не удается запустить службу кластеров. Этот переключатель будет отображать на экране работу службы кластеров, когда она пытается запуститься. Этот переключатель можно использовать только при запуске службы из командной строки, и вы должны находиться в папке, в которой установлена ​​служба кластеров. По умолчанию это %SystemRoot%\Cluster. Это также единственный переключатель, который вы не используете с командой net start для запуска службы.

Кроме того, вы также можете использовать команду set для управления уровнем журнала кластера при использовании переключателя отладки. В командной строке введите следующий набор clusterloglevel= x, где x — одно из значений, показанных в предыдущей таблице.

Служба кластеров отправляет выходные данные в окно аналогично тому, что вы видите в файле cluster.log. Кроме того, вы также можете записать эту информацию в файл, используя следующий синтаксис команды:

clussvc /debug > c:\debug.log

Когда служба кластеров работает правильно, нажмите CTRL+C, чтобы остановить службу.

Вы можете использовать переменную среды ClusterLogLevel для управления уровнем вывода при использовании переключателя отладки.

Фиксворум

Функция: позволяет запускать службу кластера, несмотря на проблемы с устройством кворума. Единственными ресурсами, которые будут переведены в оперативный режим после запуска службы, являются IP-адрес кластера и имя кластера. Вы можете открыть Администратор кластера и перевести другие ресурсы в оперативный режим вручную.

Требования: этот переключатель ДОЛЖЕН использоваться только в режиме диагностики на очень временной основе, а не во время нормальной работы. Только один узел должен быть запущен с помощью этого переключателя, и нельзя пытаться подключить второй узел к узлу, запущенному с помощью этого переключателя. Обычно этот переключатель используется отдельно.

Сценарии использования. Если служба кластеров не может нормально запуститься из-за сбоя ресурса кворума, пользователи могут запустить службу кластеров в этом режиме и попытаться диагностировать сбой.

Действие. После запуска службы кластера все ресурсы, включая ресурс кворума, остаются в автономном режиме. Затем пользователи могут вручную попытаться перевести ресурс кворума в оперативный режим и отслеживать записи журнала кластера, а также новые записи журнала событий и попытаться диагностировать любые проблемы с ресурсом кворума. Синтаксис следующий: net start clussvc /fixquorum .

Сбросить кворумлог

Функция: если файл журнала кворума и контрольной точки не найден или поврежден, это можно использовать для создания файлов на основе информации из реестра %SystemRoot%\Cluster\CLUSDB локального узла. улей. Если файл журнала кворума находится в правильном порядке, этот переключатель не действует.

Требования. Как правило, с помощью этого переключателя запускается только один узел, и этот переключатель используется отдельно. Его должны использовать только опытные пользователи, которые понимают последствия использования потенциально устаревшей информации для создания нового файла журнала кворума.

Сценарии использования. Этот переключатель следует использовать только в том случае, если служба кластеров не запускается на компьютере с Windows 2000 или более поздней версии из-за отсутствия или повреждения журнала кворума (Quolog.log) и Chkxxx. tmp файлы. Windows NT 4.0 автоматически воссоздаст эти файлы, если они не существуют. Эта функция была добавлена ​​в Windows 2000, чтобы обеспечить больший контроль над запуском службы кластеров.

Если кластер работает под управлением Windows 2000 с пакетом обновления 4 (SP4) и ранее было установлено исправление 872970, /resetquorumlog больше не нужен. По умолчанию при запуске создается новый файл журнала, если старый отсутствует или поврежден.

Операция: служба кластеров автоматически сбрасывает файл журнала кворума, если обнаруживается, что он отсутствует или поврежден, используя информацию в текущем загруженном кусте кластера, используя файл %systemroot% \кластер\CLUSDB.Синтаксис следующий:

ОтладкаResMon

Функция: помогает отлаживать процесс монитора ресурсов и, следовательно, библиотеки динамической компоновки ресурсов (DLL), загружаемые монитором ресурсов. Вы можете использовать любой стандартный отладчик Windows.

Требования: можно использовать только при запуске службы кластеров из командной строки и при использовании переключателя отладки. Нет эквивалентного параметра реестра, который можно использовать, когда служба кластеров запускается как служба. Отладчик должен быть доступен для подключения к монитору ресурсов при его запуске. Обычно этот переключатель используется отдельно.

Сценарии использования: разработчики могут использовать этот переключатель для отладки процесса монитора ресурсов и своих пользовательских библиотек DLL ресурсов. Этот параметр чрезвычайно полезен, если ошибка в библиотеке ресурсов приводит к неожиданному завершению процесса монитора ресурсов вскоре после его запуска службой кластеров и до того, как пользователи смогут вручную подключить отладчик к процессу монитора ресурсов.

Операция. Непосредственно перед запуском процесса монитора ресурсов процесс службы кластеров ожидает с сообщением (Ожидание подключения отладчика к процессу resmon X), где X – идентификатор процесса ( PID) процесса монитора ресурсов. Служба кластеров делает это в ожидании всех созданных ею процессов монитора ресурсов. После того как пользователь подключит отладчик к процессу монитора ресурсов и процесс монитора ресурсов запустится, служба кластеров продолжит свою инициализацию.

NoRepEvtLogging

Функция: переключатель norepevtlogging предотвращает репликацию событий, записанных в журнале событий. Этот переключатель полезен для уменьшения объема информации, отображаемой в командном окне, путем фильтрации событий, уже записанных в журнале событий. Репликация журнала событий — это функция, добавленная в Windows 2000.

Сценарии использования. Этот переключатель используется для предотвращения репликации журналов событий. Если в журнале событий имеется большое количество записей, служба кластеров реплицирует их и записывает в файл cluster.log. Это может привести к быстрому переносу файла cluster.log. Этот переключатель также можно использовать для запуска службы кластеров и регистрации тех событий, которые не записаны в журнале событий, в локальный файл Debugnorep.log. Синтаксис следующий:

Операция: команду norepevtlogging можно задать в качестве параметра запуска при запуске службы кластеров из консоли управления компьютером.

Синтаксис командной строки:

Эта команда запрещает узлу, который был запущен с этим переключателем, реплицировать свою информацию на другие узлы, но он по-прежнему будет получать информацию от других узлов, которые были запущены нормально.

Без регистрации кворума

Функция: отключает регистрацию всех изменений реестра кластера на диске кворума. Проверка реестра не влияет на другие ресурсы.

Требования: этот параметр следует использовать только в режиме диагностики для диагностики проблем с файлом журнала кворума (Quolog.log) или файлом контрольной точки куста кластера (Chkxxx.tmp) в каталоге \MSCS. на диске кворума. Если один узел запускается с помощью этого переключателя, любой другой узел также должен быть запущен с помощью этого переключателя. Обычно этот переключатель используется только на одном узле.

Сценарии использования. Используйте этот переключатель, если файл журнала кворума или файлы контрольных точек повреждены и вы хотите вручную заменить эти файлы резервными копиями.

Операция: в этом случае служба кластеров полностью обходит функцию ведения журнала. При работе в этом режиме могут возникать сценарии «разделения во времени». В этом случае записи реестра узлов кластера могут не синхронизироваться, а новые изменения могут быть потеряны. Синтаксис следующий: net start clussvc /noquorumlogging .

ФорсКворум

Функция: при использовании модели кворума Majority Node Set (MNS) в кластере Windows Server 2003 в некоторых случаях необходимо разрешить кластеру продолжать работу, даже если он не имеет кворум (большинство). Рассмотрим случай географически рассредоточенного кластера с четырьмя узлами на первичном сайте и тремя узлами на вторичном сайте. Несмотря на отсутствие сбоев, кластер представляет собой кластер из семи узлов, где ресурсы могут размещаться на любом узле, на любом сайте. В случае сбоя связи между сайтами или если вторичный сайт отключается (или выходит из строя), первичный сайт может продолжать работу, поскольку кворум все еще сохраняется. Все ресурсы будут повторно размещены и подключены к сети на основном сайте.

Однако в случае катастрофического отказа основного сайта дополнительный сайт потеряет кворум, и, следовательно, все ресурсы на этом сайте будут отключены. Одной из основных целей наличия кластера с несколькими площадками является выживание в случае аварии на основной площадке; однако само программное обеспечение кластера не может определить состояние основного сайта.Программное обеспечение кластера не может отличить сбой связи между сайтами от сбоя на основном сайте. Это должно быть сделано ручным вмешательством. Другими словами, вторичный сайт может быть принудительно продолжен, даже если служба кластеров считает, что у него нет кворума. Это называется принудительным кворумом.

Поскольку этот механизм эффективно нарушает семантику, связанную с набором реплик кворума, его следует использовать только в контролируемых условиях. В приведенном выше примере, если вторичный сайт и первичный сайт потеряют связь, а администратор заставит кворум на дополнительном сайте, ресурсы будут переведены в оперативный режим на ОБОИХ сайтах, что допускает возможность несогласованности данных или повреждения данных в кластере.

Требования. Принудительный кворум — это ручной процесс, требующий остановки службы кластеров на ВСЕХ оставшихся узлах. Службе кластеров необходимо сообщить, какие узлы следует считать имеющими кворум.

Сценарии использования. Следует проявлять особую осторожность, если и когда основной сайт возвращается, поскольку узлы настроены как часть кластера. Пока кластер работает в состоянии принудительного кворума, он полностью функционален. Например, узлы могут быть добавлены или удалены из кластера; могут быть определены новые ресурсы, группы и т. д.

Служба кластеров на всех узлах, НЕ включенных в список узлов принудительного кворума, должна оставаться остановленной до тех пор, пока информация о принудительном кворуме не будет удалена. Невыполнение этого требования может привести к несоответствию данных ИЛИ повреждению данных.

Операция: Настройте параметры запуска службы кластеров на ВСЕХ оставшихся узлах кластера. Это можно сделать, запустив панель управления службами, выбрав службу кластеров, а затем введя следующие параметры в параметре «Пуск»:

Например, если дополнительный сайт содержит узлы Node5, Node6 и Node7, и вы хотите запустить службу кластеров, чтобы они были единственными узлами в кластере, используйте следующую команду:

В ключе не должно быть пробелов (за исключением случаев, когда пробелы есть в самих именах узлов).

В этой статье вы познакомитесь с рекомендациями и инструкциями по устранению неполадок для приложений Windows Node.js, работающих в службе приложений Azure (с iisnode).

Будьте осторожны при устранении неполадок на рабочем сайте. Рекомендуется устранять неполадки в приложении на непроизводственной установке, например в промежуточном слоте, и когда проблема будет устранена, замените промежуточный слот рабочим слотом.

Конфигурация IISNODE

В этом файле схемы показаны все параметры, которые можно настроить для iisnode. Некоторые настройки, полезные для вашего приложения:

nodeProcessCountPerApplication

Этот параметр определяет количество процессов узлов, запускаемых для каждого приложения IIS. Значение по умолчанию — 1. Вы можете запустить столько файлов node.exe, сколько есть виртуальных ЦП вашей виртуальной машины, изменив значение на 0. Рекомендуемое значение — 0 для большинства приложений, чтобы вы могли использовать все виртуальные ЦП на вашем компьютере. Node.exe является однопоточным, поэтому один файл node.exe потребляет максимум 1 виртуальный ЦП. Чтобы добиться максимальной производительности приложения узла, необходимо использовать все виртуальные ЦП.

Командная строка узлаПроцесс

Этот параметр определяет путь к файлу node.exe. Вы можете установить это значение так, чтобы оно указывало на вашу версию node.exe.

maxConcurrentRequestsPerProcess

Этот параметр определяет максимальное количество одновременных запросов, отправляемых iisnode каждому node.exe. В службе приложений Azure значение по умолчанию — Infinite. Вы можете настроить это значение в зависимости от того, сколько запросов получает ваше приложение и как быстро ваше приложение обрабатывает каждый запрос.

maxNamedPipeConnectionRetry

Этот параметр определяет максимальное количество повторных попыток iisnode установить подключение к именованному каналу для отправки запросов к node.exe. Этот параметр в сочетании с namedPipeConnectionRetryDelay определяет общее время ожидания каждого запроса в iisnode. Значение по умолчанию — 200 в службе приложений Azure. Общее время ожидания в секундах = (maxNamedPipeConnectionRetry * namedPipeConnectionRetryDelay) / 1000

namedPipeConnectionRetryDelay

Этот параметр определяет количество времени (в мс), в течение которого iisnode ожидает между каждой повторной попыткой отправки запроса в node.exe по именованному каналу. Значение по умолчанию — 250 мс. Общее время ожидания в секундах = (maxNamedPipeConnectionRetry * namedPipeConnectionRetryDelay) / 1000

По умолчанию общее время ожидания в iisnode в службе приложений Azure составляет 200 * 250 мс = 50 секунд.

каталог журналов

Этот параметр управляет каталогом, в который iisnode записывает stdout/stderr. Значение по умолчанию — iisnode, которое относится к основному каталогу скрипта (каталог, в котором находится основной server.js)

debuggerExtensionDll

Этот параметр определяет, какую версию инспектора узлов использует iisnode при отладке приложения узла. В настоящее время iisnode-inspector-0.7.3.dll и iisnode-inspector.dll являются единственными двумя допустимыми значениями для этого параметра. Значение по умолчанию — iisnode-spector-0.7.3.dll. Версия iisnode-spector-0.7.3.dll использует node-spector-0.7.3 и использует веб-сокеты. Включите веб-сокеты в своем веб-приложении Azure, чтобы использовать эту версию.

flushResponse

По умолчанию IIS буферизует данные ответа до 4 МБ перед сбросом или до конца ответа, в зависимости от того, что наступит раньше. iisnode предлагает параметр конфигурации, чтобы переопределить это поведение: чтобы сбросить фрагмент тела объекта ответа, как только iisnode получит его от node.exe, вам нужно установить для атрибута iisnode/@flushResponse в web.config значение «true»: /p>

Включение очистки каждого фрагмента тела объекта ответа увеличивает нагрузку на производительность, которая снижает пропускную способность системы примерно на 5 % (начиная с версии 0.1.13). Лучше всего ограничить этот параметр только конечными точками, которые требуют потоковой передачи ответов (например, с помощью элемента в файле web.config)

Помимо этого, для потоковых приложений необходимо также установить для responseBufferLimit обработчика iisnode значение 0.

просматриваемые файлы

Список файлов, разделенных точкой с запятой, в которых отслеживаются изменения. Любое изменение файла приводит к перезапуску приложения. Каждая запись состоит из необязательного имени каталога, а также обязательного имени файла, которые относятся к каталогу, в котором расположена основная точка входа приложения. Подстановочные знаки допускаются только в имени файла. Значение по умолчанию: *.js;iisnode.yml

.

рециклесигналенаблед

Значение по умолчанию — false. Если включено, ваше приложение узла может подключиться к именованному каналу (переменная среды IISNODE_CONTROL_PIPE) и отправить сообщение «перезапустить». Это приводит к тому, что w3wp корректно перезапускается.

idlePageOutTimePeriod

Значение по умолчанию — 0, что означает, что эта функция отключена. Если установлено значение больше 0, iisnode будет выгружать все свои дочерние процессы каждые «idlePageOutTimePeriod» в миллисекундах. См. документацию, чтобы понять, что означает отсутствие страницы. Этот параметр полезен для приложений, которые потребляют большой объем памяти и хотят время от времени выгружать память на диск, чтобы освободить оперативную память.

Будьте осторожны при включении следующих параметров конфигурации в рабочих приложениях. Рекомендуется не включать их в реальных приложениях.

debugHeaderEnabled

регистрация включена

Этот параметр управляет ведением журнала stdout и stderr iisnode. Iisnode перехватывает stdout/stderr из процессов узла, которые он запускает, и записывает в каталог, указанный в настройке «logDirectory». После того, как это включено, ваше приложение записывает журналы в файловую систему, и в зависимости от объема журналов, выполняемых приложением, это может повлиять на производительность.

devErrorsEnabled

debuggingEnabled (не включать на рабочем сайте)

Дополнительные сведения об отладке см. в статье Отладка приложений node.js в Windows.

Сценарии и рекомендации/устранение неполадок

Приложение моего узла делает слишком много исходящих вызовов

Модуль agentkeepalive обеспечивает повторное использование сокетов на виртуальной машине веб-приложения Azure. Создание нового сокета для каждого исходящего запроса увеличивает нагрузку на ваше приложение. Повторное использование сокетов вашим приложением для исходящих запросов гарантирует, что ваше приложение не превысит максимальное количество сокетов, выделенное для каждой виртуальной машины. В Службе приложений Azure рекомендуется установить для параметра agentKeepAlive maxSockets значение в общей сложности (4 экземпляра node.exe * 32 maxSockets/экземпляр) 128 сокетов на ВМ.

В этом примере предполагается, что на вашей виртуальной машине запущено 4 файла node.exe. Если на виртуальной машине запущено другое количество файлов node.exe, необходимо соответствующим образом изменить параметр maxSockets.

Приложение моего узла потребляет слишком много ресурсов ЦП

Вы можете получить рекомендацию от службы приложений Azure на своем портале о высоком потреблении ресурсов ЦП. Вы также можете настроить мониторы для отслеживания определенных показателей. Проверяя загрузку ЦП на панели мониторинга портала Azure, проверьте МАКС. значения для ЦП, чтобы не пропустить пиковые значения. Если вы считаете, что ваше приложение потребляет слишком много ресурсов ЦП, и не можете объяснить, почему, вы можете профилировать свое приложение узла, чтобы выяснить это.

Например, предположим, что у вас есть приложение hello world, которое вы хотите профилировать следующим образом:

Перейдите в каталог вашего сайта/wwwroot. Вы увидите командную строку, как показано в следующем примере:

Снимок экрана, показывающий ваш сайт/каталог wwwroot и командную строку.

Предыдущий код профилирует функцию WriteConsoleLog, а затем записывает выходные данные профиля в файл «profile.cpuprofile» на вашем сайте wwwroot. Отправьте запрос в ваше приложение. Вы видите файл profile.cpuprofile, созданный под вашим сайтом wwwroot.

Снимок экрана с файлом profile.cpuprofile.

Загрузите этот файл и откройте его с помощью инструментов Chrome F12. Нажмите F12 в Chrome, затем выберите вкладку «Профили». Выберите кнопку Загрузить. Выберите файл profile.cpuprofile, который вы скачали. Нажмите на профиль, который вы только что загрузили.

Снимок экрана, показывающий загруженный вами файл profile.cpuprofile.

Вы можете видеть, что 95 % времени занимает функция WriteConsoleLog. В выводе также показаны точные номера строк и исходных файлов, вызвавших проблему.

Мое приложение узла потребляет слишком много памяти

Если ваше приложение потребляет слишком много памяти, вы увидите уведомление от службы приложений Azure на своем портале о высоком потреблении памяти. Вы можете настроить мониторы для отслеживания определенных показателей. Проверяя использование памяти на панели мониторинга портала Azure, обязательно проверяйте МАКСИМАЛЬНЫЕ значения для памяти, чтобы не пропустить пиковые значения.

Обнаружение утечек и анализ кучи для node.js

Мои файлы node.exe убиваются случайным образом

Есть несколько причин случайного завершения работы node.exe:

  1. Ваше приложение создает необработанные исключения. Подробную информацию о возникшем исключении см. в файле d:\home\LogFiles\Application\logging-errors.txt. Этот файл содержит трассировку стека, которая помогает отлаживать и исправлять ваше приложение.
  2. Ваше приложение потребляет слишком много памяти, что мешает запуску других процессов. Если общая память виртуальной машины близка к 100%, ваш node.exe может быть уничтожен диспетчером процессов. Диспетчер процессов убивает некоторые процессы, чтобы позволить другим процессам выполнить некоторую работу. Чтобы устранить эту проблему, профилируйте свое приложение на наличие утечек памяти. Если вашему приложению требуется большой объем памяти, увеличьте масштаб до ВМ большего размера (что увеличит объем ОЗУ, доступный для ВМ).

Мое приложение node не запускается

Если ваше приложение возвращает 500 ошибок при запуске, это может быть вызвано несколькими причинами:

  1. Node.exe отсутствует в нужном месте. Проверьте параметр nodeProcessCommandLine.
  2. Основной файл сценария отсутствует в нужном месте. Проверьте web.config и убедитесь, что имя основного файла сценария в разделе обработчиков совпадает с именем основного файла сценария.
  3. Конфигурация Web.config неверна. Проверьте имена и значения параметров.
  4. Холодный запуск. Запуск приложения занимает слишком много времени. Если ваше приложение занимает больше времени, чем (maxNamedPipeConnectionRetry * namedPipeConnectionRetryDelay) / 1000 секунд, iisnode возвращает ошибку 500. Увеличьте значения этих параметров, чтобы они соответствовали времени запуска вашего приложения, чтобы предотвратить истечение времени ожидания iisnode и возврат ошибки 500.

Сбой приложения моего узла

Ваше приложение создает необработанные исключения. Подробную информацию о возникшем исключении см. в файле d:\\home\\LogFiles\\Application\\logging-errors.txt. Этот файл содержит трассировку стека, которая помогает диагностировать и исправлять ваше приложение.

Приложение моего узла запускается слишком долго (холодный запуск)

  1. Попробуйте отложить загрузку модулей node_modules и не загружать все модули при запуске приложения. Для ленивой загрузки модулей вызов require(‘module’) должен быть сделан, когда вам действительно нужен модуль внутри функции, перед первым выполнением кода модуля.
  2. Служба приложений Azure предлагает функцию, называемую локальным кэшем. Эта функция копирует содержимое из общей сетевой папки на локальный диск виртуальной машины. Поскольку файлы являются локальными, время загрузки node_modules намного меньше.

В исходном файле cnodeconstants перечислены все возможные комбинации статуса/подстатуса, которые iisnode может вернуть из-за ошибки.

Включите FREB, чтобы ваше приложение могло видеть код ошибки win32 (убедитесь, что вы включаете FREB только на нерабочих сайтах из соображений производительности).

Читайте также: