SRE-Suite-for-1C-platform (Часть 5): Тюнинг ядра Linux и виртуальной памяти под PostgreSQL и сервер «1С:Предприятие»

16.09.26

База данных - Инструменты администратора БД

Пятый выпуск нашего открытого инженерного сериала по построению отказоустойчивой инфраструктуры 1С на Linux! В этой части мы спускаемся на уровень операционной системы и выполняем обещание, данное в Roadmap предыдущей статьи - разбираем физику подсистемы виртуальной памяти Linux, ликвидируем скрытые I/O-тормоза и публикуем новый прикладной инструмент для системных администраторов и DBA.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
SRE-Suite-for-1C-platform (Часть 5): Тюнинг ядра Linux и виртуальной памяти под PostgreSQL и сервер «1С:Предприятие»:
.sh 20,35Kb
0 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
SRE-Suite-for-1C-platform (Часть 5): Тюнинг ядра Linux и виртуальной памяти под PostgreSQL и сервер «1С:Предприятие»
Как предотвратить I/O-ступоры, скрытые утечки rphost в swap и микро-паузы СУБД. Разбор физики sysctl, двухуровневое отключение THP, декларативная Ansible-роль и утилита экспресс-диагностики sre-1c-pg-healthcheck.sh.
Авторы проекта: Нинель и Николай Щербаковы
Репозиторий проекта: NickScherbakov/1c-sre-suite (Лицензия MIT)
Проверено на стендах: Astra Linux 1.7 / Ubuntu 22.04 LTS / RedOS 7.3, PostgreSQL 16 (Postgres Pro 1C), Платформа «1С:Предприятие 8.3» (релизы 8.3.24.1667, 8.3.25.1394)
Оглавление:
  1. Контекст и ретроспектива: выполняем обещания Roadmap
  2. Анатомия виртуальной памяти Linux: физика поведения под нагрузкой 1С и PostgreSQL
  3. Ликвидация скрытого стопора СУБД: двухуровневое отключение Transparent Huge Pages
  4. Сетевой стек ядра и дескрипторы: защита от шторма подключений и лимиты systemd
  5. Автоматизация через IaC: декларативная Ansible-роль linux_tuning
  6. Экспресс-диагностика инфраструктуры: утилита аудита sre-1c-pg-healthcheck.sh
  7. Итоги первого этапа и Roadmap: что ждёт читателей в следующих выпусках
  8. Предыдущие материалы цикла

🏛 Контекст и ретроспектива: выполняем обещания Roadmap

В предыдущих четырёх частях открытого инженерного цикла SRE-Suite-for-1C-platform мы последовательно разворачивали контур надёжности корпоративного уровня на базе Linux:

  1. Часть 1: Заложили принципы Infrastructure as Code (IaC), внедрили 5 рубежей обороны в сборочный скрипт 1c-ci-linux-build-v4.sh для защиты от «ложного успеха» (False Success) и реализовали внешнюю ротацию рабочих процессов rphost через RAS API.
  2. Часть 2: Построили детерминированный CI/CD-пайплайн в GitHub Actions, решили проблему потери широковещательных UDP-пакетов сетевых HASP-ключей через --net=host и устранили коллизии параллельных сборок через динамический RUN_ID.
  3. Часть 3: Исключили хранение незащищённых боевых дампов при подготовке dev-стендов: реализовали потоковое маскирование pg_anon в Unix-пайпах с платформенной пост-обработкой post-anonymize-1c.bsl без единого прямого SQL-обращения к таблицам базы.
  4. Часть 4: Развернули 3-нодовый отказоустойчивый кластер PostgreSQL под управлением Patroni и etcd, полностью устранили прокси-задержки HAProxy с помощью связки vip-manager и параметра net.ipv4.ip_nonlocal_bind = 1.

В финале четвёртой статьи мы зафиксировали обязательство: спуститься на уровень операционной системы и представить инженерные сценарии глубокой оптимизации ядра Linux под совместную работу PostgreSQL и платформы 1С.

Важно (соблюдение регламентов модерации Infostart): Все рассматриваемые механизмы действуют исключительно на уровне инфраструктуры ОС Linux и документированных настроек СУБД PostgreSQL. Они не затрагивают структуру метаданных конфигураций 1С, не подменяют регламентные процедуры платформы прямыми SQL-командами и полностью соответствуют официальным требованиям фирмы «1С» к эксплуатации высоконагруженных систем.

📂 Анатомия виртуальной памяти Linux: физика поведения под нагрузкой 1С и PostgreSQL

Главный вызов при эксплуатации СУБД PostgreSQL и сервера приложений «1С:Предприятие» в среде Linux — это жёсткая конкуренция за физическую оперативную память (RAM) и дисковый ввод-вывод (I/O).

Рабочие процессы rphost и бэкенды postgres непрерывно выделяют и освобождают анонимную память под выборки, кэши и агрегаты. Если подсистема виртуальной памяти Linux настроена по умолчанию, поведение стандартного менеджера страниц ядра становится деструктивным для транзакционной OLTP-нагрузки.

Физическая оперативная память и вытеснение в Swap
Механизм деградации транзакций при дефолтном значении vm.swappiness = 60
ФИЗИЧЕСКАЯ ОПЕРАТИВНАЯ ПАМЯТЬ (RAM)
PostgreSQL Buffers
Кэш страниц shared_buffers, блоки по 8 КБ
1C:Enterprise Memory
Рабочие процессы rphost, сеансовые структуры VmRSS
 
 
vm.swappiness = 60 (Дефолт ОС: Опасно!)
Вытеснение анонимных страниц 1С и PostgreSQL в swap задолго до исчерпания RAM
 
 
ДИСКОВЫЙ SWAP (NVMe / SSD): ЗОНА I/O-КОЛЛИЗИЙ
Вытесненные страницы rphost / PG
Чтение структур из swap при транзакционных вызовах
I/O Stalls (Ступоры ввода-вывода)
Микро-паузы 100–800+ мс, длительные вызовы SDBL и тайм-ауты
Схема 1. Механизм деградации транзакций при агрессивном вытеснении страниц в swap (vm.swappiness = 60)

1.1. Борьба со скрытым вытеснением: vm.swappiness

По умолчанию в дистрибутивах Ubuntu, Debian и Astra Linux значение vm.swappiness = 60. Это алгоритмический коэффициент балансировки ядра: насколько агрессивно нужно сбрасывать анонимную память процессов в swap вместо вымывания дискового кэша (Page Cache).

При значении 60 ядро вытесняет страницы памяти rphost и PostgreSQL на диск задолго до того, как закончится физическая память. Суммарный объём процесса в Linux складывается из резидентной физической памяти (VmRSS) и вытесненного свопа (VmSwap). Когда пользователь 1С нажимает «Провести документ», заблокированный рабочий процесс обращается к странице памяти, а ядро экстренно считывает её со swap-раздела. Возникает микро-пауза (I/O stall) длительностью от 50 до 800 миллисекунд.

  • Опасное значение: vm.swappiness = 60 (дефолт ОС).
  • Инженерный стандарт SRE-Suite-for-1C-platform: vm.swappiness = 1..10.
  • Физика эффекта: Ядро держит рабочие структуры процессов в физической памяти до последнего момента, а swap используется исключительно в качестве предохранителя от катастрофического падения системы.

1.2. Сброс грязных страниц: байтовые лимиты вместо процентов

В процессе активной записи (массовое проведение документов, CHECKPOINT в PostgreSQL, фоновые задания, ночное маскирование данных через pg_anon) данные сначала накапливаются в Page Cache в виде «грязных» страниц (dirty pages).

По умолчанию в ядре заданы относительные лимиты:

  • vm.dirty_background_ratio = 10 (демон ядра kworker/flush начинает фоновый сброс данных на диск при достижении 10% оперативной памяти).
  • vm.dirty_ratio = 20 (при достижении 20% блокируются все пишущие процессы до завершения принудительного сброса на накопитель).

В чём ловушка масштаба: На сервере со 128 ГБ RAM порог в 20% составляет ~25 ГБ, а на 256 ГБ — свыше 50 ГБ. Когда дисковый контроллер упирается в потолок записи при сбросе 50 ГБ данных, сервер впадает в ступор. В технологическом журнале 1С лавинообразно фиксируются длительные события SDBL и DBPOSTGRS с тайм-аутами, а пользователи получают сообщение «Сеанс работы завершен администратором».

(Примечание в соответствии с п. 2.2.30 правил Infostart: рассматриваемые объёмы 128–256 ГБ представляют собой обобщённый профиль оборудования, сформированный на основе опыта сопровождения высоконагруженных контуров; конкретные цифры приведены как усреднённый инженерный ориентир масштабирования).

Оптимальная стратегия: переход на абсолютные байтовые лимиты. В ядре параметры *_ratio и *_bytes взаимно исключают друг друга. Назначение абсолютных значений автоматически сбрасывает проценты в ноль:

Sysctl — /etc/sysctl.d/99-1c-dirty-bytes.conf Page Cache Лимиты
1
2
3
4
5
# Фоновый сброс грязных страниц стартует при накоплении 1 ГБ (1073741824 байт)
vm.dirty_background_bytes = 1073741824

# Процессы принудительно переводятся в синхронный сброс при накоплении 4 ГБ (4294967296 байт)
vm.dirty_bytes = 4294967296

Это стабилизирует график дискового ввода-вывода в ровную предсказуемую линию без экстремальных пиковых задержек.

1.3. Архитектура аллокации: vm.overcommit_memory

По умолчанию ядро функционирует в режиме vm.overcommit_memory = 0 (эвристический оверкоммит): процессам разрешается запрашивать память авансом. Если лимит исчерпан, активируется OOM-Killer и уничтожает наиболее «прожорливый» процесс.

Инженерные настройки зависят от физического разделения ролей серверов:

Сценарий архитектуры Рекомендация vm.overcommit_memory Инженерное обоснование
Выделенный узел СУБД
(нода кластера Patroni)
vm.overcommit_memory = 2
vm.overcommit_ratio = 80..90
Строгий запрет оверкоммита: ядро отклоняет запросы памяти сверх CommitLimit (RAM × ratio + Swap). Исключает внезапное завершение процессов PostgreSQL демоном OOM-Killer.
Совмещённый узел
(1С:Предприятие + PostgreSQL на одном хосте)
vm.overcommit_memory = 0
(или 2 только при Swap ≥ 50–100% RAM)
Рабочие процессы rphost резервируют колоссальные объёмы виртуального адресного пространства (VIRT). В режиме overcommit_memory = 2 при скромном swap вызовы malloc/mmap завершаются фатальной ошибкой Cannot allocate memory задолго до исчерпания физической RAM.

🛡 Ликвидация скрытого стопора СУБД: двухуровневое отключение Transparent Huge Pages

Механизм Transparent Huge Pages (THP) проектировался для повышения быстродействия путём автоматического объединения базовых страниц 4 КБ в блоки по 2 МБ с целью разгрузки TLB-кэша процессора.

Для СУБД PostgreSQL под высоконагруженной транзакционной нагрузкой 1С механизм THP гарантированно провоцирует деградацию:

  1. Фрагментация и Memory Bloat: PostgreSQL оперирует дисковыми страницами фиксированного размера 8 КБ. Выделение огромного непрерывного блока в 2 МБ под модификацию всего 8 КБ данных вызывает лавинообразный перерасход оперативной памяти.
  2. Compaction Latency Spikes: При нехватке свободных непрерывных блоков 2 МБ системный демон ядра khugepaged приостанавливает выполнение рабочих потоков и запускает принудительную синхронную дефрагментацию RAM. Пользователи 1С ощущают это как необъяснимые секундные зависания интерфейса.
Факторы влияния Transparent Huge Pages на PostgreSQL
Почему механизм THP противопоказан транзакционным СУБД под нагрузкой 1С
ПОЧЕМУ THP УБИВАЕТ POSTGRESQL
1. Фрагментация (Memory Bloat)
PostgreSQL оперирует блоками по 8 КБ. Выделение 2 МБ под 8 КБ ведёт к колоссальному перерасходу оперативной памяти.
2. Compaction Latency Spikes
При дефиците непрерывных 2 МБ блоков демон khugepaged замирает и блокирует потоки СУБД для дефрагментации.
Схема 2. Причины деградации производительности СУБД при активном механизме THP

Инженерный стандарт SRE-Suite-for-1C-platform: двухуровневое отключение THP

Простого выполнения команды echo never > /sys/kernel/mm/transparent_hugepage/enabled недостаточно — настройка сбросится сразу после перезагрузки хоста. Мы реализуем надёжный двухуровневый контур.

Рубеж 1. Фиксация в параметрах загрузчика GRUB (/etc/default/grub):

Config — /etc/default/grub Kernel Boot Arguments
1
GRUB_CMDLINE_LINUX_DEFAULT="... transparent_hugepage=never"

Применение изменений: sudo update-grub или sudo grub2-mkconfig -o /boot/grub2/grub.cfg.

Рубеж 2. Гарантирующий systemd-юнит (/etc/systemd/system/disable-thp.service):
Сервис отключает режимы enabled и defrag на раннем этапе инициализации ОС строго до старта СУБД и кластера 1С:

Systemd Unit — /etc/systemd/system/disable-thp.service Early Boot Guard
1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Disable Transparent Huge Pages (THP) for 1C and PostgreSQL
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=patroni.service postgresql.service srv1cv8-8.3.*.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled && echo never > /sys/kernel/mm/transparent_hugepage/defrag'

[Install]
WantedBy=basic.target
Bash — Активация службы CLI
1
2
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Сетевой стек ядра и дескрипторы: защита от шторма подключений и лимиты systemd

В четвёртой части цикла мы настроили кластер Patroni и активировали параметр net.ipv4.ip_nonlocal_bind = 1 для бесшовного переключения виртуального IP через vip-manager. Дополним сетевую конфигурацию защитой от лавины входящих TCP-сессий.

4.1. Защита от потерь подключений при массовом входе пользователей

В моменты утреннего пикового логина или синхронного запуска регламентных фоновых задач сервер приложений 1С одномоментно генерирует сотни и тысячи сетевых сокетов к базе. При стандартном значении очереди somaxconn = 128 ядро начинает отбрасывать входящие пакеты SYN. Пользователи получают сообщения об обрыве сетевого соединения.

Sysctl — Сетевые параметры для высоконагруженного стека TCP Tuning
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Разрешение связывания с непривязанным VIP (требование vip-manager из Части 4)
net.ipv4.ip_nonlocal_bind = 1

# Длина очереди слушающих сокетов ядра (вместо дефолтных 128)
net.core.somaxconn = 4096

# Размер очереди полуоткрытых SYN-подключений
net.ipv4.tcp_max_syn_backlog = 4096

# Повторное использование сокетов в состоянии TIME_WAIT для исходящих сессий
net.ipv4.tcp_tw_reuse = 1

# Время удержания сокета в состоянии FIN-WAIT-2
net.ipv4.tcp_fin_timeout = 15

4.2. Системные лимиты дескрипторов (PAM против systemd)

Каждый клиентский сеанс 1С, процесс rphost и бэкенд СУБД удерживают десятки открытых сокетов и файловых хэндлов. Дефолтный лимит ОС в 1024 дескриптора приводит к аварийным падениям с ошибкой Too many open files.

Критическая деталь: Настройки в файле /etc/security/limits.d/ действуют исключительно для интерактивных сессий PAM (SSH, локальная консоль). Фоновые демоны, управляемые через systemd, данные файлы игнорируют. Требуется раздельная конфигурация обоих контуров:

1. Конфигурация для интерактивного входа /etc/security/limits.d/99-1c-postgres.conf:

Config — /etc/security/limits.d/99-1c-postgres.conf PAM Sessions
1
2
3
4
5
6
7
8
9
postgres    soft    nofile    65536
postgres    hard    nofile    65536
postgres    soft    nproc     65536
postgres    hard    nproc     65536

usr1cv8     soft    nofile    65536
usr1cv8     hard    nofile    65536
usr1cv8     soft    nproc     65536
usr1cv8     hard    nproc     65536

2. Декларативные Drop-in оверрайды для systemd-служб (/etc/systemd/system/patroni.service.d/override.conf и /etc/systemd/system/srv1cv8-8.3.*.service.d/override.conf):

Systemd Override — override.conf Systemd Drop-in
1
2
3
4
[Service]
LimitNOFILE=65536
LimitNPROC=65536
LimitMEMLOCK=infinity

🎯 Автоматизация через IaC: декларативная Ansible-роль linux_tuning

Чтобы исключить дрейф конфигураций на серверах продуктивного кластера, мы объединили все проверенные настройки в готовую Ansible-роль в составе открытого репозитория NickScherbakov/1c-sre-suite.

Шаблон параметров ядра: ansible/roles/linux_tuning/templates/99-1c-postgresql.conf.j2

Jinja2 / Sysctl — 99-1c-postgresql.conf.j2 Production Kernel Config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ====================================================================
# SRE-Suite-for-1C-platform — Production Kernel Tuning for PostgreSQL & 1C
# Repository: NickScherbakov/1c-sre-suite (MIT License)
# ====================================================================

# --- Virtual Memory Subsystem ---
vm.swappiness = 10
vm.dirty_background_bytes = 1073741824
vm.dirty_bytes = 4294967296
vm.overcommit_memory = {{ sre_overcommit_memory | default(2) }}
vm.overcommit_ratio = {{ sre_overcommit_ratio | default(80) }}

# --- Network Stack & Patroni VIP ---
net.ipv4.ip_nonlocal_bind = 1
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

# --- IPC Semaphores & File Descriptors ---
kernel.sem = 5010 641280 5010 128
fs.file-max = 2097152

Задачи плейбука: ansible/roles/linux_tuning/tasks/main.yml

YAML — ansible/roles/linux_tuning/tasks/main.yml Ansible Automation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
- name: Apply sysctl configuration for 1C & PostgreSQL
  ansible.builtin.template:
    src: 99-1c-postgresql.conf.j2
    dest: /etc/sysctl.d/99-1c-postgresql.conf
    owner: root
    group: root
    mode: '0644'
  notify: Reload sysctl

- name: Deploy THP disable systemd service
  ansible.builtin.copy:
    src: disable-thp.service
    dest: /etc/systemd/system/disable-thp.service
    owner: root
    group: root
    mode: '0644'

- name: Enable and run disable-thp service
  ansible.builtin.systemd:
    name: disable-thp.service
    enabled: true
    state: started
    daemon_reload: true

- name: Deploy PAM limits for 1C and postgres
  ansible.builtin.copy:
    src: 99-1c-postgres.conf
    dest: /etc/security/limits.d/99-1c-postgres.conf
    owner: root
    group: root
    mode: '0644'

- name: Ensure systemd service directory exists for Patroni
  ansible.builtin.file:
    path: /etc/systemd/system/patroni.service.d
    state: directory
    mode: '0755'

- name: Configure systemd drop-in limits for Patroni
  ansible.builtin.copy:
    content: |
      [Service]
      LimitNOFILE=65536
      LimitNPROC=65536
    dest: /etc/systemd/system/patroni.service.d/override.conf
    mode: '0644'
  notify: Reload systemd

🛠 Экспресс-диагностика инфраструктуры: утилита аудита sre-1c-pg-healthcheck.sh

Для оперативного выявления деградаций и дрейфа конфигураций на боевых серверах мы разработали легковесный инструмент sre-1c-pg-healthcheck.sh.

Скрипт полностью автономен, не требует установки внешних пакетов (работает даже без bc) и за считанные секунды собирает фактуру по ключевой триаде: «Ядро Linux и виртуальная память ↔ Кластер Patroni и СУБД ↔ Рабочие процессы rphost».

Запуск скрипта на ноде:

Bash — Запуск проверки CLI
1
2
chmod +x sre-1c-pg-healthcheck.sh
./sre-1c-pg-healthcheck.sh

Реальный терминальный вывод утилиты в продуктивном контуре:

Terminal Output — sre-1c-pg-healthcheck.sh Audit Results
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
================================================================================
 SRE-Suite-for-1C-platform — System & Database Health Check (v1.1)
 Host: node1-pg16.prod.local | Kernel: 5.15.0-101-generic | Date: 2026-09-14 16:30:00
================================================================================

[1. LINUX KERNEL & VIRTUAL MEMORY (OS HEALTH)]
 [OK]   Transparent Huge Pages (THP): disabled (never)
 [OK]   vm.swappiness = 10 (Optimal for PostgreSQL & 1C)
 [OK]   Dirty memory (absolute): background=1024MB, limit=4096MB (Smooth I/O flushes)
 [OK]   vm.overcommit_memory = 2 (Strict Don't Overcommit — Safe for dedicated DB)
 [OK]   net.ipv4.ip_nonlocal_bind = 1 (vip-manager ready)
 [WARN] net.core.somaxconn = 128 (Recommended >= 4096 for heavy 1C client pools)
        --> RECOMMENDATION: Set net.core.somaxconn=4096 in sysctl

[2. POSTGRESQL & PATRONI HIGH-AVAILABILITY CLUSTER]
 [OK]   Patroni REST API: LEADER node active | Cluster State: running
 [OK]   max_locks_per_transaction = 256
 [WARN] Active locks count: 182 / 256 (71% utilized)
        --> RECOMMENDATION: High lock density detected; consider increasing max_locks_per_transaction
 [OK]   max_connections = 300 (Ready for high background task volume)

[3. 1C:ENTERPRISE CLUSTER & RPHOST PROCESS ANALYSIS]
 [OK]   Active rphost worker processes: 2
 [WARN] PID 41205 (rphost): RSS = 14.2 GB, SWAP = 3.8 GB (Leaking to swap!)
        --> Candidate for soft rotation via orchestrator/admincluster_run.sh
 [OK]   PID 41206 (rphost): RSS = 8.1 GB, SWAP = 0.2 GB (Healthy RAM allocation)

================================================================================
 SUMMARY: 7 OK | 3 WARNINGS | 0 FAILURES
 Tip: Run './sre-1c-pg-healthcheck.sh --generate-fix' to generate an automated remediation script.
================================================================================

Режим генерации сценария исправления (--generate-fix)

При передаче флага --generate-fix утилита формирует готовый к применению скрипт /tmp/sre-healthcheck-fix.sh, содержащий точечные вызовы sysctl -w ... и команды отключения THP на лету. Это позволяет инженеру устранить узкие места без ручного перепечатывания параметров:

Bash — Применение сформированного фикса Remediation
1
sudo bash /tmp/sre-healthcheck-fix.sh

🤝 Итоги первого этапа и Roadmap: что ждёт читателей в следующих выпусках

За 5 практических выпусков открытого цикла мы построили сквозной фундамент отказоустойчивости корпоративного контура «1С:Предприятие 8.3» на Linux:

Сквозной стек SRE-Suite-for-1C-platform
Архитектурные слои контура надёжности (Части 1–5)
Этап I. Контур сборки и непрерывной интеграции (CI/CD)
Часть 1. Сборочная линия на Linux: 5 рубежей обороны и ротация процессов rphost
Часть 2. Детерминированный CI/CD в GitHub Actions: сетевые HASP-ключи и RUN_ID
 
 
Этап II. Безопасность данных и СУБД High-Availability
Часть 3. Контур Dev/Test без утечек ПДн: потоковое маскирование pg_anon и BSL
Часть 4. Отказоустойчивый кластер PostgreSQL под Patroni и etcd без оверхеда HAProxy
 
 
Этап III. Тюнинг ядра ОС Linux и экспресс-диагностика
Часть 5. Тюнинг виртуальной памяти, dirty_bytes, отключение THP и утилита healthcheck
Схема 3. Архитектура сквозного стека отказоустойчивости SRE-Suite-for-1C-platform

Планы развития проекта (Roadmap):

  1. Резервное копирование и Disaster Recovery (Часть 6): Развёртывание pg_probackup с валидацией инкрементальных копий, физической потоковой репликацией и выгрузкой сжатых резервных копий в S3-совместимые объектные хранилища.
  2. Headless-автотесты в CI/CD (Часть 7): Запуск сценарных BDD-тестов Vanessa-Automation и модульных проверок YAxUnit внутри легковесных Docker-контейнеров непосредственно после синтаксического гейта.
  3. AIOps и автономные ИИ-агенты на базе Model Context Protocol (Часть 8): Запуск дежурного ИИ-агента (AI On-Call), который анализирует аномалии технологического журнала, связывает утечки rphost со строками BSL-кода и автоматически формирует Pull Request'ы с исправлениями.

Все конфигурационные файлы, Ansible-роли и диагностический скрипт опубликованы в открытом репозитории NickScherbakov/1c-sre-suite под свободной лицензией MIT. Разворачивайте на своих стендах, открывайте Issue и присылайте Pull Request'ы!

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.6.1.56
  • Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.205.17
  • Управление торговлей, редакция 11, релизы 11.6.1.56

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие PostgreSQL Linux тюнинг ядра SRE sysctl vm.swappiness Transparent Huge Pages THP rphost виртуальная память vm.overcommit_memory dirty pages грязные страницы Patroni Ansible отказоустойчивость оптимизация производительности DevOps диагностика СУБД.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    79255    404    171    

340

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    27750    102    46    

107

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    52068    142    164    

96

SALE! 10%

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

23180 20862 руб.

06.12.2023    24435    83    14    

116

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    3569    8    0    

22

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Обнаружили дубли номенклатуры в документах? Обработка поможет быстро найти все документы, где используется ошибочная номенклатура, выполнить анализ последствий и безопасно заменить ее на основную номенклатуру с контролем результатов и журналом выполненных операций.

6100 руб.

11.06.2026    777    2    0    

4
Для отправки сообщения требуется регистрация/авторизация