Быстрое внедрение ERP Комплексные услуги
от 1С:Центр ERP!
Управление доставкой Для торговых и курьерских компаний!
1C:ЭДО Узнайте о всех преимуществах электронного документооборота!
Переход на «1С:ЗУП ред. 3» Фирма «1С» прекращает поддержку «1С:ЗУП 2.5»!
Аренда сервера 1С
в облаке
Работайте в 1С удаленно с экономией до 70%!

Затраты на СУБД MS SQL и PostgreSQL:

В связи со стремительной девальвацией рубля, покупать СУБД Microsoft SQL стало очень дорого, а для некоторых компаний стоимость этих лицензий стала совсем «неподъемной». В данный момент чтобы развернуть сервер Microsoft SQL для 20 пользователей необходимо купить такие лицензии:

  • 1 лицензия на операционную систему (WinSvrStd 2012R2 )

  • 20 лицензий на подключение к серверу (WinSvrCAL 2012)

  • 1 лицензия на сервер СУБД (SQLSvrStd 2014)

  • 20 лицензий на подключение к СУБД (SQLCAL 2014)

Ориентировочная стоимость такого пакета 275 000 руб., что для компании, в которой всего 20 человек достаточно дорого. Данных затрат можно избежать, если создать сервер СУБД на свободном ПО. Поставить операционную систему семейства Linux и бесплатную версию СУБД – PostgreSQL. На таком сервере без проблем можно развернуть сервер 1С предприятия, а также другие роли, которые потенциально могут быть совмещены c ролью баз данных, например WebServer или файловое хранилище.

Рекомендуемые решения


Внедрение свободного ПО


Оптимизация 1С

Так как использовать свободное ПО очень привлекательно с финансовой точки зрения, было решено проверить, на сколько это хорошо с точки зрения производительности.

Тестирование производительности 1С:

Для выполнения теста было взято оборудование и программное обеспечение, указанное в таблице 1. Физический сервер для обоих стендов использовался один и тот же, менялось только ПО. Настройки обоих СУБД использовались по-умолчанию и в статье мы их подробно не расписываем. Дистрибутив PostGreSQL с соответсвующими патчами были взят с сайта компании 1С, версия - последняя из доступных на данном сайте.

Таблица 1. Тестовые стенды

Характеристики

Стенд №1

Стенд №2

1

Операционная система

CentOS 6

Windows Server 2012R2

2

СУБД

PostgreSQL 9.3.3

Microsoft SQL Server 2012R2

3

Центральный процессор

Intel Core i5 3330 (3.0 Ghz)

4

Оперативная память

24 GB DDD3 1333 Ghz

5

Жесткий диск

SSD 240 Gb Intel


Для начала был выполнен «тест Гилева», который показал незначительное преимущество стенда номер 2, против стенда со свободным ПО.

Результаты смотрим ниже, разница в значениях получилась всего 3%.

Для информации: «тест Гилева» - популярный синтетический тест 1С, который выполняет ряд стандартных операций – чем быстрее тест выполняется, тем выше оценка. Оценка выполняется в условных единицах. Полученную оценку можно сравнить с прилагаемой к тесту шкале, которая покажет на сколько высока производительность текущей системы.

тест субд экономия на 1с


Рисунок 1. Результат теста Гилева. Стенд №2 СУБД MS SQL

как сэкономить на 1с с помощью бесплатной субд

Рисунок 2. Результат теста Гилева. Стенд №1 СУБД PostgreSQL


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

Для этого взяли реальную рабочую базу одной из самых тяжелых конфигураций 1С, характеристики базы указаны в таблице №2.

Таблица 2. Характеристики тестовой базы

Конфигурация

Редакция

Объем базы

Управление производственным предприятием

1.3.57.1

16,3 Гб


Замерялось время выполнения 7-ми стандартных операций с объектами в базе. Каждый тест выполнялся 10 раз и выводилось среднее значение. Замеры проводились с использованием толстого клиента через локальную сеть. Клиент устанавливался на рабочую станцию под управлением Windows 7. Тесты также пробовали запускать с клиента установленного на Ubuntu Linux, но он работал не стабильно и все тесты решено было выполнять только с клиента на Windows.

Таблица 3. Результаты APDEX

Ключевая операция

Тип

Время выполнения в секундах

Отклонение

Стенд №2 (MSSQL)

Стенд №1

(Свободное ПО)

Открытие документа

Заказ клиента

0,348

0,617

77%

Проведение документов

Заказ клиента

0,399

0,568

42%

Проведение нового документа

Документ объект: Заказ клиента

0,185

0,205

11%

Сформирован отчет

Анализ доходов расходов

0,733

1,022

39%

Сформирован отчет

Ведомость по партиям товаров

4,104

4,912

20%

Сформирован отчет

Ведомость по товарам на складах

0,316

0,508

61%

Сформирован отчет

Расчеты с клиентами

0,200

0,334

67%


В среднем наша реальная база при использовании MSSQL работала на 45% быстрее, чем на стенде со свободным ПО. На некоторых тестах отрыв был очень значителен, а на таких как, например проведение нового документа составлял всего 11%.

Вывод:

  1. 1C на СУБД MSSQL работает примерно в 1,5 быстрее, чем на PostgreSQL. Соответственно, если есть возможность купить или арендовать лицензии MSSQL, лучше использовать его для более высокой производительности. Для небольших и ненагруженных баз можно попробовать использовать версию MSSQL Express. Тестов с ней мы не проводили, поэтому она может показать себя по производительности как лучше так и хуже PostgreSQL. Данная редакция ограничена использованием 1 процессора и 1 Гб ОЗУ, также не работает с базами более 10Гб. Если база дорастет до такого размера, то она остановиться и перестанет работать полностью, но как показывает практика, если в базе работает 15-20 пользователей, то комфортно можно работать при размере базы 4-5ГБ, далее база начинает сильно тормозить.

  2. Оценка «тестом Гилева» показывает крайне незначительное превосходство MSSQL, что позволяет сделать предположение о том, что другие базы 1С могут работать на PostgreSQL так же хорошо, как и на MSSQL, а возможно и быстрее. Перед выбором СУБД рекомендуем провести тесты на своей конкретной базе и сравнить полученные результаты.

  3. Использование СУБД PostgreSQL для развертывания на нем 1С является приемлемым решением в условиях ограниченного бюджета. База будет работать не так быстро как на MSSQL, но зато не нужно платить за лицензии.


Ещё одним способом сэкономить при использовании 1С является аренда облачного сервера.



EFSOL

Системная интеграция. Консалтинг

Корпоративное облако

обязательные поля
* Антиробот:
Введите ответ

Корпоративное облако

Все поля формы выделенные значком * обязательны к заполнению
* Антиробот:
Введите ответ
Поделиться:
  • Можете поделиться настройками PostgreSQL?
  • Настройки PostgreSQL из коробки от самого 1C годятся лишь для маленькой базы и одним пользователем, работающим с ней.
  • как можно советовать ставить SQL Express не проведя тесты с ней????
  • Конфиг-то постгреса гиде? Почему взята не последняя версия?
  • Постгрес — он разный бывает. Какой был в этом случае? Какие параметры? Что это вообще было, где подробности? shared_buffers хотя бы выставили в соответствии с имеющимися ресурсами?
  • Версия 9.3.3 не знаю , но у нас обратный результат на 9.4 ,номенклатура большая , сама база не очень 20 гб, на MS SQL2005 1с Бухгалтерия за ночь не могла например закрыть месяц, на PG 4 часа
  • 1) Версия PostgreSQL взята последняя, которая была на момент тестирования на сайте 1С . 2) Настройки использовались стандартные без каких либо изменений.
  • А что насчёт сравнения многопользовательского режима работы? Блокировочный механизм работает одинаково?
  • Согласен, тесты с SQL Express не проводились и возможно эта версия MSSQL будет работать медленнее чем PG. Вывод скорректировали.
  • Согласен что для работы 1С СУБД, как и сервер в целом нужно настраивать дополнительно. В данном тесте сравнивали СУБД с настройками по дефолту обоих. В продакшн среде применяется ряд дополнительных настроек начиная от аппаратных (настройки БИОС, видеоадаптера, сетевой карты) и заканчивая настройками самой СУБД такми как отключение паралелелизма и т.д.
  • К сожалению, настроек предоставить не можем в данный момент, поскольку тестирование было около года назад и данного стенда уже нет.
  • Интересный результат.А можете сказать на каких конкретно операциях было наиболее явно видно что PG работает быстрее чем на MSSQL? Во время наших тестов разрыв между результатами PG и MSSQL в разных тестах сильно отличался, но PG всегда отставал.
  • Как я уже сказал, проводили только тесты на производительность (Тест Гилева и APDEX). Как будет происходить работа в многопользовательском режиме не сравнивали. Согласен, что интересно было бы это проверить. при чем на разном количестве пользователей (5,10,30,50,100). Думаю, проведем такой тест в следующий раз.
  • Замечательно. Напишите об этом в статье, чтобы не вводить людей в заблуждение.
  • Так напишите это в выводе. А то получается необъективно: Вы ЗНАЕТЕ, что в продакшне нужно конфигурировать, но заранее советуете покупать MS SQL на основе тестов дефолтного конфига. Специалисты сказали, что Postgres в составе 1С сконфигурирован так, что по умолчанию используются блокировки на уровне таблицы, тогда как для MS SQL - блокировки на уровне записи. Если это действительно так, то тест вообще бессмысленен.
  • Мы только начинаем изучать возможность перехода, есть регламентная процедура закрытие месяца на уровне в Бухгалтерии ,которая нас очень волнует.По операционно в каком месте именно на проведении или запросах не могу сказать пока . Но MSSQL вис на запросах по 20 счету(номенклатура большая)... Поэтому предполагаю, что на больших данных видимо PG оптимальнее...Очень важно это именно 9.4 и 8.3, пртив 8.3 и mssql 2005 более ранние версии pg и 1с(старые) пробовали раньше тестить так же результат был не в пользу PG...
  • Ваш опыт говорит о том, что PG в отдельных случаях в "боевых" условиях показывает большую производительность чем MSSQL.По-этому перед выбором СУБД нужно протестировать их обе, а далее уже решать - использовать бесплатный софт или же потратится на SQL. Мы в тестах показали, что скажем замер производительности тестом Гилева практически не отличается, а вот APDEX показал очень большую разницу в отдельных тестах. Соответственно могут быть случаи когда PG покажет себя лучше. В Вашем случаи было бы интересно понять дело в версии PG или просто в данной конкретной базе.
  • Жаль , что этих выводов нет в статье, однобоко получилось. 3ий пункт нужно заменить на вашу последнюю фразу и будет более справедливо, хотя и первый утверждает разницу в 1,5 раза...
  • Дефолтная конфигурация PostgreSQL расчитана так чтобы PG смог запуститься на самом древнем утюге, отсюда и низкие результаты.
  • Бесспорно, грамотная настройка PG увеличивает производительность, впрочем это применимо точно также и к MSSQL. В нашем тесте обе СУБД были настроены по дефолту.
  • Алексей, спасибо за Ваш комментарий, информация добавлена во 2-й вывод.
  • Добавили информацию в абзац над таблицей 1.
  • Дистрибутив PostGreSQL с соответсвующими патчами были взят с сайта компании 1С, версия - последняя из доступных на данном сайте.
  • Информацию о СУБД добавили в абзац над таблицей 1. Касательно блокировок. Происходит блокировка на уровне таблиц или записей зависит от настроек конфигурации 1С а не СУБД. Если режим блокировок транзакций установлен автоматический - то действительно PG и Oracle DB блокирует информацию на уровне таблиц а MSSQL и DB2 на уровне записей. Если же режим управляемый - то и PG и MSSQL блокируют информацию на уровне записей. Вопрос блокировок актуален для работы в реальных условиях, когда несколько пользователей генерируют запросы на запись к одной и той же таблице. Оба теста, которые мы выполнили не создают такой ситуации, по-этому в данном случаи не важно на каком уровне проходит блокировка данных
  • Спорное утверждение в данном контексте. Изменение дефолтных настроек pgsql даже в однопользовательском режиме работы, приведет к значительному увеличению производительности. Для MS SQL получить значительное увеличение производительности в данной ситуации не получится.
  • Сложно сказать насколько станет лучше работать PG если его настроить. Все таки взят не простой PG, а дистрибутив с сайта 1С с соответствующими патчами для оптимизации работы с 1С. По возможности сделаем сравнение производительности полностью настроенного MS SQL и полностью настроенного PG, и посмотрим насколько реально настройка влияет на производительность обеих СУБД.
  • Еще лучшей идеей было бы взять Postgres тут http://www.postgrespro.ru/products/download Дефолтная настройка Postgres подразумевает минимум использования памяти. Дефолтная настройка MS SQL подразумевает, что будет использована вся доступная память. Именно по этой причине ваш тест совершенно бесполезен, на мой взгляд. Независимо от настроек, MS SQL будет все равно быстрее в большинстве ситуаций, однако разница не будет столь большой, как в приведенном тесте. Это связано в первую очередь с позицией разработчиков 1С.
  • "Бесспорно, грамотная настройка PG увеличивает производительность, впрочем это применимо точно также и к MSSQL. " по дефолту в PG всего 128 мегабайт разделенной памяти, в этот параметр вообще маленький. не удивительно что PG дал такой плохой результат
  • По поводу настроек Postgre. Да, скорее всего при выделении большего количества памяти он показал бы результат повыше, но мы использовали конфиги по умолчанию как на MSSQL так и на PostGre. Если будем проводить еще раз похожее тестирование - будем выполнять оптимизацию настроек обоих СУБД.

У вас конкретная задача? Свяжитесь с нами прямо сейчас!


Обратный звонок RedConnect