วัตถุประสงค์ของการแลกเปลี่ยนไฟล์หลายไฟล์คืออะไร


28

ระหว่างการติดตั้งลินุกซ์ distro ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) ฮาร์ดไดรฟ์จะถูกแบ่งพาร์ติชันเพื่อรวมพาร์ติชั่นการสลับโดยปริยาย

เป็นไปได้ที่จะเปลี่ยนพฤติกรรมนี้ด้วย swapon -p priority

ตามหน้า man, ลำดับความสำคัญคือ:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

ทำไมคุณถึงต้องการไฟล์ swap มากกว่าหนึ่งไฟล์
เป็นเรื่องปกติที่ผู้ดูแลระบบจะกำหนดค่าการสลับมากกว่าหนึ่งครั้งหรือไม่

คำตอบ:


47

มีเหตุผลมากมายที่จะมีพื้นที่สลับหลายแห่ง (ไม่จำเป็นต้องเป็นไฟล์) แม้ว่าคุณจะมีแกนหมุนเดียวเท่านั้น

20-20 hindsight:คุณปรับใช้เครื่องที่มีพื้นที่แลกเปลี่ยนเดียวจากนั้นในที่สุดก็รู้ว่ามันไม่เพียงพอ คุณไม่สามารถปรับใช้เครื่องได้ตามต้องการอีกครั้ง แต่คุณสามารถสร้างพื้นที่สว้อปอื่น (อาจเป็นไฟล์) จนกว่าการทำซ้ำโครงร่างพาร์ติชันจะกลายเป็นตัวเลือก

การปรับขนาดหรือย้ายพื้นที่สว็อป:คุณไม่สามารถปรับขนาดพื้นที่สว็อป (ดังที่Evan Teitelmanกล่าวไว้) และคุณไม่สามารถswapoffสร้างพื้นที่สว็อปใหม่แล้วทำswaponซ้ำอีกครั้งเว้นแต่คุณจะมีหน่วยความจำเพียงพอ: swapoffต้องการย้ายหน้าทั้งหมดที่สลับไปยังหน่วยความจำก่อนที่จะปล่อยพื้นที่สว็อป ดังนั้นคุณสร้างพื้นที่สว็อปชั่วคราวswapoffเดิมให้รอจนกว่าหน้าทั้งหมดจะถูกย้ายจากพื้นที่สว็อปเก่าไปเป็นพื้นที่ชั่วคราวปรับขนาดพาร์ติชั่นสว็อปเดิมmkswapจากนั้นswaponพื้นที่ที่ถูกปรับขนาดและswapoffพื้นที่ชั่วคราว หน้าเว็บที่ถูกสลับจะถูกคัดลอกจากพื้นที่สลับชั่วคราวไปยังหน้าเว็บที่ถูกปรับขนาดแล้วและคุณก็ทำเสร็จแล้ว หากคุณกำลังย้ายพื้นที่สว็อปคุณไม่จำเป็นต้องมีพื้นที่ชั่วคราว mkswapอันใหม่swaponก็แล้วswapoff ของเก่าและของทุกอย่างก็ถูกย้าย

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

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

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

โหลดบาลานซ์ที่ทราบถึงคอขวด:ในทางปฏิบัติมีคอขวดอื่น ๆ อยู่ในสถานที่ ตัวอย่างเช่นเซิร์ฟเวอร์ดิสก์ 16 ตัวอาจมีพอร์ต SATA 6 Gbps สี่พอร์ตแต่ละตัวมีตัวคูณสี่พอร์ตและดิสก์สี่ตัวที่ใช้แบนด์วิดท์ร่วมกัน หากคุณรู้เกี่ยวกับสิ่งนี้คุณสามารถจัดระเบียบพื้นที่สว็อปของคุณเพื่อให้ Disk 1 บนพอร์ต 1-4 มีลำดับความสำคัญสูงสุดดิสก์ที่สองในพอร์ต 1-4 มีลำดับความสำคัญสูงสุดเป็นลำดับที่สองเป็นต้นซึ่งจะโหลดการแลกเปลี่ยนยอดคงเหลือ ตัวคูณพอร์ต

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

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

กรณีฉุกเฉิน:คุณมีเวลา 96 ชั่วโมงในการส่งวิทยานิพนธ์ระดับปริญญาเอกของคุณและการทดสอบครั้งสุดท้ายของคุณ (อันที่น่าจะทำให้คุณได้รับรางวัลโนเบลเช่นเดียวกับตัวอักษรตัวพิมพ์เล็ก ๆ ที่ขี้ขลาดหลังจากชื่อของคุณ) คุณเกือบจะออกจากการแลกเปลี่ยนแล้ว คุณสร้างไฟล์ swap ที่มีลำดับความสำคัญน้อยกว่าลำดับความสำคัญของอุปกรณ์ swap หลักของคุณ - เคอร์เนลจะใช้มันเป็นพื้นที่แลกเปลี่ยนล้น คุณสามารถติดตั้งswapdเพื่อทำสิ่งนี้ให้คุณโดยอัตโนมัติดังนั้นคุณจะมีพื้นที่สว็อปจำนวนมากสำหรับการทำงานขนาดใหญ่emacsและ LaTeX

การสลับข้ามสื่อต่าง ๆ : Linux ไม่สามารถสลับไปยังอุปกรณ์ตัวอักษรได้ แต่มีสื่อที่แตกต่างกันจำนวนมากทั้งแบบฟิสิคัลและเสมือน: SSD (หมายเหตุ: คุณอาจไม่ต้องการสลับกับ SSD) มีการปั่นที่แตกต่างกันหลายประเภท ดิสก์, ฟล้อปปี้ (ใช่, คุณสามารถสลับฟล็อปปี้ได้ - คุณสามารถยิงตัวเองด้วย Unix), ไดรฟ์DRBD , iSCSI, วอลุ่ม LVM, พาร์ทิชันที่เข้ารหัส LUKS และอื่น ๆ (รวมถึงเซอร์เรียล แลกเปลี่ยน LUKS บน LVM บนไดรฟ์ ZIP พอร์ตขนานผ่าน iSCSI ผ่าน IEEE802.3ad อีเทอร์เน็ตที่รวมกันหรือไม่ไม่มีปัญหาคุณโสโครกสกปรก เหล่านี้คือสถานการณ์จำลองและมีไว้เพื่อรองรับข้อกำหนดเฉพาะ


ขอบคุณฉันไม่คุ้นเคยกับการบันทึกบิตโซน ฉันอยากรู้ฉันจะย้ายพาร์ทิชัน swap ของฉันไปขอทานของแผ่นเสียงดังนั้นฉันได้เปิดคำถามใหม่ใน superuser.com
spuder

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

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

+1 สำหรับ "คุณสามารถยิงตัวเองด้วย Unix" :-)
DUzun

3

ดิสก์ไดรฟ์หลายความเร็ว คุณสามารถตั้งค่าได้เร็วขึ้นที่จะใช้ก่อนตามด้วยคนที่ช้ากว่าถ้าคนที่ล้มเหลว


3

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

นอกจากนี้หากระบบต้องการพื้นที่สว็อป 4GB และมีหน่วยเก็บข้อมูล 2GB สองหน่วยระบบจะต้องใช้พื้นที่สว็อปอย่างน้อยสองแห่ง

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