Опубликовано · примерно 8 мин. чтения
Бухгалтер говорит «база тормозит», и это единственное, что известно. Дальше начинается разговор о том, что виноват сервер, интернет или сама 1С — обычно без единого измерения. Разберём, что именно проверяют со стороны инфраструктуры, в каком порядке и по каким признакам отличают одну причину от другой.
Сразу оговорка о границе: всё ниже — про инфраструктуру, на которой работает 1С. Медленный отчёт из-за неудачного запроса в доработанной конфигурации или из-за того, что документ проводится по всем регистрам, — это к тем, кто конфигурацию сопровождает. Мы отвечаем за то, чтобы программа не упиралась в железо, сеть и настройки, а не за то, как в ней устроен учёт.
Файловая база — причина номер один
Начинать надо отсюда, потому что это самая частая и самая недооценённая причина. В файловом режиме база лежит общей папкой, и каждый клиент 1С работает с ней напрямую по сети: чтение, запись, блокировки — всё через файловую систему.
Признаки, по которым узнаётся именно этот случай: работать становится тяжело не постоянно, а когда в базе много людей одновременно; хуже всего при закрытии месяца и при проведении документов задним числом; иногда база «зависает» и её приходится разблокировать вручную; список документов открывается заметно дольше, чем карточка одного.
Порог, после которого файловый режим перестаёт справляться, наступает примерно на десяти одновременных пользователях. Точное число зависит от того, что люди делают: пятеро бухгалтеров в период отчётности нагружают базу сильнее, чем пятнадцать человек, которые изредка выписывают накладные.
Лечится это не добавлением памяти и не более быстрым процессором. Лечится переводом в клиент-серверный режим на SQL: тогда с файлами работает один сервер, а клиенты общаются с ним запросами. Если вы уже упёрлись в файловый режим, наращивание ресурсов будет стоить денег и почти ничего не изменит — это самая обидная трата в списке.
Диски
Вторая по частоте причина и первая по скорости проверки. 1С интенсивно работает с диском, и механический диск в этой роли — узкое место, которое не обходится ничем.
Проверить просто: посмотрите в мониторинге ресурсов очередь к диску и время отклика. Устойчивое время отклика выше 20–25 миллисекунд под нагрузкой означает, что диск не успевает. При этом процессор может быть загружен на двадцать процентов, и по общей картине сервер выглядит незанятым — отсюда частый вывод «сервер не нагружен, дело не в нём».
Отдельно проверяют, где лежит база данных, где журнал транзакций и где файл подкачки. Если всё это на одном разделе, они мешают друг другу. И отдельно — свободное место: когда на разделе с базой остаётся меньше десяти процентов, деградация начинается ещё до того, как место кончится.
Память
Здесь важно смотреть не на общий объём, а на то, кому его не хватает. Для клиент-серверной базы память делят между собой SQL Server и сервер 1С, и по умолчанию SQL забирает всё, до чего дотянется. Если ограничение максимальной памяти SQL не выставлено, он вытесняет остальное, и сервер начинает свопиться — то есть работать с диском вместо памяти. Симптом узнаваемый: сначала всё нормально, а через час-другой после запуска становится тяжело.
Ориентир для терминального сценария — около 2 ГБ на активного пользователя плюс запас на систему и на сам SQL. Точнее считают по размеру базы и характеру работы.
Регламентные задания и обслуживание базы
База, которую никто не обслуживает, замедляется постепенно и незаметно. Индексы фрагментируются, статистика устаревает, журнал транзакций растёт, пока не займёт весь диск.
Проверяют три вещи. Настроено ли обслуживание индексов и обновление статистики — и когда оно выполнялось в последний раз. В какой модели восстановления работает база и делается ли резервное копирование журнала транзакций: в полной модели без такого копирования журнал растёт бесконечно. И во сколько запускаются регламентные задания самой 1С — их любят ставить на удобное для настройщика время и забывать, а потом закрытие месяца совпадает с полной переиндексацией.
Антивирус
Частая и легко устранимая причина. Антивирус, проверяющий файлы базы, журналы и временные каталоги на лету, добавляет задержку к каждой операции ввода-вывода. На файловой базе это заметно сразу, на клиент-серверной — по вечерам, когда запускается полное сканирование.
Правильно — исключить из проверки каталоги базы данных и журналов, рабочие каталоги сервера 1С и временные файлы сеансов. Неправильно — отключить антивирус целиком: это меняет одну проблему на другую, гораздо более дорогую.
Сеть и способ подключения
Если 1С работает по сети в файловом режиме, любая проблема канала бьёт по ней напрямую. Проверяют скорость и стабильность соединения между клиентами и хранилищем, потери пакетов, работу Wi-Fi там, где стоило бы использовать провод.
Отдельный случай — подключение к базе через интернет напрямую, из дома или из филиала. Файловая база так работать не должна: тонкий клиент передаёт по сети слишком много данных, и на любом канале, кроме локального, это выглядит как «всё висит». Правильное решение — терминальный сервер, где клиент и база стоят рядом, а по сети едет только изображение. Подробнее про варианты — в разборе RDS и VDS.
Чего делать не стоит
Добавлять ресурсы, не измерив. Самая частая трата впустую: покупают память, а упиралось в диск, или наращивают ядра, хотя 1С в значительной части работает в один поток и ей важнее частота.
Выключать антивирус вместо настройки исключений. Скорость вырастет, риск вырастет сильнее.
Держать всё на одном сервере без разделения. Когда SQL, сервер 1С, файловая шара, контроллер домена и чей-нибудь тестовый стенд живут на одной машине, они конкурируют за одни и те же диски.
Чинить по одной жалобе. «У Марии Ивановны тормозит» — это может быть и старый компьютер на её столе, и общая проблема. Пока не понятно, у всех или у одного, чинить нечего.
Порядок проверки
- Выяснить, у всех или у одного, постоянно или в определённые часы, и что именно медленно — открытие базы, проведение документов, отчёты.
- Посмотреть режим работы базы: файловый или клиент-серверный, сколько одновременных пользователей.
- Снять показатели сервера под нагрузкой: диск, память, процессор — именно в тот момент, когда жалуются.
- Проверить исключения антивируса и расписание регламентных заданий.
- Посмотреть, когда в последний раз обслуживались индексы и какого размера журнал транзакций.
Первые два пункта заказчик может пройти сам за полчаса, и этого хватает, чтобы разговор с подрядчиком стал предметным. Остальное требует доступа к серверу.
Что обычно находится
Картина повторяется от компании к компании. Файловая база на общей папке, за которой работают двенадцать человек. Механический диск под базой, потому что сервер покупали пять лет назад. Антивирус без исключений. Регламентное задание, поставленное на 18:00 — ровно тогда, когда бухгалтерия закрывает день. Журнал транзакций в несколько раз больше самой базы, потому что база в полной модели восстановления, а копирование журнала никто не настроил.
Ни одна из этих причин не экзотическая, и почти все устраняются без покупки нового оборудования. Дорогим оказывается не решение, а время, которое компания провела, работая вдвое медленнее.
С чего начать
Проверьте два факта: в каком режиме работает ваша база и на каких дисках стоит сервер. Если режим файловый и пользователей больше десяти — причина, скорее всего, найдена, и дальше можно не искать. Если база клиент-серверная, а диски механические — тоже.
Если считать не с чего или доступа к серверу нет, посмотрим сами: снимем показатели под нагрузкой, проверим настройки и отдадим письменный отчёт с тем, что нашли и что из этого критично. Для парка примерно до 20 компьютеров и одного сервера это бесплатно, отчёт остаётся у вас независимо от дальнейшего — записаться на аудит. Постоянное сопровождение инфраструктуры 1С — на странице сопровождения 1С, а если сервер под базу только предстоит выбрать, смотрите аренду сервера для 1С.