При переходе на новое современное оборудование часто возникает парадоксальная ситуация: многоядерная система с десятками гигабайт оперативной памяти и производительными SSD-массивами показывает более низкую скорость выполнения операций в 1С 7.7, чем старый сервер. Проанализируем, почему проведение документов (например, документа Возврат от покупателя) может замедляться в несколько раз, и разберем по шагам комплекс мер для исправления ситуации.
Выясним главную особенность платформы 1С 7.7: большинство ключевых операций, включая проведение документов в процедуре ПроведениеПоРегистрам(), выполняются строго в однопоточном режиме. В связи с этим производительность системы критически зависит не от общего количества ядер, а от тактовой частоты конкретного ядра процессора.
При выборе многопроцессорных систем на базе Intel Xeon начальных серий (например, с базовой частотой 1.7 ГГц) производительность отдельного потока оказывается значительно ниже, чем у процессоров с высокой базовой частотой (от 3.0 ГГц и выше). Даже устаревший процессор с частотой 2.2–2.5 ГГц будет выполнять однопоточные вычисления быстрее, чем современное ядро с частотой 1.7 ГГц.
Рассмотрим порядок настройки аппаратной части:
Максимальная производительность (High Performance). По умолчанию операционная система снижает частоту неиспользуемых ядер, а переход в производительное состояние занимает время, создавая микрозадержки при коротких операциях проведения.Платформа 1С 7.7 создавалась во времена MS SQL Server 2000 и имеет конструктивные особенности взаимодействия со СУБД. При переносе базы на MS SQL Server 2008 и более новые версии необходимо выполнить базовую тонкую настройку сервера БД.
Разберем основные параметры оптимизации SQL Server:
Max Degree of Parallelism (MAXDOP) равным 1 в свойствах сервера СУБД.TempDB должны располагаться на быстром SSD-диске. Рекомендуется создать несколько файлов данных TempDB одинакового размера (по числу физических ядер процессора), чтобы устранить конкуренцию за страницы распределения памяти при проведении документов несколькими пользователями.UPDATE STATISTICS) и дефрагментацию всех индексов базы данных. Без актуальной статистики оптимизатор SQL Server строит неэффективные планы запросов, увеличивая время выполнения операций с 30 до 50+ секунд.
ALTER TABLE RGxxxx SET (LOCK_ESCALATION = DISABLE);
ALTER TABLE RAxxxx SET (LOCK_ESCALATION = DISABLE);
Если серверное железо и SQL настроены, но документ Возврат от покупателя или Реализация все равно проводиться слишком долго, следует проанализировать объемы обрабатываемых данных в регистрах.
Частая проблема конфигураций «Торговля и склад» — использование единственного системного контрагента (например, Розничная выручка или Частное лицо) для всех розничных продаж. В этом случае:
Покупатели (или аналогичном регистре взаиморасчетов) накапливаются сотни тысяч незакрытых записей и итогов.Для исправления ситуации выполним следующие действия:
1CPP или toySQL для тяжелых отчетов и процедур проведения, исключая стандартный механизм временного расчета итогов 1С 7.7.Соблюдение этого комплекса мер позволяет сократить время проведения документов в 1С 7.7 с десятков секунд до сотых долей секунды даже на базах большого объема.