Чёрный пояс 1С. Три новые задачи senior-уровня: Linux-кластер, MCP-мультиарендность, PostgreSQL deadlock
Сегодня в пул токен-платформы добавлены три новые задачи уровня Senior/Architect (сложность 5 из 5) - на основе реальных технических «болей», которые всплывают не сразу, а спустя месяцы после того, как решение уже прошло приёмку. Ниже - короткий анонс всех трёх и полный разбор первой: утечка памяти rphost на Linux-кластере, с примером диалога с AI-помощником nopikreport.com прямо в процессе диагностики.
Три новые задачи
| Задача | Категория | Очки |
|---|---|---|
| Аварийное завершение rphost при неконтролируемом росте дампов памяти на Linux-кластере 1С Спустя полгода после запуска фонового импорта каталогов через 1С:РПД сервер под Linux начал регулярно ронять rphost, а диск - заполняться полными дампами при каждом сбое. | Администрирование | 120 |
| Нарушение изоляции данных в SaaS при интеграции ИИ-ассистента на базе MCP После подключения сотен новых арендаторов к мультиарендной базе ИИ-помощник на MCP-сервере начал цитировать в ответах конфиденциальные данные чужих организаций. | Интеграции | 120 |
| Массовые deadlock на PostgreSQL при интеграции с маркетплейсами После миграции с MS SQL Server на PostgreSQL в периоды распродаж пошли массовые блокировки СУБД - платформы ведут себя по-разному при отсутствующих индексах для внешних ключей. | Разработка 1С | 120 |
Разбор: утечка памяти rphost на Linux-кластере
Условие. Спустя полгода после запуска масштабного фонового импорта каталогов товаров и обработки первичных документов через 1С:РПД рабочий сервер 1С:Предприятие 8.3 под Linux начал регулярно зависать и аварийно завершать процессы rphost в периоды пиковых нагрузок. Диск стремительно заполняется гигабайтами файлов полных дампов памяти. Лимиты памяти rphost в консоли кластера стоят по умолчанию, файл технологического журнала logcfg.xml отсутствует - поэтому при каждом сбое пишется полный (full) дамп, а не лёгкий.
Что нужно на выходе: рабочий logcfg.xml, настроенный на mini-dump; изменённые параметры кластера, предотвращающие бесконтрольное падение; скрипт ротации дампов.
1. logcfg.xml: mini-dump вместо полного
Формат технологического журнала 1С фиксированный - корневой элемент <config xmlns="http://v8.1c.ru/v8/tech-log">, а не произвольная схема. Рабочий вариант я уже разбирал в отдельном выпуске «Мёртвый кэш и утечка памяти rphost» - там же разбор, почему полный дамп (full dump) на боевом сервере опасен и как ограничиться mini-dump через диспетчер задач/procdump на Windows или gdb/gcore на Linux. Дубли платформенной документации в конце статьи не пересказываю - смотрите по ссылке.
2. Параметры рабочего сервера в консоли кластера
Чтобы rphost не падал бесконтрольно, а мягко перезапускался при утечке, в свойствах рабочего сервера задаются: «Временно допустимый объём памяти процессов», «Критический объём памяти процессов» и явный «Интервал перезапуска проблемных процессов» (по умолчанию отложенный мягкий перезапуск выключен, пока администратор не задаст интервал сам - это разбиралось в выпуске про лимиты памяти rphost и разницу ПРОФ/КОРП).
3. Ротация дампов на Linux
#!/bin/bash
# Ротация дампов rphost: хранить не больше N последних файлов
# и не давать каталогу расти бесконтрольно
DUMP_DIR="/var/log/1c/dumps"
MAX_FILES=10
MAX_TOTAL_MB=5120
find "$DUMP_DIR" -maxdepth 1 -name "*.dmp" -printf '%T@ %p\n' | sort -rn | \
awk -v max="$MAX_FILES" 'NR>max {print $2}' | xargs -r rm -f
while [ "$(du -sm "$DUMP_DIR" | cut -f1)" -gt "$MAX_TOTAL_MB" ]; do
oldest=$(find "$DUMP_DIR" -maxdepth 1 -name "*.dmp" -printf '%T@ %p\n' | sort -n | head -1 | cut -d' ' -f2-)
[ -z "$oldest" ] && break
rm -f "$oldest"
done
Ставится в cron раз в час; порог MAX_TOTAL_MB держите ниже, чем «minFreeSpacePercent» в мониторинге диска, чтобы скрипт срабатывал раньше, чем закончится место.
Диалог с AI-помощником nopikreport.com
Ниже - реальный ответ AI-помощника nopikreport.com на вопрос по этой же задаче, без правок. Он верно называет параметры кластера, отвечающие за мягкий перезапуск - это совпадает с тем, что уже проверено по документации выше. Показываем как есть, включая место, где стоит перепроверить платформенный источник, а не копировать бездумно.
logcfg.xml AI-помощник предложил схему с корневым элементом <log-config> и атрибутом dumpType="mini" - это НЕ формат технологического журнала 1С (реальный формат см. в разделе 1 выше и в выпуске «Мёртвый кэш»). Мы намеренно не публикуем этот фрагмент ответа как пример - именно чтобы показать: AI-помощник экономит время на формулировках и параметрах, которые легко перепроверить по разным независимым вопросам, но финальную конфигурацию для прод-сервера всегда сверяйте с платформенной документацией, а не копируете вслепую.О конвейере
С сегодняшнего дня в пул токен-платформы ежедневно добавляются три новые задачи повышенной сложности. Темы - из внутреннего корпуса материалов редакции: интеграции с маркетплейсами, MCP-серверы и ИИ в 1С, технологический журнал, администрирование кластера. Каждый седьмой анонс сопровождается полным разбором с примером решения, как в этом выпуске.
Выбрать задачу →