ฉันสงสัยว่าตั้งแต่ฉันได้ยินว่าการสลับใช้เมื่อคุณออกหรือแรมและการสลับมากเกินไปนั้นไม่ดีเนื่องจากฉันมี RAM จำนวนมาก (8GB) ....
ถ้าฉันไม่สร้าง swap partition ขึ้นล่ะ?
ฉันต้องใช้มันเพื่อไฮเบอร์เนตหรือไม่?
ฉันสงสัยว่าตั้งแต่ฉันได้ยินว่าการสลับใช้เมื่อคุณออกหรือแรมและการสลับมากเกินไปนั้นไม่ดีเนื่องจากฉันมี RAM จำนวนมาก (8GB) ....
ถ้าฉันไม่สร้าง swap partition ขึ้นล่ะ?
ฉันต้องใช้มันเพื่อไฮเบอร์เนตหรือไม่?
คำตอบ:
ระบบปฏิบัติการที่ทันสมัยต้องการพื้นที่สว็อปเพื่อใช้ RAM อย่างมีประสิทธิภาพ แม้ว่าระบบของคุณจะมี RAM จำนวนมาก แต่การสูญเสีย RAM จะส่งผลให้แคชบัฟเฟอร์มีขนาดเล็กลงซึ่งหมายถึงดิสก์ I / O ที่เพิ่มขึ้น ดังนั้นไม่ว่าคุณจะมี RAM เท่าใดคุณยังต้องการให้ระบบใช้งานได้อย่างมีประสิทธิภาพ การใช้อย่างมีประสิทธิภาพหมายถึงการนำสิ่งต่าง ๆ ออกมาจาก RAM ซึ่งไม่น่าจะเข้าถึงได้มากนัก
เมื่อคุณเริ่มต้นระบบทั่วไปบริการจำนวนมากจะเริ่มขึ้น โปรแกรมเรียกใช้รหัสการเริ่มต้นและปรับเปลี่ยนการแมปหน่วยความจำส่วนตัวในกระบวนการ จำนวนของบริการเหล่านี้จะไม่ทำงานอีกครั้ง หลายคนไม่ทำงานเป็นเวลาหลายชั่วโมง หากไม่มีการแลกเปลี่ยนระบบปฏิบัติการจะไม่มีทางเลือกอื่นนอกจากให้ทำการแมปหน่วยความจำส่วนตัวที่แก้ไขแล้วที่เกี่ยวข้องกับบริการเหล่านั้นใน RAM ตลอดไป นั่นคือ RAM ที่ไม่สามารถใช้เป็นแคชดิสก์ได้
ดังนั้นคุณต้องการสลับไม่ว่าคุณต้องการหรือไม่
ฉันใช้ระบบเดสก์ท็อปโดยไม่มีการสับเปลี่ยนกันเป็นเวลาสองปีและมันก็ยอดเยี่ยมมาก! มีพฤติกรรมบางอย่างที่แตกต่างกัน สิ่งเหล่านี้มีประโยชน์และบางอย่างอาจเป็นอันตรายต่อคุณ ทุกอย่างขึ้นอยู่กับสิ่งที่คุณทำ
ความแตกต่างที่สำคัญอย่างหนึ่งคือวิธีที่ระบบทำงานเมื่อหน่วยความจำหมด:
ถ้าไม่มีพาร์ติชั่นการแลกเปลี่ยน OOM killer ทำงานทันที หากคุณมีหน่วยความจำรั่วโปรแกรมก็น่าจะเป็นโปรแกรมที่ถูกฆ่า ที่เกิดขึ้นและคุณกู้คืนระบบเกือบจะทันที
หากมีเป็นพาร์ทิชัน swap เคอร์เนลดันเนื้อหาของหน่วยความจำลงในการแลกเปลี่ยน กระบวนการ Errant สามารถดำเนินการจัดสรรหน่วยความจำต่อไป สิ่งนี้จะเกิดขึ้นจนกว่าการแลกเปลี่ยนจะหมดซึ่งอาจใช้เวลาสิบนาทีถึงหนึ่งชั่วโมงหากคุณมีพาร์ติชั่นสว็อปใหญ่ ขณะที่กำลังทำสิ่งนี้ระบบของคุณจะช้าลงในการรวบรวมข้อมูล มันเป็นไปไม่ได้ที่จะเปิดเทอร์มินัลและฆ่ากระบวนการ ฉันมักจะถอดปลั๊กไฟเมื่อเกิดเหตุการณ์นี้
ดังนั้นตั้งแต่ฉันจะสูญเสียข้อมูลของฉันนะเมื่อ Ooms ระบบฉันชอบอดีตตัวเลือกอย่างน้อยมีโอกาส (สูง) ของการกู้คืน
จำเป็นต้องมีการสลับเพื่อไฮเบอร์เนตมิฉะนั้นคุณสามารถทำได้โดยไม่ต้องปรับ
เป็นความเข้าใจผิดที่พบโดยทั่วไปว่าการมีพื้นที่สว็อปมีผลกระทบในทางลบต่อประสิทธิภาพการทำงาน สิ่งที่ส่งผลกระทบอย่างรุนแรงต่อประสิทธิภาพการทำงานไม่มี RAM เพียงพอ พื้นที่สวิตต่อไม่มีผลเสียต่อประสิทธิภาพเว้นแต่คุณจะไม่ใส่ใจกับความน่าเชื่อถือ มันอาจส่งผลดีต่อประสิทธิภาพการทำงานแม้ว่าคุณคิดว่าคุณมี RAM เพียงพอ (และไม่มีรายงานการขาดแคลน RAM)
โดยพื้นฐานแล้วมีสามกรณีที่ต้องพิจารณา:
1: มี RAM เพียงพอสำหรับความต้องการเคอร์เนลภายในสำหรับแอปพลิเคชันของคุณทั้งหมดที่มีชุดการทำงานของเพจบน RAM และยังมี RAM "ว่าง" สำหรับแคชบัฟเฟอร์เพื่อเก็บข้อมูลร้อนของระบบไฟล์ส่วนใหญ่
2: เหมือนกับข้างต้นยกเว้นว่าคุณมี RAM ไม่เพียงพอสำหรับบัฟเฟอร์แคชที่จะมีประสิทธิภาพอย่างสมบูรณ์
3: RAM ไม่เพียงพอที่จะจัดเก็บแอปพลิเคชันของคุณที่ใช้หน้าเว็บ
ในกรณีที่ 1 ซึ่งควรเป็นบรรทัดฐานสำหรับเครื่องที่ใช้งานจริงมีพื้นที่สว็อปหรือไม่เปลี่ยนแปลงอะไรเลย (อย่างน้อยในระบบปฏิบัติการ Linux ที่ใช้ Linux และระบบปฏิบัติการอื่น ๆ ที่ใช้หน่วยความจำเกินจริง)
ในกรณีที่ 2 การมีพื้นที่สว็อปอาจปรับปรุงประสิทธิภาพโดยรวมโดยอนุญาตให้ระบบเพจที่ใช้งานไม่บ่อยนักและอนุญาตให้แคชบัฟเฟอร์เล่นบทบาทได้ดีขึ้น
ในกรณีที่ 3 การมีพื้นที่สว็อปช่วยให้แอปพลิเคชันสามารถทำงานต่อได้โดยมีค่าใช้จ่ายในการลดประสิทธิภาพเนื่องจากการแบ่งหน้า ในทางกลับกันการขาดพื้นที่สว็อป (หรือมีขนาดใหญ่พอ) จะทำให้แอปพลิเคชันหยุดทำงานแบบสุ่ม นอกจากนี้ขึ้นอยู่กับการตั้งค่าระบบปฏิบัติการ OOM killer อาจตัดสินใจฆ่าแอปพลิเคชันที่หิวมากที่สุดของหน่วยความจำหากมีความต้องการ RAM ที่แข็งแกร่งโดยไม่ต้องให้โอกาสในการบันทึกข้อมูลสำคัญ (ของคุณ)
กรณีหลังนี้เป็นสิ่งที่คุณต้องเลือก มีบางกรณีใช้งานที่มีกระบวนการถูกฆ่าตายเป็นตัวเลือกที่ต้องการเช่นระบบที่เวลาตอบสนองเป็นสิ่งสำคัญและการสูญเสียการทำธุรกรรม / กระบวนการไม่เป็นเรื่องใหญ่
อย่างไรก็ตามฉันมักจะเชื่อในสถานการณ์ส่วนใหญ่จะเป็นการดีกว่าที่จะให้โอกาสผู้ใช้ / ผู้ดูแลระบบสังเกตเห็นการขาดแคลน RAM และดำเนินการตามนั้นโดยไม่เสี่ยงต่อการสูญเสียข้อมูล
หากคุณไม่ต้องการใช้พาร์ติชัน swap คุณสามารถใช้ไฟล์ swap: อิมเมจระบบไฟล์ที่เก็บไว้ในไฟล์ปกติและใช้เป็นพื้นที่สว็อปของคุณ
บทความต่อไปนี้อธิบายวิธีการทำอย่างละเอียด:
มันค่อนข้างอันตราย แต่คุณสามารถวิ่งได้โดยไม่ต้องมีพื้นที่สว็อป แต่ในที่สุดถ้าคุณมีจำนวนหน่วยความจำเกินกว่าที่คุณมีระบบของคุณจะเกิดข้อผิดพลาดโดยทันที
การสลับแบบใดที่ทำให้คุณมีความยาว แต่ช้ากว่าสำหรับความจำของคุณ หากคุณเกินกว่าที่คุณจะเริ่มต้นการแลกเปลี่ยนมันจะช่วยชีวิตออกจากระบบของคุณจริงๆ ... อย่างไรก็ตามโดยการฆ่ากระบวนการที่ผิดพลาดคุณยังสามารถบันทึกระบบของคุณได้
บางโปรแกรมยืนยันในการจัดสรร (แต่ไม่ได้ใช้) พื้นที่สว็อปบางรายการเป็นโปรแกรมฐานข้อมูลถ้าฉันจำได้ อีกครั้งโดยไม่มีพื้นที่สว็อปคุณอาจ จำกัด โปรแกรมที่อาจทำงานอยู่
ในที่สุดดู SWAP คือราคาถูกในความจริงที่ว่าคุณไม่จำเป็นต้องสำรองพื้นที่ (ฉันหวังว่าคุณจะเป็นหนึ่งในผู้ดูแลระบบดีเด่นเหล่านี้ที่สำรองระบบของพวกเขา)
ดังนั้นสร้างมันขึ้นมา
กฎง่ายๆที่ฉันเคยเป็น 2 * ขนาดหน่วยความจำ ..... แต่ตอนนี้บอกว่าฉันโอเคในหลายกรณีที่มีขนาดหน่วยความจำ 1 * แต่โดยทั่วไปใช้ 1.5 * (ขนาดหน่วยความจำ) คุณไม่ต้องสร้างจำนวนมาก แต่ฉันจะ ... โดยเฉพาะอย่างยิ่งหากมีงานประเภทใดที่คุณกำลังทำอยู่
โอ้ใช่และสำหรับการไฮเบอร์เนตการสลับนั้นจำเป็นต้องมีเพื่อเก็บภาพรวมของหน่วยความจำ และขนาดถ้าคุณกำลังพิจารณา h8ibernation ควรเป็นอย่างน้อย (1 * หน่วยความจำขนาด) + 100MB .. 100 MB เป็นค่าใช้จ่ายที่เป็นไปได้ในกระบวนการ
การสลับ Linux ดูเหมือนจะมีความต้องการค่อนข้างยากทันทีที่มีความกดดันด้านหน่วยความจำ อาการคือถ้าเกือบทุก RAM ถูกใช้โดยกระบวนการที่ใช้งานอยู่ระบบจะหยุดการทำงานอย่างหนักและฮาร์ดดิสกำลังทำงานอย่างหนัก
ทำไม?
เพจที่ไม่มีไฟล์สำรอง (โดยปกติมาจากการจัดสรรหน่วยความจำแบบไดนามิก) ไม่สามารถขับออกจาก RAM เมื่อไม่มีการสลับ เคอร์เนลจะกลับไปยังหน้าต่างๆที่มีไฟล์สำรองแม้ว่าจำเป็นจะต้องใช้จริงอีกครั้งในเร็ว ๆ นี้ก็ตาม อี ทิ้งแม้ไม่มีการสับ!
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับปัญหาละเอียดนี้ดูโพสต์บล็อกนี้
สรุป : มีการแลกเปลี่ยนเสมอ
และสำหรับขนาดที่เป็นแนวทางคร่าวๆให้ใช้บางอย่างระหว่าง 4 ถึง 8 GB แม้สำหรับระบบที่มี RAM จำนวนมากสมมติว่าคุณไม่จำศีล สำหรับรายละเอียดเพิ่มเติมโปรดดูที่เอกสารของ Red Hat เกี่ยวกับพื้นที่