PostgreSQL은 하나의 OS에 적합합니까? Linux보다 Windows보다 낫습니까?


26

나는 Windows Server 2003에서 문제없이 빠른 PostgreSQL을 실행 해 왔으므로 내 자신의 질문에 대답하는 것이 좋습니다.

그러나 새 프로젝트를 시작하려고하며 안정성과 성능이 결정적인 대신 Linux 상자를 사용하는 것을 고려하고 있습니다. PostgreSQL은 주로 Linux 배포판에서 개발 된 것으로 보이므로 Linux를 사용하는 것이 더 좋을까요?


2
플랫폼을 선택하는 것은 개발자가 수행하더라도 sysadmin 기능입니다.
araqnid


pg 확장 프로그램이 Windows 용 패키지보다 먼저 Linux 용으로 패키지 된 것처럼 보입니다.
Neil McGuigan

답변:


45

PostgreSQL은 Windows보다 Linux에서 확실히 더 빨리 실행됩니다 (그리고 Windows 포트를 작성한 사람 중 한 사람이라고 말합니다.) Unix 스타일 아키텍처를 위해 설계되었으며 Windows에서 이와 동일한 아키텍처를 구현합니다. Windows가 제대로 설계하지 않은 많은 작업을 수행합니다. 잘 작동 하지만 잘 작동 하지 않습니다.

예를 들어 PostgreSQL은 스레딩이 아닌 연결 당 프로세스 모델을 사용합니다. Windows는 스레딩을 수행하도록 설계되었습니다. 예를 들어 응용 프로그램에서 많은 연결 및 연결 해제를 수행하는 경우 Windows에서 확실히 느리게 실행됩니다.

NTFS를 선호하지 않는 파일 시스템에 대한 몇 가지 가정도 있습니다.

실제로 고려해야 할 사항-Windows를 사용하는 경우 대부분의 바이러스 백신 제품 PostgreSQL과 함께 사용할 때 이러한 유형의 워크로드 (예 : 동일한 파일에서 읽고 쓰는 1000 개의 서로 다른 프로세스)에 사용되지 않기 때문에 버그가 발생합니다. 다른 핸들을 통해). 즉, 가능한 경우 항상 모든 바이러스 백신을 제거하는 것이 좋습니다 (비활성화하거나 PostgreSQL 프로세스 / 파일을 제외하는 것만으로는 충분하지 않음). 그리고 이것은 성능상의 이유 일뿐만 아니라로드시 안정성입니다.


감사! 내 경우에는 Windows를 고수하는 것이 좋을 것입니다.하지만 연결이 거의없고 바이러스 백신이 없습니다 (나도 싫어합니다). 성능도 훌륭했습니다. Windows 캐싱 및 IO 속도 (최신 드라이버를 사용하는 경우)가 도움이 될 것 같습니다.

실제 처리량 벤치 마크를 보는 것이 좋을 것입니다 ...

1
BTW, 연결 풀 사용은 프로세스 생성 / 파괴 비용이 증가하기 때문에 Windows에서 특히 유용합니다.
Craig Ringer

이전 8.1 및 8.2 일 동안 Windows와 Linux의 PostgreSQL을 나란히 비교했습니다. 우리의로드 리눅스는 약 50 % 빨랐습니다. 클라이언트가 별도의 상자에 있고 동일한 Java 코드를 사용하여 열린 연결에서 원시 네트워크 처리량을 테스트하기 때문에 양쪽이 Linux보다 양쪽이 Linux 일 때보 다 30 % 더 빠르기 때문에 네트워킹의 양이 얼마인지는 확실하지 않습니다. Windows. 흥미롭게도, 한쪽이 Linux이고 한쪽이 Windows 인 경우 양쪽 Linux보다 15 % 느 렸습니다.
kgrittn

2

Ken은 알 수 있듯이 Postgres는 OS간에 차이를 만들지 않으며 Linux와 마찬가지로 Windows에서도 안정적 / 불안정합니다.

이 질문에 대한 유일한 대답은 시도해 보는 것입니다.

동일한 스펙으로 Linux 서버와 Windows 서버를 설정하고 두 시스템에서 동일한 양의 데이터를 사용하고 테스트를 실행하십시오.

추신 : 이것은 serverfault에서 더 잘 물어볼 수 있기 때문에 투표에 가깝습니다.


ServerFault에서 더 낫습니까? 시스템 관리자가 아닌 개발자의 소프트웨어 문제로 분류했을 것입니다.

1
이것은 소프트웨어 문제가 아니며 개발자가 자신의 SQL에 대해 걱정할 필요가 없습니다. PostgreSQL은 Linux에서 Windows와 동일한 SQL을 사용합니다.
Frank Heikens

2

동일한 하드웨어의 경우 Windows가 아닌 Linux에서 더 나은 성능을 얻을 수 있다는 것을 이해합니다. 또한 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의 기능이나 그와 유사한 것을 손상시키지 않습니다. 따라서 Linux가 필요한 Postgres는 없습니다.

일반적으로 Linux에 대해 묻는 것이 좋습니다. 일반적인 서버 플랫폼으로서의 Windows 대.

의견 : 그러나 돈을 위해 서버는 항상 Linux를 실행합니다. Windows에 미션 크리티컬 서버 소프트웨어를 설치하는 것을 꿈꾸지 않을 것입니다. 그냥 내 2 센트. 의견의 끝.


stability and **performance** are crucial
Vladislav Rastrusny

다른 답변을 읽고 왜이 추측에 대한 추측이 틀린지 확인하십시오. 답변 삭제를 고려하십시오.
Sam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.