เรายังต้องการสลับพาร์ติชั่นบนเซิร์ฟเวอร์หรือไม่?


36

ฉันได้อ่านคำถามนี้แต่มันถูกถามในบริบทของเซิร์ฟเวอร์ไม่ใช่เดสก์ท็อปหรือโน้ตบุ๊ก

หากมีการติดตั้ง RAM จำนวนมากบนโน้ตบุ๊กขนาด 8 GB เราจำเป็นต้องใช้พื้นที่สว็อปหรือไม่?

คำตอบ:


32

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

  1. ถ้าคุณมีพื้นที่ swap และไม่เกิดขึ้นจะออกจาก RAM, เคอร์เนลจะเลือกอย่างใดอย่างหนึ่งหรือมากกว่ากระบวนการที่มันคิดว่ามีผู้สมัครที่ดี (แม้ว่าคุณอาจจะให้มันบางคำแนะนำแม้ว่า) และฆ่าพวกเขา

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

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


ประเด็นแรกของคุณจริงหรือไม่? เคอร์เนลจะฆ่ากระบวนการทำงานเพื่อเพิ่ม RAM หรือไม่ เหตุใดเคอร์เนลจึงไม่ใช้พื้นที่ดิสก์แทนการฆ่ากระบวนการสด
Donato

4
@ Donato ใช่จุดแรกของฉันเป็นจริง หากไม่มีการกำหนดค่าพื้นที่สว็อป (เช่นดิสก์) เคอร์เนลจะไม่ได้รับตัวเลือกให้ใช้พื้นที่ดิสก์เพื่อเพิ่ม RAM
jlliagre

และจะเกิดอะไรขึ้นเมื่อฉันเสร็จพื้นที่สว็อป? ถอยกลับในกรณีที่ 1
Zac

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

1
@Zac ถ้าคุณหมดพื้นที่สว็อปคุณอยู่ในสถานการณ์เดียวกับที่ไม่มีพื้นที่สว็อปในตอนแรก หนึ่งกระบวนการขึ้นไปจะตาย พวกเขาอาจจะถูกเลือกโดยนักฆ่า oom หรือเพียงแค่อยู่ผิดที่และผิดเวลา โดยปกติระบบการผลิตที่ได้รับการตรวจสอบอย่างเหมาะสมควรมีการแจ้งเตือนจากนั้นจะมีปฏิกิริยาของผู้ดูแลระบบก่อนที่จะหมดแรง
jlliagre

9

หากคุณมี RAM ตั้งแต่ 3GB ขึ้นไปอูบุนตูจะไม่ใช้พื้นที่สว็อปโดยอัตโนมัติเนื่องจากมีมากเกินพอสำหรับระบบปฏิบัติการ

ตอนนี้คุณจำเป็นต้องมีพาร์ติชั่น swap หรือไม่?

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแลกเปลี่ยนที่ต้องการหรือไม่ดูที่ข้อกำหนดการแลกเปลี่ยนของUbuntuหรือข้อกำหนดการสลับ


คุณมีลิงค์ที่ยืนยันข้อความแรกของคุณหรือไม่?
jlliagre

@jlliagre ลองดูที่mygeekopinions.blogspot.com/2011/03/...ซึ่งนำไปสู่การaskubuntu.com/questions/23676/...
มิทช์

1
คำแถลงของบล็อกคือการตอบคำถามที่ไม่ถูกต้อง ไม่มีหลักฐาน user4124 เป็นนักพัฒนา Ubuntu "จะ (โดยทั่วไป) ไม่มีการใช้งาน" ค่อนข้างแตกต่างจาก "จะปิดใช้งานอัตโนมัติ" ที่จริงแล้ว Ubuntu ไม่เคยปิดการใช้งานการแลกเปลี่ยนและจะใช้ประโยชน์ได้ถ้าจำเป็นแม้ว่าคุณจะมี RAM 8GB หรือมากกว่า
jlliagre

@jlliagre นั่นหมายความว่าพื้นที่สว็อปอยู่ที่นั่น แต่ไม่ได้ใช้ เมื่อฉันติดตั้ง Xubuntu 14.04 มันสร้างการสลับ 16GB และยังไม่เคยใช้ ดูรูป
มิทช์

1
ดีใจที่คุณแก้ไขคำตอบของคุณ "ไม่ใช้" ไม่เหมือนกับ "ปิดใช้งาน" อย่างแน่นอน Ubuntu ไม่ปิดการใช้งานการแลกเปลี่ยนและจะใช้ประโยชน์ได้ถ้าจำเป็นโดยไม่คำนึงถึงขนาดนั้น
jlliagre

4

ในช่วง 6 ปีที่ผ่านมาฉันใช้ระบบเดสก์ท็อปที่มี RAM อย่างน้อย 8GB ฉันจำกรณีไม่ได้เมื่อระบบเปลี่ยนหน่วยความจำภายใต้การใช้งานปกติ - และฉันตรวจสอบการใช้ทรัพยากรบ่อยครั้งด้วย htop ไม่แม้แต่ในกรณีที่ฉันใช้เซิร์ฟเวอร์เสมือน (เซิร์ฟเวอร์) 4 เครื่องพร้อมกันเพื่อวัตถุประสงค์ในการพัฒนา

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


2

การมีพื้นที่สว็อปเป็นสิ่งที่ดีเสมอ

ที่นี่ฉันอ้างถึงคู่มือการศึกษาการรับรอง RHCSA / RHCE ของไมเคิลจาง

Linux Swap Space

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

สำหรับระบบสูงสุด 2GB ขนาดพื้นที่สว็อปเริ่มต้นคือสองเท่าของจำนวน RAM ที่ติดตั้ง สูงกว่า 2GB นั่นคือปริมาณของ RAM + 2GB แต่กฎเหล่านั้นไม่ได้“ แข็งและเร็ว” เวิร์คสเตชั่นที่มี RAM หลาย GB มักใช้พื้นที่สว็อปน้อยมาก .. แต่มันอาจใช้บ่อยขึ้นในระบบที่ไม่ได้ทำการรีบูทเดือนละครั้งหรือมีความต้องการอย่างมากจากบริการบางอย่าง


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

1

ขึ้นอยู่กับสิ่งที่คุณใช้ในระบบของคุณ

หากคุณกำลังสร้างเนื้อหามันอาจเป็นความคิดที่ดีที่จะยังคงมีการจัดสรรพื้นที่สว็อปดังนั้นหากคุณใช้ RAM หมดกระบวนการของคุณเพิ่งจะช้าลงแทนที่จะถูกฆ่าและอาจสูญเสียงาน

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


1

หากคุณต้องการพื้นที่สว็อปหรือมากกว่านั้นคุณสามารถสร้างไฟล์สว็อปในระบบไฟล์ของคุณ แน่นอนว่าพวกเขาจะไม่สนับสนุนการจำศีล แต่เป็นวิธีการที่เหมาะสมสำหรับแล็ปท็อปที่มีไดรฟ์ SSD และ RAM จำนวนมาก

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