ใน Linux คุณสามารถเลือกสิ่งต่าง ๆ เช่น ext3 และ reiserfs สำหรับพาร์ติชัน สำหรับพาร์ติชันสลับคุณเพียงแค่เลือก "สลับ" ระบบไฟล์นี้คืออะไรจริง ๆ แล้ว? คุณสามารถสร้างพาร์ติชัน ext3 และสร้างเป็นพาร์ติชันสลับได้หรือไม่? มันจะแตกต่างกันอย่างไร?
ใน Linux คุณสามารถเลือกสิ่งต่าง ๆ เช่น ext3 และ reiserfs สำหรับพาร์ติชัน สำหรับพาร์ติชันสลับคุณเพียงแค่เลือก "สลับ" ระบบไฟล์นี้คืออะไรจริง ๆ แล้ว? คุณสามารถสร้างพาร์ติชัน ext3 และสร้างเป็นพาร์ติชันสลับได้หรือไม่? มันจะแตกต่างกันอย่างไร?
คำตอบ:
Swap ไม่มีระบบไฟล์จริง มันเป็นเพียงส่วนหนึ่งที่สงวนไว้ของดิสก์ซึ่งเป็นหน่วยความจำที่สามารถกำหนดแอดเดรสแบบ raw โดยไม่มีโครงสร้างพิเศษ
mkswap สร้างส่วนหัวสำหรับพื้นที่ swap พร้อมข้อมูลเพิ่มเติมบางส่วน จาก swapheader.h ของแพ็กเกจ util-linux-ng:
struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
unsigned int last_page;
unsigned int nr_badpages;
unsigned int padding[125];
unsigned int badpages[1];
};
ส่วนหัวเวอร์ชัน 1 เป็นเวอร์ชันที่ใช้อยู่ในปัจจุบัน เกี่ยวกับความมหัศจรรย์ทั้งหมดที่อยู่เบื้องหลังโครงสร้างการสลับแบบดิบ
ฉันคิดว่า swap partition ไม่ต้องการระบบไฟล์เพราะไม่มีไฟล์และไดเรกทอรีอยู่ในนั้น สลับพาร์ติชั่นคือตำแหน่ง RAM เสมือน
Linux มีพื้นที่สว็อปสองรูปแบบ: พาร์ติชัน swap และไฟล์ swap swap partition เป็นส่วนอิสระของฮาร์ดดิสก์ที่ใช้เพื่อการแลกเปลี่ยนเท่านั้น ไม่มีไฟล์อื่นใดสามารถอยู่ที่นั่นได้ ไฟล์ swap เป็นไฟล์พิเศษในระบบไฟล์ที่อยู่ในระบบและไฟล์ข้อมูลของคุณ
การแลกเปลี่ยนเป็นสิ่งจำเป็นด้วยเหตุผลสำคัญสองประการ ขั้นแรกเมื่อระบบต้องการหน่วยความจำมากกว่าที่มีอยู่จริงเคอร์เนลจะสลับหน้าที่ใช้น้อยลงและให้หน่วยความจำกับแอ็พพลิเคชันปัจจุบัน (กระบวนการ) ที่ต้องการหน่วยความจำทันที ประการที่สองจำนวนหน้าที่สำคัญที่ใช้โดยแอปพลิเคชันในช่วงเริ่มต้นอาจใช้เพื่อเริ่มต้นเท่านั้นและไม่เคยใช้อีกครั้ง ระบบสามารถสลับเพจเหล่านั้นออกและเพิ่มหน่วยความจำสำหรับแอปพลิเคชันอื่นหรือแม้แต่แคชดิสก์
มีสองวิธีที่คุณสามารถสร้างพื้นที่สว็อป: swap ระบบไฟล์และสว็อป (หรือดิบ) ด้วยการสลับระบบไฟล์คุณกำลังสร้างไฟล์บนระบบไฟล์และใช้เป็นพื้นที่สว็อป (เหมือนกับที่คุณเห็นบน windows ด้วย pagefile.sys) ด้วยการสลับอุปกรณ์คุณจะสลับไปยังพาร์ติชันที่คุณสร้างขึ้นเพื่อการสลับโดยเฉพาะ
ไหนดีกว่า:
การอภิปรายนี้เคยน่าสนใจมากขึ้นในวัน "เก่า" เพราะ:
เหตุใดการสลับอุปกรณ์จึงเป็น "ดีกว่า": เนื่องจากคุณทำการแลกเปลี่ยนกับพาร์ติชันแบบดิบจะเร็วกว่าเพราะคุณไม่ต้องจัดการกับค่าใช้จ่ายเพิ่มเติมทั้งหมดของระบบไฟล์ที่มี inodes และค่าใช้จ่ายระบบไฟล์อื่น ๆ
วันนี้อย่างไรก็ตามข้อโต้แย้งนี้ไม่ได้ถือ ด้วยวิวัฒนาการของการเข้าถึงดิสก์อย่างรวดเร็วในทุกวันนี้การสลับอุปกรณ์ไม่ได้ซื้อเวลามากกว่าการแลกเปลี่ยนระบบไฟล์
ทำไมการแลกเปลี่ยนระบบไฟล์ถึงเป็น "ดีกว่า": เปลี่ยนขนาดได้ง่ายกว่ามาก เมื่อคุณเปลี่ยนขนาดพาร์ติชั่นมันยากกว่าการสร้างไฟล์ใหม่
อย่างไรก็ตามในวันนี้มีผู้คนมากมายที่ใช้ LVM แทนที่จะเป็นพาร์ติชั่นแบบดิบทำให้หดและขยายพื้นที่สว็อปได้ง่าย
วันนี้เป็นสิ่งที่สงสัยมากยิ่งขึ้น: เซิร์ฟเวอร์ส่วนใหญ่ในปัจจุบันนี้ด้วยเหตุผลด้านประสิทธิภาพการทำงานมันคุ้มค่าที่จะเสียค่าใช้จ่ายเพียงเสียบหน่วยความจำเต็ม (การอภิปรายนี้เคยเป็นที่นิยมมากขึ้นเมื่อ RAM ยากที่จะมาและเป็นเรื่องธรรมดาที่จะใส่ RAM 4GB ถึง 8GB ในเซิร์ฟเวอร์เท่านั้น)
ทำไมฉันถึงใช้ FILESYSTEM SWAP (และแลกเปลี่ยนโดยทั่วไป)
วันนี้ฉันสั่งให้คนของเราติดตั้งด้วย 4gig swap onl และเราใช้ config / image เดียวกันสำหรับการติดตั้ง linux ทั้งหมดของเรา การติดตั้ง Oracle ต้องใช้การแลกเปลี่ยนที่สูงขึ้นดังนั้นสำหรับระบบที่จะมี Oracle ฉันแล้วจะสร้างส่วนที่เหลือด้วยการแลกเปลี่ยนระบบไฟล์ เป็นไปได้ว่าแอปพลิเคชันของคุณอาจมีข้อกำหนดการสลับในกรณีที่คุณสามารถเพิ่มได้ในภายหลังด้วยการสลับระบบไฟล์
สิ่งนี้ช่วยได้ไหม?
ฉันมีคำแนะนำโดยละเอียดเกี่ยวกับวิธีทำสิ่งนี้ใน linux ที่นี่: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/