Почему PostgreSQL может тормозить под Windows? #367646


#0 by cathode
В домашних условиях испытывал сырую производительность разных вариантов связок "клиент 1С - сервер 1С - сервер БД" (тест скачал с gilev.ru, платформа 1С 8.1.12.101). В их числе было три варианта с PostgreSQL: 1. PostgreSQL-8.1.5 под Windows (бинарная сборка от 1С) на десктопе (довольно быстрая машина, но не настоящий сервер), сервер 1С там же, клиент 1С на ноутбуке - получить более-менее реальные цифры. 2. PostgreSQL-8.1.5 и 8.2.4 под Windows (бинарные сборки от 1С, почему две версии - потом будет понятно) на ноутбуке, сервер 1С на десктопе, клиент 1С на десктопе - получить относительное падение производительности в зависимости от железа. 3. PostgreSQL-8.3.3 под CentOS (из исходников + патчи 1С) на ноутбуке, сервер 1С на десктопе, клиент 1С на десктопе - просто погонять новую версию СУБД под Linux. Что получилось в результате (средняя производительность по результатам 3-х прогонов теста): (референс) файловый вариант на десктопе: 34.72 балла. (референс) файловый вариант на нотбуке: 25,98 балла. (референс) MS SQL 2000 на десктопе: 23,75 балла. (референс) MS SQL 2000 на ноутбуке: 20,17 балла. 1 вариант: 11,60 балла. 2 вариант: 2,77 балла. 3 вариант: 15,36 балла. Что получается: PostgreSQL под Linux на ноутбуке (с винтом на 5400) уделывает PostgreSQL под Windows на существенно более мощном десктопе. Ладно, проехали... Испытание PostgreSQL под Windows на ноутбуке с медленным винтом - это просто провал... Антивирус выключал. Пробовал сменить версию PostgreSQL. Игрался с effective_cache_size, shared_buffers, work_mem и другими параметрами, нифига ничего не получается. Производительность не меняется в принципе. Предположил, что тормозом является файловая система, на которой расположен кластер БД. Запустил опять тест под Linux, но кластер разместил на примонтированной NTFS. Скорость вместо того, чтобы уменьшиться, только увеличилась (стало 16,71 балла). Может быть, кто-то сможет мне объяснить, почему такая разница в производительности на данном конкретном компьютере (ноутбук) одной и той же СУБД под разными ОС? Что я делаю неправильно?
#1 by ТелепатБот
#2 by asp
потому что постгре под линь заточен изначально. Априори на нем будет быстрее. Совет по увеличению скорости - поковырять настройки винды в плане оптимизации работы с файловой системой и, возможно, приоретизацией самого постгреса. ЗЫ у меня резалт схож, только цифры немного другие.
#3 by cathode
А можно поподробнее по поводу настроек винды по работе с ФС?
#4 by asp
навскидку не скажу, но гугль вроде работает :) там несколько разделов в реестре плюс некоторые параметры в свойствах системы и диска. Но ракеты ждать не стоит :)
#5 by cathode
Интересно, а есть ли у кого-нибудь реальные базы на postgres под windows или это фантастика?
#6 by Варвар
патаму что 7-ка не работает с постгри :))
#7 by Варвар
А вообще с постгри в реальной работе тормоза большие. Надо конфу затачивать, но влооооом :))
#8 by asp
есть реальная база под вин. УПП 20гб, но под 3-х человек всего (тестовая). Нагрузки особой нет. Да, у меня тест из под виндовый постгре дает 40 попугаев на w2k3. ну эт как сказать. Пробно перешел с MS SQL2005 на посгре под CentOS. Та же база УПП нормально работает с 50 чел в онлайн, причем комп с БД даже не сервер - обычная корка 6750 на 2x SATA дисках.
#9 by cathode
Виноват. Когда писал, не обратил внимания на категории. Здесь важно обоснование для клиентов преимуществ/недостатков каждого варианта. Есть такие, которые удавятся за лицензии к MS SQL. Есть такие, базы которых неудобно будет использовать в файловом режиме из-за блокировок, хотя базы небольшие. Поэтому было принято такое решение: погонять систему в разных комбинациях железа/софта дабы знать диапазоны производительности. В принципе, есть еще результаты под DB2. Но там вообще не понятно, что влияет на производительность, да и цифры подозрительные получаются. DB2 на Windows быстрее, чего не может быть, потому что не может быть никогда... Вот как раз и интересует, как получаются эти самые 40 попугаев.
#10 by cathode
(+9) PostgreSQL под винду собственной сборки или готовый?
#11 by asp
типовой 8.3.3 от 1С. Но на том же компе MS SQL выдает 65, так что мсскуль все равно быстрее.
#12 by cathode
MS SQL с 1С 8.1 быстрее в любом случае. Тут мысль следующая: а не можем ли мы получить прирост производительности за счет средств, сэкономленных на лицензиях к MS SQL и вложенных в железо? Если postgres будет быстро работать под Windows, не потребуется увеличение вложений в администрирование сервера, т.к. не требуется высокой квалификации админов-линуксоидов. Таким образом, совокупная стоимость владения останется ниже, чем при использовании MS SQL при аналогичной производительности. Правда, неучтенных факторов остается довольно много. Нестабильная работа типовых под postgres, например. Кто что думает?
#13 by Варвар
тут пробегали сцылки что постгри делал mssql по скорости. Но надо конфу саму затачивать + както постгри. Но как первое - я вообще не пытался разобраться. А второе - по рекомендациям 1С не много написано. Надо конкретней постгри изучать. ЗЫ: на работе 3 филиала работают на постгри. Самый крупный до 20 юзеров.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С