PostgreSQL có phù hợp với một HĐH không? Nó có tốt hơn trên Linux so với Windows không?


26

Tôi đã chạy PostgreSQL trên Windows Server 2003 mà không gặp trở ngại nào và nó rất nhanh, vì vậy để trả lời câu hỏi của riêng tôi thì có vẻ ổn.

Tuy nhiên, tôi sắp khởi động một dự án mới và đang xem xét sử dụng hộp Linux thay vì tính ổn định và hiệu suất là rất quan trọng. Vì PostgreSQL dường như được phát triển trên các bản phân phối Linux, có lẽ sẽ tốt hơn nếu gắn bó với Linux?


2
chọn một nền tảng là một chức năng sysadmin, ngay cả khi nó được thực hiện bởi nhà phát triển.
araqnid


Dường như với tôi như phần mở rộng pg được đóng gói cho linux trước khi chúng dành cho windows.
Neil McGuigan

Câu trả lời:


45

PostgreSQL chắc chắn sẽ chạy nhanh hơn trên Linux so với Windows (và tôi nói đây là một trong những người đã viết cổng windows của nó ..) Nó được thiết kế cho kiến ​​trúc kiểu Unix và thực hiện cùng kiến ​​trúc này trên Windows, có nghĩa là nó thực hiện một số điều mà Windows không được thiết kế để làm tốt. Nó hoạt động tốt, nhưng nó không hoạt động tốt.

Ví dụ, PostgreSQL sử dụng mô hình quy trình cho mỗi kết nối, không phân luồng. Windows được thiết kế để thực hiện phân luồng. Nếu ứng dụng của bạn có nhiều kết nối và ngắt kết nối, ví dụ, nó chắc chắn sẽ chạy chậm hơn đáng kể trên Windows.

Cũng có một số giả định xung quanh hệ thống tập tin không chính xác ủng hộ NTFS.

Một điều bạn thực sự cần phải suy nghĩ - nếu bạn ở trên Windows, hầu hết các sản phẩm chống vi-rút sẽ bị lỗi khi sử dụng với PostgreQuery, vì chúng không được sử dụng cho loại khối lượng công việc này (chẳng hạn như 1000 quy trình khác nhau đọc và ghi vào cùng một tệp thông qua các tay cầm khác nhau). Điều đó có nghĩa là khuyến nghị mạnh mẽ là luôn luôn gỡ cài đặt bất kỳ phần mềm chống vi-rút nào nếu có thể (chỉ cần vô hiệu hóa hoặc loại trừ các quy trình / tệp PostgreSQL thường là không đủ). Và điều này không chỉ vì lý do hiệu suất, mà còn ổn định dưới tải.


Cảm ơn! Rất vui khi có một câu trả lời có thẩm quyền, mặc dù trong trường hợp của tôi dính vào Windows nghe có vẻ ổn: Tôi rất ít kết nối và không có vi-rút (tôi cũng không thích chúng). Hiệu suất cũng rất tuyệt: Tôi nghĩ bộ nhớ đệm Windows và tốc độ IO (khi bạn có trình điều khiển cập nhật) giúp tôi ở đó ..

Thật tuyệt khi thấy một số điểm chuẩn thông lượng trong thế giới thực ...

1
BTW, việc sử dụng nhóm kết nối sẽ đặc biệt hữu ích trên Windows do chi phí tạo / hủy quy trình lớn hơn.
Craig Ringer

Tôi đã thực hiện các so sánh song song của PostgreSQL trên Windows so với Linux trong 8.1 và 8.2 ngày cũ. Đối với tải của chúng tôi, Linux đã nhanh hơn khoảng 50%. Tuy nhiên, không rõ có bao nhiêu trong số đó chỉ là mạng, bởi vì các máy khách nằm trên một hộp riêng biệt và sử dụng cùng một mã Java để kiểm tra thông lượng mạng thô trên một kết nối mở chạy nhanh hơn 30% khi cả hai bên là Linux so với cả hai bên Các cửa sổ. Thật thú vị, khi một bên là Linux và một bên là Windows, nó chậm hơn 15% so với cả hai bên Linux.
kgrittn

2

Điều này thật khó trả lời: Như Ken đã lưu ý, Postgres không tạo ra bất kỳ sự khác biệt nào giữa HĐH và nó ổn định / không ổn định trong Windows như trên Linux.

Câu trả lời thực sự duy nhất cho câu hỏi này là: hãy thử nó.

Thiết lập máy chủ Linux và máy chủ Windows có cùng thông số kỹ thuật, sử dụng cùng một lượng dữ liệu trên cả hai máy và chạy thử nghiệm của bạn.

PS: Điều này có số phiếu gần vì có thể được hỏi tốt hơn tại serverfault


Có tốt hơn trên ServerFault không? Tôi đã phân loại nó như là một vấn đề phần mềm cho các nhà phát triển chứ không phải là vấn đề đối với quản trị viên hệ thống.

1
Đây không phải là một vấn đề phần mềm, không có nhà phát triển nào phải lo lắng về SQL của mình: PostgreQuery sử dụng SQL samen trên Linux như trên Windows.
Frank Heikens

2

Theo hiểu biết của tôi, với cùng một phần cứng, bạn sẽ có hiệu năng tốt hơn trên Linux so với Windows. Ngoài ra, trong khi Postgres không chạy trên windows, nó đã chạy trên * nix lâu hơn nhiều. YMMV tất nhiên tùy thuộc vào tình huống của bạn.

Một tài liệu tham khảo thực sự tốt về hiệu suất của Postgres là "Hiệu suất cao PostgreSQL 9.0" ( https://www.packtpub.com/postgresql-9-0-high-performance/book ). Tiêu đề là một chút sai lầm vì nó bao gồm nhiều hơn chỉ là phiên bản 9.0.


-1

AFAIK Postgres không phân biệt đối xử, họ không làm tê liệt các tính năng trên Windows hoặc bất cứ thứ gì tương tự. Vì vậy, không có gì về Postgres yêu cầu Linux.

Bạn có thể tốt hơn nên hỏi chung về Linux. so với Windows là một nền tảng máy chủ chung.

HOẠT ĐỘNG: Nhưng với tiền của tôi, một máy chủ luôn chạy Linux. Sẽ không bao giờ mơ ước đưa phần mềm máy chủ quan trọng vào Windows. Chỉ 2 xu của tôi. Kết thúc ý kiến.


stability and **performance** are crucial
Vladislav Rastrusny

Đọc các câu trả lời khác để xem tại sao suy đoán này tại một câu trả lời không chính xác. Hãy xem xét xóa câu trả lời.
Sam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.