PostgreSQL เหมาะสมกับระบบปฏิบัติการเดียวหรือไม่ Linux ดีกว่า Windows หรือเปล่า


26

ฉันใช้งาน PostgreSQL บน Windows Server 2003 โดยไม่ติดขัดและรวดเร็วดังนั้นเพื่อตอบคำถามของตัวเองดูเหมือนว่าใช้ได้

อย่างไรก็ตามฉันกำลังจะเปิดตัวโครงการใหม่และกำลังพิจารณาใช้กล่อง Linux แทนเนื่องจากความเสถียรและประสิทธิภาพมีความสำคัญ เนื่องจาก PostgreSQL ดูเหมือนว่าจะพัฒนาบน Linux ลีนุกซ์เป็นส่วนใหญ่, บางทีมันจะดีกว่าถ้าใช้กับ Linux?


2
การเลือกแพลตฟอร์มเป็นฟังก์ชั่นดูแลระบบแม้ว่าจะดำเนินการโดยนักพัฒนาก็ตาม
araqnid

ที่เกี่ยวข้อง: serverfault.com/questions/99068/…
ChristopheD

ดูเหมือนว่าฉันชอบส่วนขยาย pg ได้รับการบรรจุสำหรับ linux ก่อนที่จะใช้กับ windows
Neil McGuigan

คำตอบ:


45

PostgreSQL จะทำงานได้เร็วกว่าบน Linux มากกว่าใน Windows (และฉันบอกว่านี่เป็นหนึ่งในผู้เขียนพอร์ต windows ของมัน .. ) มันถูกออกแบบมาสำหรับสถาปัตยกรรมสไตล์ Unix และใช้สถาปัตยกรรมเดียวกันนี้บน Windows ซึ่งหมายความว่า ทำสิ่งต่าง ๆ ที่ Windows ไม่ได้ออกแบบมาให้ดี มันใช้งานได้ดี แต่ก็ทำงานได้ไม่ดี

ตัวอย่างเช่น PostgreSQL ใช้โมเดลกระบวนการต่อการเชื่อมต่อไม่ใช่เธรด Windows ถูกออกแบบมาเพื่อทำเกลียว หากแอปพลิเคชันของคุณเชื่อมต่อและยกเลิกการเชื่อมต่อเป็นจำนวนมากแอปพลิเคชันจะทำงานช้าลงอย่างมากใน Windows เช่น

นอกจากนี้ยังมีข้อสมมติฐานบางอย่างเกี่ยวกับระบบไฟล์ซึ่งไม่สนับสนุน NTFS อย่างแน่นอน

สิ่งหนึ่งที่คุณต้องพิจารณาจริงๆ - ถ้าคุณใช้ Windows ผลิตภัณฑ์ป้องกันไวรัสส่วนใหญ่จะเกิดข้อผิดพลาดเมื่อใช้กับ PostgreSQL เพราะพวกเขาไม่คุ้นเคยกับภาระงานประเภทนี้ (เช่น 1000 กระบวนการที่แตกต่างกันในการอ่านและเขียนไปยังไฟล์เดียวกัน ผ่านการจัดการที่แตกต่างกัน) นั่นหมายความว่าคำแนะนำที่ดีคือการถอนการติดตั้งโปรแกรมป้องกันไวรัสใด ๆ เสมอถ้าเป็นไปได้ (เพียงแค่ปิดการใช้งานหรือยกเว้นกระบวนการ / ไฟล์ของ PostgreSQL นั้นไม่เพียงพอ) และนี่ไม่ได้เป็นเพียงเหตุผลด้านประสิทธิภาพ แต่ยังมีความเสถียรภายใต้ภาระ


ขอบคุณ! ยินดีที่ได้คำตอบที่มีสิทธิ์แม้ว่าในกรณีของฉันที่ติดกับ Windows ฟังดูดี: ฉันเชื่อมต่อน้อยมากและไม่มีการป้องกันไวรัส (ฉันไม่ชอบพวกเขาด้วย) ประสิทธิภาพการทำงานก็ยอดเยี่ยมเช่นกันฉันคิดว่าการแคช Windows และความเร็ว IO (เมื่อคุณมีไดรเวอร์ล่าสุด) ช่วยฉันอยู่ที่นั่น ..

มันจะเป็นการดีถ้าได้เห็นการวัดอัตราการผ่านในโลกแห่งความเป็นจริง ...

1
BTW การใช้พูลการเชื่อมต่อจะมีประโยชน์อย่างยิ่งใน Windows เนื่องจากต้นทุนการสร้าง / ทำลายที่มากขึ้น
Craig Ringer

ฉันเปรียบเทียบ PostgreSQL บน Windows กับ Linux ในแบบ 8.1 และ 8.2 วัน สำหรับโหลดของเรา Linux เร็วขึ้นประมาณ 50% ยังไม่ชัดเจนเท่าไหร่ที่เป็นเพียงเครือข่าย แต่เนื่องจากลูกค้าอยู่ในกล่องแยกต่างหากและใช้รหัส Java เดียวกันเพื่อทดสอบปริมาณงานเครือข่ายดิบในการเชื่อมต่อแบบเปิดวิ่งเร็วขึ้น 30% เมื่อทั้งสองฝ่ายเป็น Linux มากกว่าเมื่อทั้งสองฝ่าย ของ windows ที่น่าสนใจเมื่อด้านหนึ่งเป็น Linux และอีกหนึ่งเป็น Windows มันช้ากว่า Linux ทั้งสองด้าน 15%
kgrittn

2

นี่เป็นคำตอบที่ยาก: ดังที่เคนกล่าวไว้ Postgres ไม่ได้สร้างความแตกต่างใด ๆ ระหว่างระบบปฏิบัติการและมีความเสถียร / ไม่เสถียรใน Windows เช่นเดียวกับบน Linux

คำตอบที่แท้จริงสำหรับคำถามนี้คือลองทำดู

ตั้งค่าเซิร์ฟเวอร์ Linux และเซิร์ฟเวอร์ Windows ด้วยสเปคเดียวกันใช้ข้อมูลจำนวนเท่ากันในทั้งสองเครื่องและทำการทดสอบ

PS: มันมีคะแนนปิดเพราะมันอาจจะถามที่ดีกว่าที่เซิร์ฟเวอร์ผิด


ServerFault ดีกว่าไหม ฉันจะจัดหมวดหมู่เป็นปัญหาซอฟต์แวร์สำหรับนักพัฒนาแทนที่จะเป็นปัญหาสำหรับผู้ดูแลระบบ

1
นี่ไม่ใช่ปัญหาซอฟต์แวร์ผู้พัฒนาไม่ต้องกังวลกับ SQL ของเขา: PostgreSQL ใช้ samen SQL บน Linux เช่นเดียวกับที่ใช้บน Windows
Frank Heikens

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
Vladislav Rastrusny

อ่านคำตอบอื่น ๆ เพื่อดูว่าทำไมเดานี้ที่คำตอบไม่ถูกต้อง โปรดพิจารณาลบคำตอบ
Sam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.