ระบบไฟล์ใดที่สลับบน Linux


14

ใน Linux คุณสามารถเลือกสิ่งต่าง ๆ เช่น ext3 และ reiserfs สำหรับพาร์ติชัน สำหรับพาร์ติชันสลับคุณเพียงแค่เลือก "สลับ" ระบบไฟล์นี้คืออะไรจริง ๆ แล้ว? คุณสามารถสร้างพาร์ติชัน ext3 และสร้างเป็นพาร์ติชันสลับได้หรือไม่? มันจะแตกต่างกันอย่างไร?


ระบบไฟล์ Swap บน Linux ดูเหมือนจะเรียกว่าระบบไฟล์ Swap ของ Linux หากฉันจัดการเพื่อหาข้อมูลจริงเกี่ยวกับมันฉันจะโพสต์คำตอบ จนถึงตอนนี้ฉันได้อ่านจากen.wikipedia.org/wiki/Pagingเคอร์เนลที่ข้ามระบบไฟล์ในไฟล์ swap อาจเป็นจริงได้ด้วยการสลับพาร์ติชัน
AndrejaKo

1
ผู้คนที่เหลือเชื่อในฟอรัม Gentoo ได้ให้ลิงก์นี้แก่ฉัน! ดูเหมือนว่าทุกอย่างจะถูกอธิบายอย่างดี John R. Grahamโอ้และขอขอบคุณ
AndrejaKo

คำตอบ:


26

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 เป็นเวอร์ชันที่ใช้อยู่ในปัจจุบัน เกี่ยวกับความมหัศจรรย์ทั้งหมดที่อยู่เบื้องหลังโครงสร้างการสลับแบบดิบ


ไม่จำเป็นต้องมีระบบไฟล์บางประเภทในการอ่านและเขียนสิ่งที่มีความหมายต่อพาร์ติชันหรือไม่?
tony_sid

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

6
คุณยังสามารถบล็อกแอดเดรสหากคุณไม่มีระบบไฟล์
matthias krull

8

ฉันคิดว่า swap partition ไม่ต้องการระบบไฟล์เพราะไม่มีไฟล์และไดเรกทอรีอยู่ในนั้น สลับพาร์ติชั่นคือตำแหน่ง RAM เสมือน


2
มันไม่ได้เป็นสถานที่เสมือนจริงอย่างแน่นอน เป็นหน่วยความจำ (เช่น ram) ที่สามารถแมปกับหน่วยความจำเสมือนของกระบวนการ
matthias krull

4

Linux มีพื้นที่สว็อปสองรูปแบบ: พาร์ติชัน swap และไฟล์ swap swap partition เป็นส่วนอิสระของฮาร์ดดิสก์ที่ใช้เพื่อการแลกเปลี่ยนเท่านั้น ไม่มีไฟล์อื่นใดสามารถอยู่ที่นั่นได้ ไฟล์ swap เป็นไฟล์พิเศษในระบบไฟล์ที่อยู่ในระบบและไฟล์ข้อมูลของคุณ

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


2
คำตอบนั้นดีมากและอธิบายแก่นแท้ของปัญหา แต่เป็นคำตอบสำหรับคำถาม "การสลับบน GNU / Linux คืออะไร" แล้วมันมาทำอะไรที่นี่? นอกจากนี้ลิงก์ที่เกี่ยวข้องกับlinux.com/news/software/applications/…
AndrejaKo

ฉันรู้ว่า swap คืออะไร
tony_sid

... ไม่รู้เกี่ยวกับตัวเลือกการแลกเปลี่ยนไฟล์
MrCalvin

-1

มีสองวิธีที่คุณสามารถสร้างพื้นที่สว็อป: 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/


1
“ วันนี้อย่างไรก็ตามข้อโต้แย้งนี้ไม่ได้ถือ ด้วยวิวัฒนาการของการเข้าถึงดิสก์อย่างรวดเร็วในทุกวันนี้การสลับอุปกรณ์ไม่ได้ซื้อเวลาให้คุณมากไปกว่าการสลับระบบไฟล์ "- นี่ไม่ใช่เหตุผล แนวคิดในที่นี้คือพื้นที่สว็อปอาจเป็นที่ต้องการในทันที การผ่านระบบไฟล์เกี่ยวข้องกับไดเรกทอรีบล็อก inodes แคชแคช ฯลฯ ซึ่งเป็นรหัสที่ตัวเองต้องการหน่วยความจำมากขึ้นนำไปสู่การวนซ้ำ นั่นเป็นเหตุผลที่การแลกเปลี่ยนทำได้ดีที่สุดบนอุปกรณ์ raw block นอกจากนี้ยังหลีกเลี่ยงการแตกแฟรกเมนต์ของไฟล์
mirabilos

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