ข้อเสียของการใช้ฐานข้อมูลภายในเครื่องเสมือนคืออะไร? ฉันจะเอาชนะพวกเขาได้อย่างไร [ปิด]


66

เล่นอะไรอยู่ภายในเครื่องเสมือนจะมีระดับของการตีประสิทธิภาพบาง แต่เท่าไหร่จริงๆส่งผลกระทบต่อประสิทธิภาพการทำงานของระบบฐานข้อมูลหรือไม่

ฉันพบเอกสารอ้างอิงทางวิชาการที่มีเกณฑ์มาตรฐานที่น่าสนใจ แต่เป็นการทดสอบที่ จำกัด โดยใช้ Xen และ PostgreSQL เท่านั้น บทสรุปคือการใช้ VM ไม่ได้มาพร้อมกับประสิทธิภาพที่สูง "" (แม้ว่าคุณอาจคิดว่าข้อมูลจริงระบุไว้เป็นอย่างอื่น)

ข้อเสียด้านเทคนิคการบริหารและอื่น ๆ ที่เกี่ยวข้องกับการใช้ฐานข้อมูลภายในเครื่องเสมือนคืออะไร

กรุณาโพสต์คำตอบที่สามารถสำรองข้อมูลโดยข้อเท็จจริงวัตถุประสงค์ฉันไม่สนใจในการเก็งกำไรหรือการโต้แย้งกึ่งศาสนาอื่น ๆ (ความรักที่เกินบรรยายเป็นสิ่งที่ดีในหลาย ๆ ด้าน แต่ไม่ได้ช่วยเราที่นี่)

ที่ถูกกล่าวว่า

  • ปัญหาใดบ้างที่ปรากฏขึ้นเมื่อเรียกใช้ฐานข้อมูลในเครื่องเสมือน (โปรดโพสต์ข้อมูลอ้างอิง)
  • ปัญหาเหล่านั้นสำคัญหรือไม่
    • พวกเขามีความสำคัญภายใต้สถานการณ์บางอย่างเท่านั้นหรือไม่
  • วิธีแก้ปัญหาคืออะไร

+1 ฉันสนใจที่จะรับฟังความคิดเห็นเกี่ยวกับสถานการณ์ของ SQL Server และ Windows 2008 R2 เป็นหลัก
goodguys_activate

4
@Shane Madden - คุณช่วยอธิบายการปิดสักหน่อยได้ไหม? ฉันคาดหวังว่าแรงจูงใจนั้นขับเคลื่อนด้วยคำตอบที่ไม่เฉพาะเจาะจงหนึ่งคำ (ซึ่งทำให้ตกรางในความคิดเห็น) ไม่ใช่คำถามนั้น เกี่ยวกับคำถามคะแนนโหวต 44 รายการและ 12 รายการโปรดภายในเวลาประมาณหนึ่งวันก่อนที่จะมีการปิดตัวลงบอกฉันว่ามันเป็นคำถามที่ดีพร้อมคำตอบ / ข้อมูลที่เป็นประโยชน์ (โดยเฉพาะอย่างยิ่งเมื่อเทียบกับสิ่งที่ดูเหมือนว่า นี่คือสิ่งที่เว็บไซต์ SE ต่างๆตั้งเป้าไว้ คุณต้องการที่จะใช้ถ้อยคำของคำถามที่เฉพาะเจาะจงมากกว่าหรือไม่ "มันเลวร้ายแค่ไหน?"
Russ

1
@ErikA, Shane, Womble, mikeyb, Ben - ฉันได้ทำการแก้ไขโดยชุมชนซึ่งอาจทำให้คำถามนี้สร้างสรรค์ขึ้น ลองเปิดใหม่อีกครั้งหรือโพสต์คำถามที่คล้ายกันในคำถามใหม่ / คำถามสะอาด
goodguys_activate

คำตอบ:


41

แม้ว่าผู้ค้าฐานข้อมูลจำนวนมากจะทำสิ่งนี้ช้ามาก แต่เกือบทั้งหมดของพวกเขาในขณะนี้สนับสนุนซอฟต์แวร์ของพวกเขาที่ทำงานในสภาพแวดล้อมเสมือนจริงอย่างเป็นทางการ

เราใช้งานอินสแตนซ์ Oracle 11g จำนวนมากใน linux ซึ่งอยู่เหนือ ESXi และเป็นไปได้ที่จะได้รับประสิทธิภาพที่ดีมาก เช่นเดียวกับการปรับขนาดฮาร์ดแวร์ทั้งหมดคุณเพียงแค่ต้องแน่ใจว่าโฮสต์การจำลองเสมือนมีทรัพยากรมากมาย (RAM, CPU) และเลเยอร์ดิสก์ของคุณขึ้นอยู่กับหน้าที่ในการส่งมอบประสิทธิภาพการทำงานของ IO ที่คุณต้องการ


7
+1 ตามที่ระบุไว้สำคัญว่าทรัพยากรต้องเป็นไปตามภารกิจ ดิสก์เป็นคอขวดขนาดใหญ่สำหรับเราและต้องมีการวางแผนอย่างรอบคอบ
Dave M

2
+1 คุณต้องทำการบ้านกับการใช้ฐานข้อมูลล่วงหน้า หากกล่องทางกายภาพของคุณได้รับการใช้งานมากกว่า 40% ดังนั้นข้อดีของการใช้ vm'ing จึงเริ่มหายไป ที่ถูกกล่าวว่าเรามี sql ตันเฉพาะแอปพลิเคชันขนาดเล็กจำนวนมากที่ทำงานบน vm's โดยไม่มีปัญหา แต่เครื่องที่ใช้งานหนักขนาดใหญ่ของเรามีฮาร์ดแวร์เฉพาะเนื่องจากขาดความได้เปรียบ
เนท

5
Disk IO เป็นผู้ร้ายตัวใหญ่และสภาพแวดล้อมเวอร์ช่วลมีแนวโน้มที่จะไม่สม่ำเสมอ
lynxman

1
@lynxman - เห็นด้วย เราใช้งานอินสแตนซ์ Oracle ทั้งหมดของเราบนดิสก์ Tier 1 SAN ของเราซึ่งก็คือ 15k SAS จากสิ่งที่ฉันสามารถบอกเราได้รับมากใกล้กับประสิทธิภาพการทำงานของพื้นเมืองที่อยู่ใกล้กับ
EEAA

10
"ออนซ์ของการทดสอบนั้นคุ้มค่ากับการเดาปอนด์"
Chris B. Behrens

21

ดังที่ ErikA กล่าวสิ่งนี้กำลังกลายเป็นเรื่องปกติมากขึ้นเรื่อย ๆ ฉันอยู่ในค่าย SQL Server และไม่มีระบบการผลิตใด ๆ ที่ทำงานอยู่ใน VM แต่ฉันจะไม่ลังเล (หลังจากศึกษาเพิ่มเติมในหัวข้อ) มีบางสิ่งที่ต้องพิจารณาอย่างแน่นอนก่อนที่คุณจะลงสู่เส้นทางนั้น (อย่างน้อยสำหรับ SQL Server) Disk IO (ดังที่คนอื่นพูดถึง) และการจัดสรรหน่วยความจำเป็นเพียง 2 ตัวอย่าง สิ่งต่าง ๆ จะแตกต่างกันระหว่างไฮเปอร์ไวเซอร์ต่าง ๆ เช่นกัน

Brent Ozar เป็นผู้เชี่ยวชาญที่ได้รับการยอมรับในการจำลองเสมือนเซิร์ฟเวอร์ SQL โดยเฉพาะใน VMWare ฉันขอแนะนำให้อ่านเนื้อหาของเขา

http://www.brentozar.com/community/virtualization-best-practices/


11

นอกจากนี้สามารถแล้วมีควร เรือลาดตระเวนสามารถไปได้ 150 ไมล์ต่อชั่วโมง แต่คุณควรอยู่บนทางหลวงสาธารณะหรือไม่? คุณสามารถทำร้ายตัวเองโดยไม่จำเป็น

ฐานข้อมูลเป็นระบบปฏิบัติการของแขก เมื่อออกแบบเมื่อเริ่มต้นพวกเขาจะคว้าบล็อกของทรัพยากรและจัดการโดยตรงด้วยเหตุผลด้านประสิทธิภาพ ทันทีที่คุณทำให้ระบบปฏิบัติการหลักของเซิร์ฟเวอร์ฐานข้อมูลเป็นแขกในสภาพแวดล้อมการโฮสต์เสมือนคุณจะวางเลเยอร์อนุญาโตตุลาการกับไฮเปอร์ไวเซอร์ระหว่างองค์ประกอบที่จัดสรรบล็อกของดิสก์และ RAM และเซิร์ฟเวอร์ฐานข้อมูล มันจะช้าลง ยิ่งแบบสอบถามของคุณไม่มีประสิทธิภาพมากเท่าใดก็ยิ่งช้าเท่านั้น ความไร้ประสิทธิภาพเหล่านี้อาจถูกหลอกลวงในวันนี้เกี่ยวกับฮาร์ดแวร์เฉพาะ แต่ทันทีที่คุณนำอนุญาโตตุลาการไปยังทรัพยากรที่ต้องพึ่งพาของคุณคุณจะได้พบกับความรวดเร็วอย่างแท้จริง

สิ่งที่เคาน์เตอร์ถั่วจำนวนมากที่ต้องการเรียกร้องการจำลองเสมือนล้มเหลวในการรับรู้ก็คือเซิร์ฟเวอร์ฐานข้อมูลในฐานะที่เป็นระบบปฏิบัติการของแขกจะมีเลเยอร์การรวมบัญชีของตนเอง ไม่มีเหตุผลใดที่คุณไม่สามารถย้ายรวมหลายฐานข้อมูลโลจิคัลอินสแตนซ์บนเซิร์ฟเวอร์จริงหนึ่งเครื่องได้แม้กระทั่งจุดที่ย้ายที่อยู่ IP การตั้งค่าชื่อโฮสต์เพิ่มเติม ฯลฯ ... เพื่ออนุญาตให้มีการรวมบริการตามธรรมชาตินี้ และด้วยรูปแบบนี้ไม่เพียง แต่คุณจะประหยัดค่าใช้จ่ายที่ฝ่ายบริหารกำลังผลักดันเพื่อลดจำนวนโฮสต์ทางกายภาพ แต่คุณยังคงบล็อกการเข้าถึงทรัพยากรทางกายภาพโดยไม่ต้องมีการปะทะของ hypervisor โดยพลการซึ่งสามารถตัดสินใจได้ในบางครั้ง คนอื่น ๆ

สิ่งนี้ถือเป็นจริงสำหรับระบบปฏิบัติการแขกอื่นเช่น Java โดยทั่วไปแล้วโซลูชันการจำลองเสมือนเป็นสภาพแวดล้อมที่ยุ่งและไฮเปอร์ไวเซอร์นั้นต้องทำการตัดสินใจมากมายว่าใคร "ได้รับโทเค็น" บนทรัพยากร เมื่อใดก็ตามที่คุณสามารถกำจัดชั้นนั้นคุณจะดีขึ้น

รวมหลาย ๆ อินสแตนซ์โดยใช้เลเยอร์ระบบปฏิบัติการเกสต์แบบธรรมชาติก่อน โอกาสที่คุณจะสามารถรวมแพลตฟอร์มและเป้าหมายด้านประสิทธิภาพได้ง่ายขึ้น


4
คำจำกัดความที่น่าสนใจของ "ระบบปฏิบัติการของแขก" ในขณะที่ประเด็นของคุณได้รับการคำนึงถึงประสิทธิภาพที่บริสุทธิ์และไม่บริสุทธิ์ แต่ฐานข้อมูลของคุณมีปัญหาคอขวดในซีพียูบ่อยแค่ไหน? I / O มีโอกาสมากขึ้นและสำหรับแอปพลิเคชันที่มีประสิทธิภาพสูงกว่าคุณได้แชร์เวลา I / O ที่ SAN แล้ว ฉันหวังว่าคุณจะพิจารณาปรัชญาการทำเวอร์ชวลไลเซชันของคุณอีกครั้งเมื่อเกิดปัญหาด้านความปลอดภัยกับแอปพลิเคชั่นเดียวที่ทำให้แฮชรหัสผ่านฐานข้อมูลรวมทั้งหมดของคุณหรือเมื่อกระบวนการหนึ่งที่ทำงานภายใน JVM ของคุณ
เชนแมดเดน

5
เพื่อความชัดเจนฉันยอมรับอย่างสมบูรณ์ว่าเซิร์ฟเวอร์ฐานข้อมูลประสิทธิภาพสูงที่ได้รับการปรับแต่งอย่างหนาแน่นและมีขนาดใหญ่ควรมีฮาร์ดแวร์ทางกายภาพของตัวเอง แต่สิ่งเหล่านี้ไม่ใช่บรรทัดฐานและประโยชน์อื่น ๆ ของการทำเวอร์ช่วลไลซ์เซชั่นมักจะมีผลมากกว่าประสิทธิภาพที่ได้รับ
เชนแมดเดน

3
ฉันไม่เห็นด้วยกับประเด็นของคุณเกี่ยวกับการไปที่เลเยอร์การรวมที่มีอยู่ก่อนเสมอ บางครั้งมันก็สมเหตุสมผล แต่ดูที่การแลกเปลี่ยนต้นทุนในการปรับสมดุลทรัพยากรระหว่างการรวมฐานข้อมูลหลาย ๆ ระบบบนระบบปฏิบัติการเดียวและการรวมหลาย ๆ ฐานข้อมูล / ระบบปฏิบัติการเข้าด้วยกันบนไฮเปอร์ไวเซอร์ ครั้งแรกมีประสิทธิภาพมากขึ้น ประการที่สองง่ายกว่าในการปรับสมดุล การโยกย้ายและ OS / ฐานข้อมูลไปยังโฮสต์ใหม่นั้นมีความยุ่งยากน้อยกว่าการโยกย้ายฐานข้อมูลไปยังระบบปฏิบัติการใหม่
Jake Oshins

ความคิดเห็นของฉันมาจากการสังเกตการณ์โดยตรงในภาคสนามของการโยกย้ายที่ประสบความสำเร็จและล้มเหลวไปสู่โซลูชั่นการจำลองเสมือนในช่วงทศวรรษที่ผ่านมาในฐานะวิศวกรด้านประสิทธิภาพ มีแอพพลิเคชั่นฐานข้อมูลที่ไม่ดีมากมายที่มีปัญหาด้านประสิทธิภาพการใช้งานมาสก์ฮาร์ดแวร์ เพิ่มการจำลองเสมือนและปัญหาเหล่านั้นสว่างขึ้น หากคุณมีแอพที่ต้องการนาฬิกาที่แม่นยำสำหรับช่วงเวลาหรือวัตถุประสงค์ในการตรวจสอบแล้วด้วยนาฬิกาแบบลอยในการจำลองเสมือนของซอฟต์แวร์ที่คุณไม่ต้องการ
James Pulley

1
ว้าวเพียงแค่เจมส์ว้าว ฉันไม่มีเวลาหรือความอดทนที่จะทิ้งทุกจุดที่คุณทำไว้ในคำตอบและความคิดเห็นที่ตามมา แต่ฉันแค่รู้สึกว่าฉันต้องการที่จะทิ้งความคิดเห็นที่นี่สำหรับทุกคนที่อาจเกิดขึ้นกับคำตอบนี้ ความเห็นของเจมส์เป็นของเขาและไม่สะท้อนสิ่งที่เป็นไปได้อย่างแท้จริง หากคุณสมัครเกินกำหนดแน่นอนว่าคุณจะมีประสิทธิภาพต่ำ ดังนั้นอย่าสมัครเกินกำหนด เป็นไปได้อย่างสมบูรณ์ที่จะมีสภาพแวดล้อมการจำลองเสมือนที่มีประสิทธิภาพสูงมาก มันเป็นความเขลาที่จะให้คำแนะนำแบบครอบคลุมกับมันเพราะมัน "ทำงานได้ไม่ดี"
EEAA

6

มีสองสิ่งที่ต้องตระหนักถึงที่นี่:

  • หน่วยของประสิทธิภาพของฐานข้อมูลต่อหน่วยของฮาร์ดแวร์ลดลงเล็กน้อยสำหรับฐานข้อมูลเสมือนจริง ซึ่งหมายความว่าคุณต้องซื้อฮาร์ดแวร์เพิ่มอีกเล็กน้อยเพื่อให้ได้ประสิทธิภาพในระดับเดียวกัน
  • ไม่ได้หมายความว่าระดับเดียวกันหรือระดับประสิทธิภาพที่ต้องการนั้นไม่สามารถทำได้ กำไรที่คุณได้รับจากการจัดการที่ดีขึ้นและผลประโยชน์อื่น ๆ (เช่นง่าย HA) มักจะวิธีที่มากกว่าชดเชยค่าใช้จ่ายที่เพิ่มขึ้นเล็กน้อยฮาร์ดแวร์

ที่กล่าวว่าที่ฉันทำงานการติดตั้ง SQL Server ของเราเป็นหนึ่งในสองเซิร์ฟเวอร์ที่ฉันไม่ได้ตั้งใจที่จะทำเวอร์ช่วลไลเซชั่นได้ตลอดเวลาเร็ว ๆ นี้ (อีกอันคือ DC หลัก)


4

การเรียกใช้ SQL Server เป็น VM จะดีถ้าคุณสามารถให้ทรัพยากรเพียงพอกับ VM เพื่อเรียกใช้แอปพลิเคชันของคุณ หากในโลกทางกายภาพคุณต้องมี 24 คอร์และ RAM 256 Gigs จากนั้นคุณต้องจัดหา 24 vCPUs และ 256 Gigs of RAM ในโลกเสมือนจริง

ฉันเพิ่งเขียนบทความเมื่อเดือนที่แล้วนิตยสาร SQL Server เกี่ยวกับการใช้ SQL Server ภายใต้ vSphere ของ vware


2

ฉันใช้ฐานข้อมูลสองแห่งคือ PostgreSQL หนึ่งและอีก MySQL ในสภาพแวดล้อมเสมือน (Xen) ที่ dom0s พร้อมใช้งานสูง ระบบไฟล์ domU ทั้งหมดตั้งอยู่บน iSCSI SAN LUN แกะสลักด้วยโลจิคัลวอลุ่ม LVM2 ฐานข้อมูล MySQL มีไว้สำหรับ Cacti เท่านั้นดังนั้นจึงไม่เห็นการใช้งานมากนักและตั้งอยู่บน iSCSI LUN เช่นกัน

ฐานข้อมูล PostgreSQL เป็นฐานข้อมูลสำหรับสภาพแวดล้อมการจัดเตรียมของเราดังนั้นจึงเห็นการใช้งานที่สูงกว่าฐานข้อมูล MySQL ด้วยเหตุผลนี้ฐานข้อมูลจะอยู่ในชุด RAID10 ในเครื่องและ DRBD ทำซ้ำกับโหนดคลัสเตอร์ที่สอง อย่างไรก็ตามในแง่ของการโหลดจริงฐานข้อมูลการแสดงละครนี้ไม่เห็นโหลดสูงมากเลย ซึ่งในความคิดของฉันทำให้มันเป็นผู้สมัครที่ดี / ที่ดีในการจำลองเสมือน

ประโยชน์ที่ได้รับบางประการต่อองค์กรของเราคือลดการใช้พลังงานลดพื้นที่จัดเก็บและลดค่าใช้จ่ายในการดูแลฮาร์ดแวร์

ฐานข้อมูลการผลิตหลักของเราในทางกลับกันฉันไม่สามารถจินตนาการไปเสมือนจริง ....


2

ฉันทำงานกับเซิร์ฟเวอร์ MSSQL และ MySQL บนเซิร์ฟเวอร์จำนวนมาก สองสามปีที่ผ่านมาฉันลังเลที่จะเริ่มตั้งค่าเซิร์ฟเวอร์ SQL บน VMs เพราะฉันเคยได้ยินเกี่ยวกับปัญหาด้านประสิทธิภาพของการใช้งานเซิร์ฟเวอร์ SQL บน VM อย่างไรก็ตามฉันรู้สึกประหลาดใจหลังจากติดตั้งเซิร์ฟเวอร์ SQL คู่แรกของฉันและไม่เห็นการเปลี่ยนแปลงในประสิทธิภาพ เซิร์ฟเวอร์ที่ฉันทำงานอยู่นั้นมีจำนวนมากขึ้นเรื่อย ๆ นั้นกำลังทำงานบน VM และลูกค้าองค์กรขนาดใหญ่เกือบทั้งหมดที่ฉันทำงานเพื่อให้ได้เซิร์ฟเวอร์ SQL ที่ถูกต้อง

ใช่ VM จะเพิ่มต้นทุนค่าโสหุ้ยและถ้าคุณกำลังจะโฮสต์ VM หลายตัวในกล่องเดียวคุณจะต้องมีเซิร์ฟเวอร์ที่ดี ปัญหาทรัพยากรทั่วไปที่ต้องระวังคือการเพิ่ม VM เพิ่มเติมและทำให้ผอมบางทรัพยากรที่มีอยู่ มันเป็นเรื่องธรรมดาที่จะวางแผนสำหรับการเติบโต แต่ถ้าคุณซื้อเซิร์ฟเวอร์ของคุณเพื่อโฮสต์ 2 หรือ 3 VM และตอนนี้มันกำลังรัน 10 VMs คุณอาจเห็นประสิทธิภาพ

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

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