Многие системные администраторы и разработчики 1С сталкиваются с ситуацией, когда файловая база (например, Управление торговлей 11 или Розница) начинает вести себя непредсказуемо. В один момент расчет скидок в чеке происходит мгновенно, а в другой — занимает до 30 секунд при тех же самых данных. При этом монитор ресурсов показывает высокую нагрузку на диск, хотя объем оперативной памяти позволяет держать всю базу в кэше. Проанализируем эту ситуацию и разберем по шагам, как избавиться от подобных «глюков».
Рассмотрим подробнее, как современные операционные системы Windows работают с оперативной памятью. Главная проблема заключается не в недостатке физической памяти (даже 32 Гб может быть недостаточно), а в том, как система распределяет ее между категориями Free (Свободно) и Standby (Ожидание).
Проанализируем ситуацию: Windows стремится использовать всю невостребованную память под кэш программ и файлов. Этот кэш и называется Standby List. Теоретически, система должна мгновенно отдавать память из этого списка любому приложению по первому требованию. Однако на практике, когда файловая 1С запрашивает значительный объем памяти для сложных вычислений (таких как расчет скидок), происходит задержка. ОС начинает судорожно очищать Standby-список или сбрасывать его в файл подкачки, что вызывает резкий всплеск нагрузки на диск. Выясним, какие именно механизмы мешают работе 1С.
.1CD. Если данные базы вытесняются из кэша другими программами, 1С вынуждена снова обращаться к физическому диску.Посмотрим на пример диагностики. Чтобы подтвердить, что проблема именно в распределении памяти, воспользуемся утилитой RamMap от Microsoft Sysinternals. Разберем шаги проверки:
Попробуем выполнить ручную очистку прямо в программе: выберите пункт меню Empty и далее Empty Standby List. Если после этого расчет скидок в 1С стал мгновенным — диагноз подтвержден. Память в состоянии «Ожидание» блокировала нормальную работу файлового кэша 1С.
Поскольку вручную запускать утилиту каждый раз неудобно, разберем, как автоматизировать этот процесс. Для этого используется консольная утилита EmptyStandbyList.exe.
Проанализируем алгоритм настройки автоматической очистки:
C:\Windows\System32\.EmptyStandbyList.exe.Этот простой метод гарантирует, что у системы всегда будет достаточный объем Free Memory для нужд 1С, и ей не придется ждать, пока ОС соизволит освободить ресурсы.
Рассмотрим подробнее еще один способ оптимизации, который пришел из серверных операционных систем. В Windows есть скрытая настройка, которая определяет приоритет дискового кэша. По умолчанию в десктопных версиях (Windows 10/11) приоритет отдан приложениям, но для файловой 1С полезнее отдать его системному кэшу.
Выясним, как изменить это через реестр. Нам понадобится параметр LargeSystemCache. Разберем по шагам:
regedit и нажмите Enter.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory ManagementLargeSystemCache и установите его значение в 1.Это заставит систему агрессивнее кэшировать данные базы 1С, не позволяя другим программам легко вытеснять их из оперативной памяти.
Часто «жесткая нагрузка на винт», которую автор темы видел в мониторе ресурсов, вызвана не объемом данных, а очередью запросов. Рассмотрим дополнительные настройки, которые помогут снизить нагрузку на диск:
1. Отключение службы SysMain (ранее Superfetch). Эта служба анализирует, какие программы вы запускаете чаще всего, и заранее подгружает их в память. Для 1С это часто становится «медвежьей услугой». Если вы запускаете другую программу, SysMain может решить, что её данные важнее базы 1С. Попробуем отключить её:
2. Отключение атрибута «Последний доступ» в NTFS. При каждом чтении из базы 1С Windows обновляет метку времени последнего доступа к файлу. Это создает лишние операции записи. Для оптимизации выполните в командной строке (от имени администратора):
fsutil behavior set disablelastaccess 1
3. Схема электропитания. Проанализируем влияние энергосбережения. В режиме «Сбалансированная» процессор и шина данных могут «засыпать» на миллисекунды. Для 1С это критично. Выставите схему Максимальная производительность.
Не забудем про влияние средств защиты. Даже если антивирус не показывает активность, его драйвер (фильтр файловой системы) проверяет каждый запрос 1С к файлу базы .1CD. При запуске сторонней программы нагрузка на этот фильтр возрастает в геометрической прогрессии.
Рассмотрим необходимые исключения:
1cv8.exe и 1cv8c.exe в доверенные..1CD, .1CL, .cfl.Таким образом, комбинируя очистку Standby List, настройку LargeSystemCache и оптимизацию дисковой активности, мы можем добиться стабильно высокой скорости работы файловой 1С, сопоставимой с работой в клиент-серверном варианте на небольших объемах данных.