1С + MS SQL против Матрицы виртуализации

30.06.22

Интеграция - Облачные сервисы, хостинг

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

Бесплатные

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

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Скрипт для сбора статистики
.sql 10,18Kb
22 Скачать бесплатно
Скрипт статистики по spin lock
.sql 2,36Kb
20 Скачать бесплатно

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

1С + MS SQL против Матрицы виртуализации.

Логика Черного лебедя делает то, чего вы не знаете, гораздо более важным, чем то, что вы знаете. Ведь если вдуматься, то многие Черные лебеди явились в мир и потрясли его именно потому, что их никто не ожидал.

Нассим Талеб

 

«Время всегда против нас».

Весна 2020 года была очень активной на фондовых рынках, количество сделок в некоторые дни вырастало в 2 раза от нормы, закрытие дня в финансовом учете было близко к предельным срокам. Клиенты боролись с Черным Лебедем Covid-19  по всем фронтам. К этому моменту конфигурация уже 7 лет работала на одном и том же оборудовании, которое было заложено с запасом под горизонтальное маштабирование.  Даже то горизонтальное масштабирование, которое можно сделать в 1С (см статью //infostart.ru/1c/articles/1683197/ ) позволяет решать проблемы роста объемов оборудованием, и вот настал тот момент когда уже пора расширять оборудование. Случайное совпадение - наши системные администраторы предложили попробовать новый виртуальный кластер, который недавно развернули в компании. Кластер на основе VMWare. Перспективы были заманчивые, вместо покупки новых серверов, отдельных дисковых хранилищ, обоснований бюджета –  создаются виртуальные машины с нужными параметрами, а в бюджет аллоцируются расходы из общего пула. Будущее рисует нам картины, когда системный администратор скоро не сможет потрогать сервер рукой, и будет видеть только операционную систему и прайс лист за использование J  от провайдера. Однако виртуальная реальность оказалась не такой радужной.

Мне  выделили контур с примерно таким же числом ядер, памяти как на рабочем. Версии программ и операционной системы поставили идентичные, настройки тоже. Параметры  оборудования по виртуализацию были  лучше, но не сильно ведь гонка тактовых частот заканчивается по физическим ограничениям. Запустил перерасчет за месяц с распараллеливанием… и ушел спать.

 

«Что есть реальность?» В виртуальной среде

Утром первым делом посмотрел на результаты, они были странные – замедление 60% на виртуальном кластере. Даже ФИФО который параллелится только по бумагам и не создает большой нагрузки, посчитался медленней на 30%

 

 

Хорошо, что мне есть с чем сравнивать, и я могу просто сказать «А вот на железном кластере с той же конфигурацией гораздо быстрее» или сравнить счетчики MS SQL на быстром и медленном кластере. Но  допустим, кому то дали облако под проект с якобы заявленными параметрами,  как ему понять что кластер (1С MSSQL Hardware)  работает на полную мощность?

Тут можно обратится к принципу непротиворечивости логичной системы аксиом. В логике предикатов http://mathhelpplanet.com/static.php?p=svoystva-aksiomaticheskikh-teoriy это изложено детально, но по простому можно сказать: Вы можете построить любую систему аксиом для своей алгебры, геометрии, теории множеств – важно чтобы она была непротиворечивой при выводе теорем и утверждений. Там, где есть противоречие 2 варианта либо система аксиом плоха, либо вы что-то не знаете и не учитываете и именно там истина. Математика, физические постоянные существуют в мире не просто так любые противоречия разрушили бы вселенную. Напр путешествие во времени назад вызывает кучу противоречий, значит оно невозможно, а вот в будущее без возврата в прошлое вполне возможно.

Значит решено - снимаем показатели и ищем противоречия. ИТ технологии сложны, но это гораздо проще тензорного исчисления J . Производительность какого-то компонента кластера снижается по одной из трех причин.

  • Ресурс перегружен, это сразу видно на счетчиках производительности
  • Ресурс частично свободен, но ждет снятия какой-то блокировки (Это может быть блокировка строк в СУБД, ресурсов памяти Latch, и т.д.)
  • Ресурс частично свободен, но у него скопилась очередь (Это может быть очередь к дисковой системе, минимально необходимые задержки на передачу пакета по сети)

Комбинация этих причин приводит к тому что все утыкается в бутылочное горлышко и остальные ресурсы просто не нагружаются.

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

Виртуализация Облака VMWare Производительность

См. также

Облачные сервисы, хостинг Сервера Нейросети Программист Бесплатно (free)

В последние годы спор «облако или локалка» стал одним из самых горячих в мире работы с нейросетями. Давайте разберемся.

03.08.2026    3088    dsdred    49    

11

Облачные сервисы, хостинг Программист Пользователь 1С 8.3 Абонемент ($m)

Штатный механизм рассылки отчетов в 1С:Предприятие удобен для отправки отчетов для дальнейшего их анализа (в том числе bi системами), но из-за неоднородности инфраструктуры существующие способы доставки могут не всегда подходить. Для решения этой проблемы можно использовать s3 совместимые хранилища, и в этом поможет мое расширение.

2 стартмани

29.07.2026    336    0    smirnov0ser    0    

1

Облачные сервисы, хостинг Системный администратор Бесплатно (free)

Рассматриваем переход от классической инфраструктуры к облачным моделям и причины, по которым бизнес все чаще выбирает PaaS: скорость внедрения, снижение затрат и отказоустойчивость. Разбираем, какую роль Kubernetes играет в автоматизации, масштабировании и управлении контейнеризированными приложениями, а также можно ли считать 1С Cloud Native-приложением. На примере архитектуры кластера 1С показываем, как компоненты сервера упаковываются в контейнеры, какие ограничения возникают из-за монолитной природы 1С и как их можно обходить. В финальной части объясняем, как Prometheus, Grafana, Loki/ELK и другие инструменты мониторинга помогают контролировать состояние сервиса и делать облачную платформу удобнее для бизнеса.

02.06.2026    1604    militarymax    0    

1

Перенос данных 1C Облачные сервисы, хостинг Программист 1С 8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Бесплатно (free)

Если нужно выгрузить данные базы 1С: БП в формате data_dump, без конфигурации, можно воспользоваться типовым функционалом "Переход в облачный сервис". Но вы можете столкнуться с тем, что в начале выгрузки типовая обработка пишет ошибку. Ошибка связана с тем, что в справочнике "Предопределенные варианты отчетов" могут быть дубли. Это служебный справочник, и его данные можно редактировать или удалять только программно. Типовая обработка удаления помеченных объектов не поможет в этом случае. Там просто нет объектов из этого справочника, даже если они помечены на удаление. Написанная мной обработка поможет удалить некорректные элементы справочника буквально в пару кликов.

29.05.2026    628    36    Kilgure    3    

2

WEB-интеграция Облачные сервисы, хостинг 1С 8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Внешняя обработка предназначена для автоматической выгрузки файлов из локального или серверного каталога на Яндекс.Диск через официальный REST API Яндекса. Решение удобно использовать для регулярной передачи отчетов, обменных файлов, архивов, выгрузок из 1С и других документов в облачное хранилище без ручного копирования через браузер или клиент Яндекс.Диска.

3 стартмани

18.05.2026    1631    15    Rom_Kat    0    

5

Облачные сервисы, хостинг Системный администратор Программист Бесплатно (free)

Рассказываем, как родилась идея готового облака 1С и какие инновации сделали его полноценной PaaS-платформой. Материал будет полезен тем, кто ищет способ упростить взаимодействие с 1С, сохранив масштабируемость и надежность корпоративных систем.

14.04.2026    1514    militarymax    0    

2

Облачные сервисы, хостинг WEB-интеграция Программист Бесплатно (free)

Очереди сообщений – это инструмент обмена данными между системами. На примере Yandex Message Queue разбираем, как брокер от Яндекс.Облака помогает решать практические задачи. Даем бесплатную библиотеку для 1С, которая упрощает работу с YandexMQ и другими SQS-сервисами.

17.11.2025    4965    leemuar    38    

28

Облачные сервисы, хостинг Программист 1С:Предприятие 8 Абонемент ($m)

Универсальная выгрузка отчетов 1С в облако (Яндекс.Диск, Mail.ru) по расписанию. Любые отчеты на СКД и обычные. Вычисляемые параметры, макросы имен, 5 форматов, полная история. Обычные формы 8.2+. Тестировалась на платформе 8.3.25.1394 в режиме совместимости 8.3.12.

2 стартмани

20.10.2025    1671    4    daka    4    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3301 30.06.22 11:56 Сейчас в теме
Статья норм, но кое-где кое-что автор недогоняет. Например:
ведь spinlock это структуры памяти

Умные существа об этом пишут как-то так:
Спин-блокировки не задействуют планировщик и используют цикл активного ожидания без изменения состояния потока, что приводит к трате процессорного времени на ожидание освобождения блокировки другим потоком. Типовой реализацией спин-блокировки является простая циклическая проверка переменной спин-блокировки на доступность[1].
Т.е. спинлок-блокировка - это просто цикл по типу:
Пока Заблокировано Цикл
КонецЦикла;

Я об этих спин-блокировках писал лет пять (блин, уже семь) назад, когда предлагал реализацию мьютекса на 1С: https://infostart.ru/1c/articles/384485/ - там как раз файловая блокировка ожидается с помощью того самого спин-лока:
Функция СоздатьБлокировку(ИмяБлокировки, файлБлокировки)

  Попытка

    файлБлокировки = Новый ЗаписьТекста(КаталогВременныхФайлов() + ИмяБлокировки);
    Возврат Истина;

  Исключение

    Возврат Ложь

  КонецПопытки;

КонецФункции
Показать
Ну и дальше:
  файлБлокировки = Неопределено;
  Пока НЕ СоздатьБлокировку("ПечатьШтрихКода", файлБлокировки) Цикл
    // пустой цикл
  КонецЦикла;

  ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);

  // убираем блокировку
  файлБлокировки.Закрыть();
Показать
2. 1CUnlimited 426 30.06.22 12:24 Сейчас в теме
Из системного программирования помню только семафоры https://en.wikipedia.org/wiki/Semaphore_(programming)
mutex как понимаю это частный случай. Я честно не углублялся в MS SQL на эту тему, поскольку тюнить spinlock SQL в планы не входило, а нужно было найти истинную причину проблемы. Вашу статью прочитал, проблема мне знакома и конечно хотелось бы иметь нетранзакционный объект для реализации mutex в 1С, но ихмо лучше написать внешнюю компоненту с идеальной реализацией, чем костыли с файлами.
3. starik-2005 3301 30.06.22 13:31 Сейчас в теме
(2)
но ихмо лучше написать внешнюю компоненту с идеальной реализацией, чем костыли с файлами
Файлы как раз реализуют быстрый спинлок, а мьютекс - я семь лет назад об этом был достаточно средне осведомлен - это блокировки процесса менеджером задач, т.е. они хоть и не потребляют ресурсы, но накладные расходы на разблокировку там достаточно большие. Ну и если в двух разных потоках вызвать две разные компоненты, реализующие мьютекс, то из-за отсутствия у них общего пространства памяти, сам по себе мьютекс будет не реализовать. Ну на мой взгляд, т.к. мьютекс - это тоже блокировка некоторой переменной (ячейки памяти).
4. triviumfan 102 04.07.22 15:59 Сейчас в теме
Читать жестоко - глаза сломаешь. Вроде 22 год на дворе, а такое оформление сводит весь труд на нет.
5. 1CUnlimited 426 06.07.22 00:13 Сейчас в теме
(4) Уточните - проблема с маштабированием картинок, или текста? Приведите ссылку на статью инфостарт где стиль оформления супер, я на нее сориентируюсь
6. triviumfan 102 06.07.22 10:08 Сейчас в теме
(5) Да и с текстом, и стилями, и картинками.. шрифт ужасный, заголовки, табуляция, картинки не центрированы...где-то вставка кода нужна, можно со спойлерами.
Откройте любую статью из топ100. Ну, для примера, статья Владимира Крючкова (ivanov660). Глазу приятно.
user1061229; +1 Ответить
7. Gilev.Vyacheslav 1923 22.07.22 16:12 Сейчас в теме
" Перспективы были заманчивые, вместо покупки новых серверов, отдельных дисковых хранилищ, обоснований бюджета – создаются виртуальные машины с нужными параметрами, а в бюджет аллоцируются расходы из общего пула."
Это классическая ошибка всех дилетантов - думать что можно нарезать виртуальных ресурсов больше чем физических и от этого вдруг в природе добавиться больше мощностей.
https://www.youtube.com/watch?v=YaDch8h58E0
12. 1CUnlimited 426 22.07.22 20:38 Сейчас в теме
(7) Ну если поглядеть окончание https://infostart.ru/1c/articles/1695286/ истории
на самом деле можно было достичь эквивалентной производительности в нашем решении. И облако использовалось какое то время как резервный \ тестовый контур. Новый кластер купили через 1.5 года по одной причине - облако не позволяло маштабироваться увеличивать нагрузку. Т.е в принципе компромис возможен, а некоторые могут даже сэкономить на собственном ЦОД но это уже тема другой статьи
14. Gilev.Vyacheslav 1923 23.07.22 09:57 Сейчас в теме
(12)
облако не позволяло маштабироваться увеличивать нагрузку

а маркетлоги всех убеждают в обратном - мол зачем вам сервер, а вдруг его не хватит, идите в облако, там будет всё замечтаельно
достаточно одной это фразы вместо всей этой статьи
8. Gilev.Vyacheslav 1923 22.07.22 16:15 Сейчас в теме
" как ему понять что кластер (1С MSSQL Hardware) работает на полную мощность "
" Даже ФИФО который параллелится только по бумагам и не создает большой нагрузки, посчитался медленней на 30%" - ещё одна фантазия, ибо производительность сервера определяется не загруженностью сервера, а способностью выполнить количество операций в единицу времени
10. 1CUnlimited 426 22.07.22 20:14 Сейчас в теме
(8)
Вячеслав, приятно видеть в обсуждении .
Я вроде эту фантазию не озвучивал, нагрузка с помощью горизонтального маштабирования это способ выявления мест где эти самые проблемы.
Ну для сравнения использовал рабочий кластер сходной архитектуры. Просто если эталона для сравнения нет или он сильно отличается как понять что виртуальная среда работает без явных Bottleneck? Наверняка встречались клиенты только облаком
15. Gilev.Vyacheslav 1923 23.07.22 10:02 Сейчас в теме
(10) про Амдала, если упростить, то до бесконечности увеличивать потоки вредит общему результату, собирание результатов становится слишком дорогим
искать узкие места в публичном облаке также нет смысла, потому что например ни кто вам не даст посмотреть как физически размещены планки памяти (извините но опять будет ссылка http://www.gilev.ru/ram/ ) , а если вы "всего не видите" как в примере, то в любом случае ваш максимум это констатировать наличие проблем, а не решить их
опять таки, в облаке клиенты-соседи мешают друг другу (вещь док смотреть с 12 минуты https://vk.com/video-132543994_456239017 )
9. Gilev.Vyacheslav 1923 22.07.22 16:21 Сейчас в теме
" я запускал увеличив количество параллельных процессов обработки с 40 до 60"
сразу две ошибки, во-первых есть Закон Амдала (да-да, учите матчасть), во-вторых чтобы нарезать потоки еще должны быть данные, которые в этих потоках будут могуть быть а) расчитаны параллельно б) время расчетов быть не сильно разным

даже перечисленных трех "ложных ориенторов" достаточно понять, что в по ним можно блуждать до бесконечности...

а можно было просто прочитать http://www.gilev.ru/virtual/#error
user1061229; +1 Ответить
11. 1CUnlimited 426 22.07.22 20:30 Сейчас в теме
(9) А в чем мой конфликт с законом Амдаля , если я гонял закрытие периода на одних и тех же данных, но в разных условиях? Причем я знаю объемы и как они нарезаются алгоритмом.И даже есть с чем сравнивать. Моя задача была выявить узкие места в данной мне виртуальной среде.
Я понимаю что те кто анализирует проблемы с производительностью клиентов, почти никогда не могут жонглировать нагрузкой клиентского приложения так как для этого нужно иметь среду нагрузочного тестирования, которой нет у 99%. Единственный выход тащить свой нагрузочный тест на 1С. А если нагрузку не создать как увидеть места с Botteneck в виртуальной среде? Задержки не вылезут а будут размазаны по статистике
P S Ссылки сайта gilev сам иногда цитирую - полезная копилка кейсов.
13. Gilev.Vyacheslav 1923 23.07.22 09:55 Сейчас в теме
(11) понятно "ссылки не воспринимаются"

тогда вытащу оттуда сюда:

Ошибки выбора облаков
Выбор публичного облака вместо приватного

Любой провайдер не будет делать настройки под Вас в публичном облаке. Вы не сможете настроить BIOS под себя или отдать полную производительность сервера под свою виртуальную машину. Более того, ни один провайдер не признается, что соседняя виртуалка другого клиента оказывает негативное влияние на вашу виртуалку.
Для возможности настройки виртуальной среды выбирайте приватное облако и выполняйте настойку среды под себя, не расчитывайте на оптимальность дефолтовых настроек.

Недооценка значимости физического оборудования

В больших ЦОДах в том числе благодаря таким таким технологиям как HA или DRS (перемещающим виртуалку по разным физическим хостам) некоторые провайдеры даже не знают на каком физическом сервере с какими характеристиками находится виртальная машина. Физические сервера с разными характеристиками например частот процессоров будут выдавать разную общесистемную скорость внутри виртуальной машины.
При аренде виртуальной машины очень важно зафиксировать в договоренности конкретный сервер (или сервера включая резервный в случае мер отказоустойчивости).

Выбор того что есть в списке у провайдера вместо того что вам надо

Многие провайдеры предлагают в аренду неликвидные остатки, которые некуда приткнуть. Если к примеру для 1С:Предприятия важна в том числе частота процессора, а провайдер предлагает ТОЛЬКО многоядерный но слабочастотный процессор, то лучше вообще отказаться от такого провайдера и выбирайте клиентоориентированного провайдера, который сможет предоставить указанное вами железо под хост. Тоже самое касается провайдеров, которые не предоставляют NVMe диски, а только внешние системы хранения с sas|sata ssd — лучше отказаться от такого провайдера в пользу более клиентоориентированного. Если вы испытываете затруднение с формированием требований к железу, то используйте проверенный подбор оборудования.

Использование клиента 1С удаленно

Учитывайте, что запуск веб-клиента 1С или тонкого клиента 1С через интернет может быть эффективен только если вы специально сами адаптировали и протестировали код к скорости вашего интернет-канала. Типовые конфигурациии 1С на больших объемах данных (сотни гигабайт) не приспособлены к этому. Для комфортной работы используйте терминальный сервер, размещенный в том же сегменте сети где и сервер 1С у провайдера.

Использование виртуальной памяти больше чем физической или больше виртуальных ядер процессоров чем физически доступных

Многим админам кажется хорошей идеей экономить на оперативной памяти, указывая объем ОЗУ в виртуалке больше чем реально существующей на сервере. Или аналогично указывают в виртуалке количество ядер больше чем есть у физического процессора. Или суммарное количество виртуальных ядер больше количества физических ядеро процессора.
Привязывайте 1 к 1 виртуальные ядра к физическим с максимальным приоритетом без квотирования. Указывайте оперативную памяти не превышая физическую.

Использование динамически перераспределяемых ресурсов.

Платформа 1С:Предприятия на текущий момент не умеет эффективно работать с динамически выделяемыми ресурсами и будет обладать низкой стабильностью в таком режиме.
Не используйте динамических ресурсов.

Использование ресурсов одновременно нескольких NUMA-узлов

Платформа 1С:Предприятия чувствительна к нарушениям распределения по NUMA-узлам. Если вы на 4х сокетном сервере например для 4х процессоров по 16 ядер нарежете виртуалку на 18 ядер, то из-за двух ядер упадет скорость. Тоже самое касается оперативки, которая привязана к сокетам. Если вы укажите памяти больше, чем на одном сокете, то это тоже скажется негативно.
Избегайте нарушения распределения по NUMA-узлам

Разнесение на две виртуалки роли сервера 1С и MS SQL Server 2019

Старайтесь не разносить просто так роли по виртуалкам. Взаимодействие по виртуальным сетевым картам медленней чем через оперативную память Shared Memory. Только если вам не хватает физических ресурсов и у вас две виртуалки на разных физических машинах разнесение ролей будет оправдано. В остальных случаях арендуйте один хост и одну виртуальную машину на нем совмещая роли.

-----


Маркетологи убедили людей, что те же самые сервера у других людей, где вы будете их арендовать с какого то перепугу лучше, чем нежили всё тоже самое но проделаете вы лично. Идёт такое массовое отупление. Бростье, это сложно, зачем Вам это, просто арендуйте и тогда все ваши проблемы магическим образом решаться.
Для отправки сообщения требуется регистрация/авторизация