การจำลองเสมือนจะมีประสิทธิภาพได้อย่างไร


6

ดังที่ฉันเข้าใจเครื่องเสมือนและเกสต์ OS เป็นสองเท่าของจำนวนเลเยอร์นามธรรม (ที่เกี่ยวข้องกับการคำนวณ) ระหว่างส่วนต่อประสานผู้ใช้กับพลังอันบริสุทธิ์ของฮาร์ดแวร์ เลเยอร์นามธรรมที่กล่าวมาบางส่วนนั้นเป็นฮาร์ดแวร์ (จำลอง) ไดรเวอร์ไดรเวอร์อินเตอร์เฟส IO ฯลฯ

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


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

คำตอบ:


4

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

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

ตัวอย่างเช่นเครื่องเสมือนที่ไร้เดียงสาทุกเครื่องจะขัดจังหวะซีพียูอย่างน้อย 1,000 ครั้งต่อวินาทีเพื่อล่วงหน้านาฬิกา วางnเครื่องเสมือนไว้ในเครื่องเดียวและคุณจะต้อง(n + 1) * 1000ขัดจังหวะวินาที! ไม่ต้องพูดถึงว่าการขัดจังหวะคือการทำงานที่ช้าที่สุดของ CPU ทั้งหมด

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

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


ฉันไม่สนใจว่าทำไมฉันจึงควรเลือกเครื่องเสมือนเป็นเครื่องทุ่มเท แต่คุณเป็นคนเดียวที่อธิบายอะไรเกินกว่านั้น
pestaa

ไม่น่าเชื่อว่าบางคนลงคะแนนในคำตอบนี้ ดูเหมือนว่าเป็นเรื่องธรรมดาที่จะใช้ VMs โดยไม่ต้องมีความเข้าใจในเรื่องนี้อย่างแท้จริง
harrymc

"เมื่อไม่มีใครรู้ว่ามันเป็นเสมือนจริง" ระบบ Paravirtualization เช่น Xen (ซึ่งเขาถามเกี่ยวกับ) รู้เรื่องนี้เพราะพวกเขาจะต้องได้รับการแก้ไขเป็นพิเศษเพื่อให้ทำงานได้ในฐานะแขก
Ken

"พวกเขาจะไม่ประสบความสำเร็จเช่นเดียวกับเครื่องจักรจริง" ฉันจำได้เมื่อโปรแกรมเมอร์ภาษาแอสเซมบลีพูดถึงคอมไพเลอร์ :-)
Ken

@Ken: ไม่มีนักแปลที่มีประสิทธิภาพเท่าของจริง VM สามารถเข้าใกล้ แต่ไม่เท่ากัน
harrymc

5

virtualization มีข้อดีหลายประการ ประสิทธิภาพขึ้นอยู่กับวิธีที่คุณกำหนด

แทนที่จะมีหลายเครื่องในห้องเซิร์ฟเวอร์คุณสามารถใช้การจำลองเสมือนเพื่อ:

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

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


5

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

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

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

ใครก็ตามที่ต้องการเซิร์ฟเวอร์อย่างน้อย 3 เครื่อง (และระหว่างบริการควบคุมโดเมน / authenication / บริการเครือข่ายพื้นฐาน, ไฟล์, พิมพ์, อีเมล, ฐานข้อมูลและแอพพลิเคชั่นซึ่งธุรกิจส่วนใหญ่ทุกขนาดไม่ควรทำ) ควรได้รับประโยชน์ - แม้ว่าฉันจะรักษาไว้อย่างน้อย 2 เสมอสำหรับเหตุผลที่ซ้ำซ้อน - หากเซิร์ฟเวอร์ของคุณเหลืออยู่คุณสามารถเดินโซซัดโซเซให้โหลดเต็มได้แม้ว่าจะช้าก็ตามจนกว่าคุณจะกลับมาออนไลน์อีกครั้ง

อัปเดต:
ฉันทำตัวหนาหนึ่งในสัญลักษณ์แสดงหัวข้อย่อยของฉันเพราะเป็นสิ่งที่ฉันคิดว่า OP พลาดและอธิบายว่าเครื่องเสมือนยังส่งผลให้ประสิทธิภาพเพิ่มขึ้นได้อย่างไร


2

สองคำตอบ (จนถึงตอนนี้) ที่กล่าวว่าเป็นระบบเสมือนจริงที่มีประสิทธิภาพในระดับ บริษัท นอกจากนี้ยังมีประสิทธิภาพ (สำหรับคำจำกัดความบางอย่างที่มีประสิทธิภาพ) สำหรับการใช้งานส่วนตัว ฉันมีแล็ปท็อป 1 เครื่อง แต่มีระบบปฏิบัติการ 5 ระบบ ฉันสามารถทดสอบซอฟต์แวร์ของฉันบนระบบปฏิบัติการ "สะอาด" โดยรู้ว่าไม่มีรีจิสตรีคีย์รีจีสตรีหรือสิ่งอื่นใดจากการติดตั้งครั้งก่อน ฯลฯ

และแน่นอนสำหรับคำจำกัดความที่เข้มงวดของประสิทธิภาพของ CPU มันไม่ดีเท่าฮาร์ดแวร์เฉพาะ


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