Эта тема была поднята в 2011 году, и все пришли к общему мнению, что существуют конструктивные соображения, которые дадут PostgreSQL преимущество в Linux. Сейчас 2015 год, что-то изменилось? Если есть вещи, которые замедляют работу PostgreSQL в Windows, может ли кто-нибудь резюмировать эти моменты?
Если учесть моменты, которые я изложил в этом ответе, я бы сказал, что PostgreSQL по-прежнему достаточно хорошо работает с Windows. Но по сравнению с 2011 годом особой разницы не вижу.
По моему опыту это в основном о заботе о том, чтобы ни один процесс Windows не мешал так что эта цитата из книги PostgreSQL 9.0 с высокой производительностью (2010 г.) по-прежнему в основном имеет место
Непредсказуемая производительность и Windows
Серьезные администраторы баз данных имеют сильную историческую склонность к использованию UNIX-подобных систем для своих серверов. В первых примерах здесь используется Windows, потому что построенные графики легче читать и, следовательно, лучше для ознакомления с концепциями этого раздела. Но это напомнило мне, почему Windows не является предпочтительной операционной системой для размещения баз данных для стольких людей.
Для получения полезных результатов тестов система должна быть неподвижной: в ней не должно быть других запущенных программ, которые могут испортить результаты того, что предполагается измерить. При загрузке в Windows Vista для получения этих результатов я обнаружил, что процесс TrustedInstaller использует значительный объем ресурсов ЦП и диска. Оказалось, что Центр обновления Windows решил, что пора установить следующий крупный пакет обновления для Vista; он загружал части в фоновом режиме и подталкивал меня к обновлению при каждой возможности. Прошло два часа, прежде чем я завершил все фоновые операции, которые заставляли меня заботиться, и получил простаивающую систему, способную выполнять эти тесты.
Вы можете подумать, что выбор версии Windows 2012 Server Core может немного исправить это. Статья MSDN Почему полезно ядро сервера? (о Windows 2008) говорит, однако:
Прежде чем мы рассмотрим преимущества Server Core, давайте развенчаем заблуждение: повышение производительности не является одним из преимуществ использования Server Core вместо полной установки Windows Server 2008.
В остальном обработка памяти в Windows также отличается и иногда противоречит здравому смыслу. Это тоже то же самое, что и в 2011 году. shared_buffers
например (из Документация PostgreSQL - 18.4. Потребление ресурсов):
в Windows большие значения shared_buffers не так эффективны. Вы можете добиться лучших результатов, если установите относительно низкий уровень и вместо этого больше используйте кэш операционной системы. Полезный диапазон для shared_buffers в системах Windows обычно составляет от 64 МБ до 512 МБ.