ฉันจะตัดสินใจได้อย่างไรว่าจะต้องทำการสลับขนาดใดบนเครื่อง Linux (Debian) ที่มี RAM ขนาด 2-4 GB? ฉันต้องการพื้นที่สว็อปหรือไม่?
ฉันจะตัดสินใจได้อย่างไรว่าจะต้องทำการสลับขนาดใดบนเครื่อง Linux (Debian) ที่มี RAM ขนาด 2-4 GB? ฉันต้องการพื้นที่สว็อปหรือไม่?
คำตอบ:
มีหลายวิธีที่คุณสามารถทราบได้ว่าการใช้ swap ในเครื่องมีจำนวนเท่าใด คำแนะนำทั่วไปใช้สูตรตาม RAM เช่น 2 x RAM, 1.5 x RAM, 1 x RAM, .75 x RAM และ. 5 x RAM หลายครั้งที่สูตรมีการเปลี่ยนแปลงขึ้นอยู่กับปริมาณของ RAM (ดังนั้นกล่องที่มี RAM 1GB อาจใช้การแลกเปลี่ยน 2 x RAM (2GB) ในขณะที่กล่องที่มี RAM ขนาด 16GB อาจใช้การแลกเปลี่ยน. 5 x RAM (8GB)
สิ่งที่ควรพิจารณาอีกประการหนึ่งคือสิ่งที่จะใช้สำหรับกล่อง หากคุณกำลังจะมีกระบวนการทำงานพร้อมกันจำนวนมากที่วิ่งอยู่บนกล่อง แต่จำนวนที่สำคัญของกระบวนการเหล่านั้นจะไม่ได้ใช้งานเป็นระยะเวลาหนึ่งแล้วการเพิ่มการสลับพิเศษก็สมเหตุสมผล หากคุณกำลังจะใช้กระบวนการที่สำคัญจำนวนเล็กน้อยจากนั้นเพิ่มการแลกเปลี่ยนพิเศษทำให้รู้สึก (นี้อาจดูเหมือนเคาน์เตอร์ง่าย แต่ฉันจะอธิบายในนาที) หากคุณใช้กล่องเป็นเดสก์ท็อปการเพิ่มการสลับพิเศษนั้นสมเหตุสมผล
สำหรับว่าคุณควรรวมการแลกเปลี่ยนใช่คุณควร คุณควรมีพื้นที่ swap จนกว่าคุณจริงๆรู้ว่าสิ่งที่คุณกำลังทำและคุณมีเหตุผลที่ดีสำหรับมัน
ดูสิว่าลินุกซ์เคอร์เนลทำงานอย่างไร swap ไม่ได้ใช้เฉพาะเมื่อคุณใช้หน่วยความจำกายภาพหมดแล้วเท่านั้น เคอร์เนล Linux จะใช้งานแอปพลิเคชั่นที่ไม่ได้ใช้งาน (หลับ) และหลังจากช่วงระยะเวลาหนึ่งให้ย้ายแอปพลิเคชันเพื่อสลับจากหน่วยความจำจริง ผลลัพธ์คือเมื่อคุณต้องการแอปพลิเคชันนั้นจะมีความล่าช้าชั่วขณะ (โดยปกติจะเป็นเพียงแค่หนึ่งหรือสองวินาที) ในขณะที่หน่วยความจำของแอปพลิเคชันอ่านกลับจากสลับเป็นแรม และนี่ก็เป็นสิ่งที่ดี
วิธีนี้ช่วยให้คุณสามารถใส่แอปพลิเคชันที่ไม่ทำงานเป็น "sleep" เพื่อให้แอปพลิเคชันที่ใช้งานอยู่สามารถเข้าถึง RAM เพิ่มเติมได้ นอกจากนี้ Linux จะใช้ RAM (ไม่ได้ปันส่วน) ใด ๆ ที่มีอยู่บนเครื่องเป็นแคชดิสก์ทำให้กิจกรรมดิสก์ส่วนใหญ่ (ช้า) เร็วขึ้นและตอบสนองมากขึ้น การสลับกระบวนการที่ไม่ใช้งานจะช่วยให้คุณมีดิสก์แคชมากขึ้นและทำให้เครื่องของคุณโดยรวมเร็วขึ้น
สุดท้ายเรามาดูกันพื้นที่ดิสก์มีราคาถูก ราคาถูกจริงๆ ไม่มีเหตุผลอะไรที่ดีเลยที่จะไม่ตบอย่างช้าๆเพื่อสลับพื้นที่ ถ้าฉันใช้ RAM 2GB - 4GB ในเครื่องฉันอาจตั้งค่าพื้นที่สว็อปของฉันให้เท่ากับ RAM อย่างน้อย ถ้ามันมี RAM น้อยกว่า 2GB ฉันก็ยังต้องแลกกับอย่างน้อย 2GB
อัปเดต: ตามความคิดเห็นที่ยอดเยี่ยมที่กล่าวถึง (และฉันลืมที่จะรวม) หากคุณใช้แล็ปท็อปหรือเดสก์ท็อปที่คุณอาจต้องการใส่ในโหมด 'ไฮเบอร์เนต' (Suspend to Disk) คุณต้องการอย่างน้อยที่สุดเสมอสลับตามที่คุณมีหน่วยความจำ พื้นที่สว็อปจะถูกใช้เพื่อเก็บเนื้อหาของ RAM ในคอมพิวเตอร์ในขณะที่ 'สลีป'
Red Hat แนะนำสูตรต่อไปนี้สำหรับเซิร์ฟเวอร์ที่มี ram จำนวนมาก:
if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB
หากระบบของคุณมี RAM 1 GB การสลับของคุณจะเป็น 2 GB สำหรับ 16 GB จะเป็น 18 GB
ตอบล่าช้าและฉันคิดว่านี่ค่อนข้างครอบคลุมในคำตอบที่เลือก แต่มีบางข้อมูลที่ดีและย่อยง่ายในคำตอบที่ได้รับจาก @ssapkota ที่นี่ (คัดลอก / วางด้านล่าง)
นี่เป็นคำแนะนำที่ดีมากจาก RedHat: ระบบ Swap Space ที่แนะนำ
ข้อความที่ตัดตอนมาจากลิงค์เดียวกัน:
ในปีที่ผ่านมาจำนวนพื้นที่สว็อปที่แนะนำเพิ่มขึ้นเป็นเส้นตรงกับปริมาณแรมในระบบ แต่เนื่องจากจำนวนหน่วยความจำในระบบที่ทันสมัยเพิ่มขึ้นเป็นหลายร้อยกิกะไบต์ขณะนี้ได้รับการยอมรับว่าจำนวนพื้นที่สว็อปที่ระบบต้องการคือฟังก์ชั่นของเวิร์กโหลดหน่วยความจำที่ทำงานอยู่บนระบบนั้น อย่างไรก็ตามเนื่องจากพื้นที่สว็อปมักจะถูกกำหนดในเวลาติดตั้งและอาจเป็นเรื่องยากที่จะกำหนดล่วงหน้าเวิร์กโหลดหน่วยความจำของระบบเราขอแนะนำให้พิจารณาการสลับระบบโดยใช้ตารางต่อไปนี้
ตารางปัจจุบัน (ณ เดือนธันวาคม 2555):
Amount of RAM in the system Recommended swap space Recommended swap space
if allowing for hibernation
--------------------------- ---------------------------- ---------------------------
2GB of RAM or less 2 times the amount of RAM 3 times the amount of RAM
2GB to 8GB of RAM Equal to the amount of RAM 2 times the amount of RAM
8GB to 64GB of RAM 0.5 times the amount of RAM 1.5 times the amount of RAM
64GB of RAM or more 4GB of swap space No extra space needed
ตารางต้นฉบับ:
Amount of RAM in the System Recommended Amount of Swap Space
4GB of RAM or less a minimum of 2GB of swap space
4GB to 16GB of RAM a minimum of 4GB of swap space
16GB to 64GB of RAM a minimum of 8GB of swap space
64GB to 256GB of RAM a minimum of 16GB of swap space
256GB to 512GB of RAM a minimum of 32GB of swap space
ขึ้นอยู่กับว่าคุณทำอะไรไปบ้าง ด้วยปริมาณงานที่เหมาะสมคุณไม่ต้องการพื้นที่สว็อปใด ๆ ไม่ว่าคุณจะมี RAM 16MB หรือ 16384MB อุปกรณ์ Linux ที่ฝังตัวส่วนใหญ่ทำงานได้โดยไม่ต้องมีอะไร (พวกเขาจะสลับไปยังอะไร)
เมื่อพิจารณาถึงราคา RAM คุณอาจจะไม่ใช้ swap สำหรับการคำนวณที่ใช้งานอยู่ แล้วมีอะไรเหลืออยู่?
(2) และ (3) ขึ้นอยู่กับปริมาณงานเป็นอย่างมาก บนเดสก์ท็อปของฉันฉันสามารถใช้ 4GB + เปิด (2) จากการปล่อย vims xterms ฯลฯ ที่ทำงานบนเดสก์ท็อปอื่น ๆ ได้อย่างง่ายดาย
ในเซิร์ฟเวอร์ส่วนใหญ่ที่ฉันใช้งานแทบจะไม่เคยมีสิ่งใดถูกสับเปลี่ยนและการสลับ 1–2GB (โดยไม่คำนึงถึงจำนวน RAM) ดูเหมือนว่าตกลง
madvise
อย่างไร แต่นั่นจะไม่ล้มเหลว ... ข้อผิดพลาดที่พูดถึงหน่วยความจำไม่เพียงพอระหว่างการรวบรวมขยะ การเพิ่ม swap ช่วยป้องกันแน่นอน แต่จะเพิ่ม RAM อาจเป็นเพราะ 32-bit กับ PAE หรือเปล่า?
Xms
และXmx
ไม่ได้ตั้งค่าไว้เหมือนกันมันสามารถกัดคุณได้มาก: ทำให้เกิดปัญหาใหญ่สำหรับเราเป็นเวลาสองสัปดาห์ + จนกว่าเราจะติดตามมันในที่สุด
ขึ้นอยู่กับบริการและแอพพลิเคชั่นที่คุณวางแผนจะใช้งาน คุณสามารถดูการใช้งานหน่วยความจำของคุณด้วยฟรี -mและปรับเปลี่ยนพาร์ทิชัน swap ตามช่วงเวลา
นี่คือการสนทนาที่น่าสนใจในเรื่อง โดยส่วนตัว (และหลังจากอ่านการสนทนานั้น) ฉันยังคงเหลือประมาณ 1 GB สำหรับการแลกเปลี่ยน
ฉันไม่สามารถพูดกับ Debian ได้โดยตรง แต่ฉันรู้ว่าเมื่อคุณมี RAM สูงกว่า 2 GB การเปลี่ยนแปลงของสมการ 2xRAM ดั้งเดิมมักเปลี่ยนเป็น 1xRAM ฉันคิดว่าเมื่อคุณกด RAM ขนาด 16 GB แล้วข้อเสนอแนะจะลดลงเป็น. 75xRAM อีกครั้ง
แน่นอนฉันพบสิ่งนี้เป็นจริงสำหรับ Solaris และเป็นตัวชี้วัดที่ใช้สำหรับการติดตั้ง Oracle ดังนั้น YMMV ขึ้นอยู่กับแอพที่คุณกำลังใช้งานอยู่
ฉันมักจะทำการแลกเปลี่ยนมาก (อย่างน้อย) เป็น RAM ในกรณีที่ฉันต้องการไฮเบอร์เนตเครื่องบางวัน สามารถทำงานได้น้อย แต่ก็ทำได้เช่นกัน
วันนี้พื้นที่ HDD ราคาถูกดังนั้นฉันไม่ลังเลเลยที่จะมอบพื้นที่สว็อป
พื้นที่สว็อปสามารถใช้เป็น "padding" เมื่อคุณมีหน่วยความจำไม่เพียงพอทันที
เมื่อกระบวนการใช้ RAM ที่มีอยู่ทั้งหมดและบางเครื่องจะทำงานช้ามาก แต่โดยปกติคุณจะสามารถกู้คืนได้ นอกจากนี้ยังง่ายต่อการดูว่ากระบวนการใดเป็นสาเหตุของปัญหา
ในช่วงหลายปีที่ผ่านมาฉันได้ปฏิบัติตามกฎที่ว่าสำหรับเครื่อง Windows คุณมี swap มากเท่ากับ RAM ... ใน Novell เราจะปรับ swap ให้สูงขึ้นถ้าเรามีเครื่องพิมพ์มากขึ้น ... สำหรับ linux กฎและการฝึกฝนสำหรับฉันนั้นเป็น 1GB สลับทุกๆ RAM 2GB ที่คุณมี และคุณวางไว้ที่ด้านหน้าของดิสก์เพื่อให้เข้าถึงได้เร็วขึ้น
หากเป็นเซิร์ฟเวอร์ LAMP กฎ 1/2 จะมีผล
ระยะทางจะแตกต่างกันไปขึ้นอยู่กับแอปพลิเคชันและการใช้งาน GUI
ฉันสร้าง swap 1GB และซื้อ RAM มากกว่าครั้งที่สอง คุณไม่จำเป็นต้องสลับกับคอมพิวเตอร์ที่ทันสมัย RAM มีราคาถูกมาก
คุณใช้ระบบอะไร ส่วนตัวฉันไม่ได้ใช้การแลกเปลี่ยนใด ๆ หากมีสิ่งใดที่ใช้โทเค็น 512MB หรืออะไรบางอย่างเพื่อให้สิ่งต่าง ๆ สามารถนำไปใส่ในดิสก์ได้ถ้ามีถิ่นที่อยู่ แต่ไม่ได้ใช้งานเป็นระยะเวลานาน
ฉันเพิ่งใช้โทเค็นสลับขนาดเล็ก (ปกติคือ 256 MB แต่ฉันทำไปแล้ว 64 MB) เนื่องจากการกำหนดค่าระบบที่มีศูนย์แลกเปลี่ยนต้องการการกำหนดค่าพิเศษ
พื้นที่ดิสก์มีราคาถูก แต่ไม่ดีเท่าไหร่ ทันทีที่ระบบเริ่มการแลกเปลี่ยนประสิทธิภาพจะเป็นศูนย์ และ RAM ก็ไม่แพงอีกต่อไป
เชื่อใจฉันซื้อโปรเซสเซอร์ที่ช้าลงเล็กน้อยและซื้อ RAM เพิ่ม 2.8 GHz แทน 3.0 GHz จะช่วยให้คุณประหยัดเงินมากพอที่จะซื้อ RAM อีก 2 GB เป็นอย่างน้อย