В практике администрирования крупных систем на платформе 1С:Предприятие 8.3 часто возникает архитектурный вопрос: есть ли смысл тратить ресурс производительных твердотельных накопителей (SSD) на сервер приложений, если сама база данных (СУБД PostgreSQL, MS SQL Server) развернута на отдельной физической или виртуальной машине? На первый взгляд кажется, что сервер приложений выполняет лишь трансляцию запросов и математические вычисления в оперативной памяти, а значит, дисковая подсистема для него не критична. Однако это опасное заблуждение.
В этой статье мы подробно разберем, почему сервер приложений 1С активно нагружает диски, какие именно папки и файлы создают так называемое «бутылочное горлышко» производительности, и как правильно перенести их на SSD-накопители, избегая типичных ошибок.
Даже если исполняемые бинарные файлы платформы 1С загружены в оперативную память, сервер приложений в процессе жизнедеятельности генерирует огромный поток операций ввода-вывода (IOPS). Рассмотрим подробнее ключевые компоненты, которые создают колоссальную нагрузку на диски:
srvinfo). Это «сердце» настроек кластера 1С. Внутри этой директории, в подпапках рабочих процессов (например, reg_1541), хранятся три критически важных элемента:
1Cv8Log). Начиная с версии платформы 8.3.5, по умолчанию используется новый формат журнала регистрации на базе встроенной базы данных SQLite (файл 1Cv8.lgd). При активной работе пользователей (создание, проведение, изменение документов) сервер 1С производит непрерывную запись сотен событий в секунду. SQLite крайне чувствителен к задержкам диска. На медленном HDD-диске очередь к диску мгновенно растет, рабочие процессы rphost.exe начинают простаивать в ожидании завершения операции записи лога, из-за чего пользователи наблюдают зависания интерфейса.1Cv8FTxt). Регулярная актуализация и чтение поисковых индексов нагружает диск случайными операциями чтения/записи (случайный IOPS), которые для жестких дисков (HDD) являются наиболее тяжелыми.TEMP и TMP). При формировании отчетов (особенно на базе СКД), выполнении ресурсоемких обработок, импорте/экспорте данных, сервер 1С активно сериализует объекты во временные файлы. Если эти файлы располагаются на медленном системном диске, вся вычислительная мощность современных процессоров Xeon будет нивелирована медленным жестким диском.Таким образом, переносить серверные кэши, журналы регистрации и временные файлы на SSD жизненно необходимо для обеспечения высокой отзывчивости системы.
Многие администраторы пытаются решить задачу переноса папки srvinfo путем создания символических ссылок (симлинков) в файловой системе NTFS. Мы не рекомендуем использовать этот метод в промышленной эксплуатации. При обновлении платформы 1С или непредвиденных сбоях права доступа на символические ссылки могут сброситься, что приведет к отказу запуска службы.
Существует штатный, безопасный и документированный способ изменения пути к служебным файлам через реестр Windows. Выполним этот процесс по шагам:
services.msc) и найдем службу «Агент сервера 1С:Предприятия 8.3».ragent.exe, rmngr.exe, rphost.exe) завершили свою работу.regedit) от имени администратора.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent... (наименование может незначительно отличаться в зависимости от разрядности платформы и версии).
ImagePath. По умолчанию его значение выглядит примерно так:
"C:\Program Files\1cv8\8.3.21.1607\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
-d. Именно он указывает платформе, где искать и создавать служебные файлы. Изменим путь в кавычках после ключа -d на целевую папку на вашем SSD-накопителе. Например:
"C:\Program Files\1cv8\8.3.21.1607\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\1C_srvinfo"
C:\Program Files\1cv8\srvinfo в новый каталог D:\1C_srvinfo на SSD.USR1CV8), необходимо предоставить полные права (Full Control) на новую папку на диске SSD.Помните: при установке новой мажорной версии платформы 1С служба регистрируется заново, и значение параметра ImagePath в реестре будет перезаписано дефолтными путями. Не забывайте повторить эту операцию после обновления платформы!
По умолчанию временные файлы сервера 1С создаются в профиле пользователя, под которым работает служба сервера приложений. Если служба запущена от имени USR1CV8, временные файлы «улетают» на медленный системный диск C: по пути: C:\Users\USR1CV8\AppData\Local\Temp.
Для оптимизации работы с временными данными перенаправим переменные окружения на SSD-накопитель. Рассмотрим, как это сделать:
D:\1C_Temp.USR1CV8 полные права на чтение и запись для этой папки.Win + Pause/Break или запустим sysdm.cpl).SYSTEM или NetworkService), нам достаточно изменить системные переменные TEMP и TMP, указав в качестве значения путь D:\1C_Temp.USR1CV8, правильнее всего изменить переменные среды именно для этого пользователя. Для этого можно войти в систему под учетной записью USR1CV8 и изменить переменные пользователя в том же окне «Переменные среды», либо воспользоваться реестром Windows, перейдя в ветку:
HKEY_USERS\[SID_пользователя_USR1CV8]\Environment и отредактировав параметры TEMP и TMP.
Многие начинающие специалисты совершают критическую ошибку, устанавливая на сервер приложений 1С обычные бытовые (потребительские) SSD-накопители, предназначенные для домашних ПК. Нагрузка, которую генерирует СУБД SQLite журнала регистрации 1С и постоянная перезапись временных файлов, способна вывести бытовой SSD из строя за несколько месяцев. Выделим ключевые параметры, на которые нужно опираться при выборе диска:
1Cv8.lgd или нарушению целостности индексов.rphost глубина очереди запросов NVMe является ключевым фактором масштабируемости системы.Проанализируем оптимальную конфигурацию дисковой системы для сервера приложений 1С:
C:\Program Files\1cv8\...) — можно оставлять на HDD. Они считываются в оперативную память один раз при старте службы и практически не требуют дисковых операций в процессе работы.Такой подход позволит вам добиться максимальной производительности системы при минимальных затратах на закупку дорогостоящего серверного оборудования.