Чи підходить PostgreSQL для однієї ОС? Це краще в Linux, ніж Windows?


26

Я запускаю PostgreSQL на Windows Server 2003 без перешкод і швидко, тому відповісти на моє власне питання здається чудово.

Однак я збираюся запустити новий проект, і замість цього я розглядаю можливість використання вікна Linux, тому що стабільність та продуктивність є вирішальними. Оскільки, здається, PostgreSQL розробляється в основному для дистрибутивів Linux, можливо, було б краще дотримуватися Linux?


2
вибір платформи - це функція sysadmin, навіть якщо її виконує розробник.
araqnid


Мені здається, що розширення pg пакуються для Linux, перш ніж вони для Windows.
Ніл МакГуйган

Відповіді:


46

PostgreSQL, безумовно, працює швидше в Linux, ніж у Windows (і я кажу це як один із хлопців, які написали порт Windows для цього ..) Він розроблений для архітектури стилю Unix і реалізує цю саму архітектуру в Windows, що означає це робить ряд речей, які Windows не розроблена для того, щоб робити добре. Це працює відмінно, але він не виконує , а також.

Наприклад, PostgreSQL використовує модель процесу за з'єднанням, а не нанизування різьби. Windows призначена для нарізування різьби. Якщо ваша програма робить багато підключень і відключається, вона, безумовно, працюватиме значно повільніше, наприклад, у Windows.

Існує також деякі припущення щодо файлової системи, які точно не сприяють NTFS.

Єдине, над чим вам дійсно потрібно задуматися - якщо ви працюєте в Windows, більшість антивірусних програм буде вимкнено під час використання з PostgreSQL, оскільки вони не звикли до такого типу робочого навантаження (наприклад, 1000 різних процесів читання та запису в один і той же файл через різні ручки). Це означає, що настійно рекомендується завжди видаляти будь-який антивірус, якщо це можливо (просто відключити його або виключити процеси / файли PostgreSQL часто недостатньо). І це не лише з міркувань продуктивності, а й стабільності під навантаженням.


Спасибі! Приємно мати авторську відповідь, хоча в моєму випадку прилипання до Windows звучить нормально: у мене дуже мало підключень і немає антивірусу (я їх теж не люблю). Продуктивність також була чудовою: я думаю, кешування Windows та швидкість вводу-виводу (коли у вас є актуальні драйвери) мені там допомагають ..

Було б непогано побачити кілька реальних орієнтирів пропускної здатності ...

1
BTW, використання пулу підключень буде особливо корисним для Windows через більші витрати на створення / знищення процесу.
Крейг Рінгер

Я робив побічні порівняння PostgreSQL для Windows та Linux за старих 8,1 та 8,2 днів. Для нашого завантаження Linux був приблизно на 50% швидшим. Незрозуміло, наскільки це було лише мереж, оскільки клієнти були в окремому вікні і використовували той же код Java для тестування сирої мережевої пропускної спроможності на відкритому з’єднанні, на 30% швидше, коли обидві сторони були Linux, ніж коли обидві сторони були Windows. Цікаво, що коли одна сторона була Linux, а друга - Windows, вона була на 15% повільніше, ніж обидві сторони Linux.
kgrittn

2

На це важко відповісти: Як зауважив Кен, Postgres не робить жодних відмінностей між ОС, і він є таким же стабільним / нестабільним в Windows, як і в Linux.

Єдина реальна відповідь на це питання: спробуйте.

Налаштуйте сервер Linux і сервер Windows з тими самими специфікаціями, використовуйте однаковий обсяг даних на обох машинах і запустіть свої тести.

PS: Цей голос є близьким, тому що його можна краще запитати на сервері за замовчуванням


Чи краще на ServerFault? Я б назвав це проблемою програмного забезпечення для розробників, а не проблемою для системного адміністратора.

1
Це не проблема програмного забезпечення, жоден розробник ніколи не турбується про свій SQL: PostgreSQL використовує Samen SQL в Linux, як це робиться в Windows.
Френк Хайкенс

2

Наскільки я розумію, що для одного і того ж обладнання ви отримаєте кращі показники роботи в Linux на відміну від Windows. Крім того, поки Postgres працює на Windows, він працює на * nix набагато довше і довше. YMMV, звичайно, залежно від вашої ситуації.

Дійсно хороший посилання на продуктивність Postgres - це "PostgreSQL 9.0 High Performance" ( https://www.packtpub.com/postgresql-9-0-high-performance/book ). Заголовок трохи помилковий, оскільки охоплює більше, ніж просто версію 9.0.


-1

AFAIK Postgres не дискримінує, вони не калічать функції у Windows чи щось подібне. Тож нічого про Postgres не вимагає Linux.

Вам може бути краще запитати про Linux. проти Windows як загальної серверної платформи.

ДУМКА: Але на мої гроші сервер завжди працює під управлінням Linux. Ніколи б не мріяв розміщувати критичне для місії серверне програмне забезпечення в Windows. Всього мої 2 копійки. Кінець думки.


stability and **performance** are crucial
Владислав Раструсний

Прочитайте інші відповіді, щоб побачити, чому ця здогадка у відповіді невірна. Будь ласка, розгляньте питання про видалення відповіді.
Сем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.