На связи удалённо · офис завтра с 09:00

Серверы и 1С

Zabbix тревожит сервер 1С: ложная тревога и настоящая настройка памяти SQL

Серверы клиентов у нас под мониторингом Zabbix: он пишет в Telegram, когда что-то идёт не так. Один из серверов 1С стал регулярно присылать предупреждение «Memory Pages/sec is too high (over 1000 for 5m)» со значениями около 4000.

Серверы клиентов у нас под мониторингом Zabbix: он пишет в Telegram, когда что-то идёт не так. Один из серверов 1С стал регулярно присылать предупреждение «Memory Pages/sec is too high (over 1000 for 5m)» со значениями около 4000. Железо при этом более чем достаточное: 64 ГБ памяти, два SSD по 2 ТБ, на машине вместе живут Microsoft SQL Server и сервер 1С. Разбираемся, тревога это или шум.

Почему это шум

Счётчик Windows Memory\Pages/sec считает не только нехватку памяти. В него попадает весь обмен с диском через отображаемые в память файлы: файловый кэш, чтение баз, резервное копирование, перестроение индексов. На связке SQL + 1С он спокойно уходит в тысячи на полностью здоровой системе.

Порог «1000» в стандартном шаблоне Zabbix родом из эпохи жёстких дисков. На SSD он почти не несёт смысла. Поэтому 4000 — не повод волноваться, а повод посмотреть на правильные счётчики.

На что смотреть вместо него

Чтобы убедиться, что памяти действительно хватает, достаточно четырёх показателей:

  • Memory\Available MBytes — должно стабильно держаться выше 2–4 ГБ.
  • Paging File(_Total)\% Usage — не должно расти.
  • Avg. Disk sec/Read — меньше 10–20 мс.
  • В самом SQL: Page Life Expectancy растёт, Memory Grants Pending равно нулю.

На этом сервере все четыре были в норме.

Что действительно стоило настроить

Сам алерт был ложным, но проверка вскрыла то, что на серверах «SQL + 1С в одной коробке» встречается почти всегда: SQL Server не ограничен по памяти. По умолчанию он забирает всё, что видит, и со временем начинает «душить» рабочие процессы 1С (rphost). Пользователи видят это как медленное проведение документов во второй половине дня.

Сделали три вещи:

  1. Задали max server memory в SQL Server. При 64 ГБ ориентир — 32–40 ГБ под SQL, остальное серверу 1С и системе; точное значение подбирается по реальной нагрузке.
  2. Дали учётной записи службы SQL право «Блокировка страниц в памяти» (Lock pages in memory), чтобы система не выгружала буферный пул.
  3. Файл подкачки не отключали — оставили на SSD с управлением системой.

Как убрать ложный алерт

В Zabbix: Data collection → Hosts → нужный хост → Triggers → найти «The Memory Pages/sec is too high» → Disable. Порог унаследованного триггера на уровне хоста изменить нельзя, только отключить; если нужен другой порог — правится выражение в шаблоне или делается его клон.

Вывод

Мониторинг полезен ровно настолько, насколько осмысленны его пороги. Шаблон «из коробки» — это стартовая точка, а не истина: под каждый сервер пороги надо перепроверять по реальному железу. И заодно проверять базовые настройки — ограничение памяти SQL экономит клиенту больше нервов, чем любой алерт.

Отдельное замечание, которое мы озвучили заказчику: Windows 10 как хост для продуктивного SQL и 1С — не лучший выбор из-за ограничений клиентской ОС. К этому алерту это отношения не имеет, но в план модернизации попало.

\newpage

Ещё проекты

Серверы и 1С

Медицинская система только по секретной ссылке: обратный прокси с ежемесячной ротацией токена

Медицинская организация пользуется облачной медицинской информационной системой (МИС). Вендор системы умеет ограничивать доступ по IP-адресу, но у клиники несколько площадок, сотрудники работают и из дома, и с мобильных устройств, а провайдеры меняют адреса.

Позвонить

Сайт использует cookie: для работы форм, отзывов с Яндекс.Карт и Яндекс.Метрики — чтобы понимать, что улучшить. Подробнее