«атраты на —”Ѕƒ 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. ‘изический сервер дл€ обоих стендов использовалс€ один и тот же, мен€лось только ѕќ. Ќастройки обоих —”Ѕƒ использовались по-умолчанию и в статье мы их подробно не расписываем. ƒистрибутив 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, но зато не нужно платить за лицензии.

¬ конце 2017 года мы провели новые тесты и опубликовали их в очередной статье.

≈щЄ одним способом сэкономить при использовании 1— €вл€етс€ решение - вз€ть сервер 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. ≈сли будем проводить еще раз похожее тестирование - будем выполн€ть оптимизацию настроек обоих —”Ѕƒ.

” вас конкретна€ задача? —в€житесь с нами пр€мо сейчас!

услови€ми