Обновление технологической платформы 1С:Предприятие — это всегда ответственный шаг, который часто преподносит неприятные сюрпризы. Одной из наиболее острых проблем при переходе на ветку 8.3.19.1229 стало резкое снижение быстродействия системы. Особенно сильно это затронуло компании, использующие 32-разрядный сервер приложений. В этой статье мы подробно разберем, почему это происходит, как ведет себя менеджер памяти в новых версиях и какие шаги необходимо предпринять для восстановления нормальной работы системы.
Проанализируем ситуацию, с которой сталкиваются системные администраторы: до обновления процесс rphost мог занимать в оперативной памяти до 2.5 ГБ, эффективно кэшируя данные. После установки версии 8.3.19.1229 наблюдается странная картина — потребление памяти процессом замирает на отметке 650–700 МБ и не растет дальше. Это приводит к тому, что при каждом повторном обращении к данным система вынуждена заново считывать их из базы данных или с диска, вместо того чтобы брать их из быстрого оперативного кэша.
Выясним причину такого поведения. В версиях 8.3.18 и 8.3.19 разработчики внедрили более агрессивный менеджер управления памятью. Его основная задача — борьба с утечками, которыми славилась 17-я ветка. Однако для 32-битных систем это стало критическим фактором: алгоритм принудительно очищает «неиспользуемую» (по мнению системы) память слишком часто. В условиях ограниченного адресного пространства (всего 4 ГБ на процесс, из которых доступно реально около 2-3 ГБ), платформа старается держать огромный запас «безопасности», фактически убивая производительность за счет очистки полезного кэша.
Первым делом рассмотрим стандартную, но обязательную процедуру — полную очистку кэша. Новые механизмы платформы могут конфликтовать со старыми данными, оставшимися от предыдущих релизов.
1C:Enterprise 8.3 Server Agent. Перейдем в каталог srvinfo (путь по умолчанию: C:\Program Files\1cv8\srvinfo) и удалим все содержимое папок snccntx. Также стоит очистить временные файлы пользователя, под которым запускается служба.%AppData%\1C\1cv8\ и %LocalAppData%\1C\1cv8\. Это исключит ошибки отрисовки форм и старые метаданные, которые могут замедлять работу.-debug на сервере, кэш конфигурации очищается менее агрессивно. Попробуем добавить этот ключ в строку запуска службы, чтобы стабилизировать работу с метаданными.Проанализируем влияние режима совместимости. Если ваша конфигурация разработана под старые версии (например, 8.3.14), а работает на платформе 8.3.19, возникают коллизии в управлении блокировками и планами запросов. Новая платформа иначе интерпретирует обращения к СУБД.
Разберем, что можно сделать на стороне SQL-сервера:
DBCC FREEPROCCACHE;
GO
Посмотрим на активность дисковой подсистемы. Платформа 8.3.19 создает в два раза больше короткоживущих временных файлов при выполнении серверных вызовов. Если диски сервера перегружены, это создает «бутылочное горлышко».
Рассмотрим вариант решения через RAM-диск:
TEMP и TMP для пользователя, под которым работает сервер 1С, на этот быстрый диск.Выясним, не тратятся ли ресурсы впустую. В версии 8.3.19 механизмы полнотекстового поиска (ПП) могут начать «зацикливаться» после обновления. Рекомендуется выполнить полную очистку и перестроение индекса:
Воспользуемся встроенной обработкой или консолью администратора, чтобы выполнить Очистить Индекс, а затем Обновить Индекс. На время перестроения нагрузка вырастет, но после этого система станет стабильнее.
Также проанализируем настройки антивируса. Новые механизмы проверки целостности модулей в 19-й платформе вызывают повышенный интерес у Windows Defender и сторонних антивирусов. Обязательно добавим в исключения:
rphost.exe, rmngr.exe, ragent.exe.srvinfo (особенно папки сеансов данных).%TEMP%.Рассмотрим суровую реальность: фирма 1С официально сместила фокус развития на 64-битные системы. Все новые оптимизации кэширования, такие как «Общий кэш конфигураций», проектируются с расчетом на адресное пространство, превышающее 4 ГБ. 32-битный сервер в версии 8.3.19 — это «узкое место» само по себе.
Если бюджет позволяет, переход на 64-разрядный сервер 1С решит проблему ограничения памяти в 700 МБ для процесса rphost. В 64-битной версии процесс сможет использовать всю доступную память сервера для кэширования, что вернет системе прежнюю «отзывчивость», которая была на 17-й платформе.
Подведем итоги нашего анализа. Если вы столкнулись с падением производительности на 8.3.19.1229:
rphost в лимитах 32-битной системы.Помните, что каждая конфигурация индивидуальна, и перед внедрением изменений на рабочую базу всегда стоит провести замеры производительности в тестовой среде.