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.