Ситуация, когда рабочий процесс сервера 1С rphost.exe начинает потреблять все ресурсы процессора, является одной из самых сложных в администрировании. Особенно критично это выглядит, когда оперативная память свободна, а пользователи жалуются на «тормоза» даже при отсутствии активной работы. В этой статье мы подробно разберем, почему возникают такие скачки нагрузки, как проанализировать «ошибки страниц в секунду» и какие шаги предпринять для стабилизации системы.
Первым делом проанализируем активность фоновых процессов, используя стандартные средства или внешние инструменты, такие как Повелитель регламентных заданий. Как показывает практика, даже если в консоли администрирования не видно активных сеансов, регламентные задания могут продолжать выполняться в фоновом режиме — для этого подойдёт мониторинг и уведомления о результатах регламентных заданий. Выясним причину: часто типовые конфигурации (например, Управление торговлей 10.3) запускают тяжелые процедуры индексации или обновления кэша.
Разберем, как проверить эту теорию:
rphost упала, значит, причина в одном из заданий.Рассмотрим подробнее: часто виновником становится ОбновлениеИндексаПолнотекстовогоПоиска. Если база большая (от 10-15 ГБ), этот процесс может вызывать непрерывное чтение с диска и загрузку ЦП. Для этой задачи есть свертка и техническая оптимизация больших баз 1С.
Посмотрим на ситуацию со стороны движка 1С. Существует выявленная закономерность: старые конфигурации на обычных формах (УТ 10.3, КА 1.1) могут некорректно работать на свежих релизах платформы 8.3.12, 8.3.14 и выше. Это проявляется в аномальном росте счетчика «ошибок страниц в секунду» (Page Faults).
Проанализируем этот показатель: «ошибки страниц» не означают поломку памяти. Это сигнал системе, что процессу rphost требуются данные, которые уже выгружены из физической ОЗУ в файл подкачки на диск. Постоянное обращение к диску для подкачки данных «раскаляет» процессор.
Решение: Если вы используете старую конфигурацию, попробуйте протестировать работу на платформе версии 8.3.10.2699. Для быстрого переключения версий можно использовать консольное приложение для администрирования служб. Как показывает опыт коллег, переход на этот релиз часто снижает нагрузку на ЦП с 100% до стабильных 20-40% без изменения кода самой базы.
Выясним, как взаимодействуют СУБД и сервер приложений, если они установлены на одной физической или виртуальной машине. Если sqlservr.exe не ограничен в потреблении памяти, он заберет на себя максимум доступного объема. В ответ на это операционная система Windows начнет принудительно урезать Working Set (рабочий набор памяти) процесса rphost, сбрасывая его данные в pagefile.sys.
Разберем по шагам правильную настройку (см. также подробную инструкцию по настройке регламентных операций MS SQL):
SQL Server Management Studio.Memory.Maximum server memory таким образом, чтобы операционной системе и процессам 1С оставалось не менее 4–8 ГБ свободного пространства.Также крайне важно настроить политику «Lock Pages in Memory» (Закрепление страниц в памяти) для учетной записи, под которой запущен SQL и 1С. Это предотвратит вытеснение памяти в своп и снизит нагрузку на процессор, связанную с обработкой прерываний ввода-вывода.
Иногда обычного отключения регламентного задания недостаточно, если индекс уже поврежден. Процесс rphost может циклически пытаться обратиться к битым файлам в системной папке srvinfo. Проанализируем ситуацию, когда чтение идет из каталогов типа System Volume Information или внутренних папок регистрации 1С.
Выполним следующие действия:
1C:Enterprise 8.3 Server Agent.C:\Program Files\1cv8\srvinfo\reg_1541\UUID_вашей_базы\.Index и полностью удалим её содержимое.Это заставит сервер пересоздать структуру индекса с нуля, что часто убирает «зацикливание» процесса rphost.
Если вышеописанные методы не помогли, нам необходимо увидеть, что именно делает процесс в момент прыжка нагрузки. Для этого настроим минимальный Технологический Журнал. Создадим файл logcfg.xml в каталоге C:\Program Files\1cv8\conf.
Пример структуры для отслеживания длительных операций и исключений:
<config xmlns="http://v8.1c.ru/7.4/get/logcfg">
<log location="C:\LOGS\1C" history="2">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="PROC"/>
</event>
<property name="All"/>
</log>
</config>
Проанализируем полученные логи: ищите события EXCP, которые повторяются сотни раз в секунду. Это может быть попытка обращения к несуществующему файлу или бесконечный цикл в коде при попытке записи в журнал регистрации.
Разберем еще несколько критических моментов, которые часто упускают из виду:
rphost.rphost.exe, rmngr.exe, а также расширения .1CD, .log, .lgf и всю папку srvinfo. Постоянная проверка временных файлов (Temp) антивирусом — прямой путь к 100% загрузке ЦП.RPC сервера 1С могут тратить время на ожидание таймаутов при попытке разрешения имен через этот протокол.Таким образом, решение проблемы 100% загрузки процессора всегда комплексно: от блокировки «невидимых» регламентных заданий до тонкой настройки взаимодействия с памятью на уровне операционной системы.