Ubuntu สนับสนุนการปรับขนาดไฟล์สวิงแบบไดนามิกหรือไม่?


13

ฉันไม่สามารถจินตนาการได้ว่าทำไมไฟล์ swap ต้องมีขนาดคงที่ ทำไมไม่ให้มันปรับขนาดแบบไดนามิกเช่นไฟล์ภาพฮาร์ดไดรฟ์สำหรับกล่องเสมือน?


Linux ไม่รองรับขนาดพื้นที่สว็อปแบบไดนามิกเว้นแต่คุณจะนับตัวเลือกในการเพิ่มและลบพื้นที่สว็อปทั้งหมดในเวลาทำงาน (ทั้ง Windows ไม่ btw. ไม่ใช่แม้แต่หลัง)
David Foerster

Mac รองรับการแลกเปลี่ยนแบบไดนามิกหรือไม่
Tom Mercer

ฉันไม่รู้. มันเป็นเคอร์เนลที่แตกต่างอย่างสิ้นเชิงซึ่งฉันไม่ได้เรียน มีโอกาสคล้ายกับการสลับพื้นที่ใน Linux อย่างไรก็ตามคุณช่วยกรุณาเปิดคำถามใหม่Unix & LinuxหรือAsk Different ได้ไหมถ้าคุณมีคำถามใหม่หรือคำถามติดตามเกี่ยวกับเคอร์เนลของดาร์วินของ OS X ส่วนความคิดเห็นไม่เหมาะสมหรือมีความหมายสำหรับคำถามใหม่หรือการอภิปรายเพิ่มเติม :-) ขอบคุณ
David Foerster

@DavidFoerster บน Windows คุณสามารถตั้งค่าขนาดต่ำสุดและสูงสุดสำหรับแต่ละไฟล์เพจและ Windows จะเพิ่มขนาดไฟล์เพจเมื่อจำเป็น tomshardware.com/news/…
phuclv

คำตอบ:


11

ดูเหมือนว่า Linux ไม่รองรับขนาดการแลกเปลี่ยนไฟล์แบบไดนามิก (ไม่ว่าในกรณีใดฉันไม่สามารถตรวจสอบได้ว่าไฟล์ swap มีการเปลี่ยนแปลงขนาดโดยไม่มีswapoff/ swapon)

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

นอกจากนี้ยังทราบวรรคนี้จากmanpage :swapon

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

ฉันคิดว่าปัญหาเดียวกันนี้จะใช้กับไฟล์ swap ที่มีขนาดแบบไดนามิก


ดูเหมือนว่านี้เป็นจริงและ swapspace ไม่ได้ปรับขนาดการสลับแบบไดนามิก
Tom Mercer

2

SwapSpaceเป็นยูทิลิตี้ที่จะช่วยให้คุณทำการสลับขนาดแบบไดนามิกหากนั่นคือสิ่งที่คุณกำลังมองหา ฉันเชื่อว่ามันมีอยู่ใน Ubuntu


ในขณะที่มีการเปิดตัวใหม่2 ปีที่ผ่านมารุ่นที่บรรจุใน Ubuntuทั้งหมดดูเหมือนจะเก่าแก่ มันใช้งานได้ดีแค่ไหน?
muru

ฉันไม่สามารถจินตนาการได้ว่าวิธีที่ใช้ในการเขียนไฟล์ swap มีการเปลี่ยนแปลง แต่ฉันไม่สามารถพูดได้อย่างแน่นอน ทำงานได้ดีบนเดเบียน
231695

ฉันยังคงโหวตคำตอบของคุณเพราะมันง่ายเหมือนการสร้างพื้นที่ใหม่
231695

ฉันจะลองทำสิ่งนี้และรายงานกลับ
Tom Mercer

@ user231695 ในขณะที่มันง่ายในการสร้างพื้นที่สว็อปใหม่มันไม่สะดวกอย่างน่ากลัวและอาจไม่สามารถทำงานได้อย่างสมบูรณ์เป็นวิธีการแก้ปัญหา ครั้งเดียวที่ผู้ใช้ต้องการเพิ่มพื้นที่สว็อปใหม่คือช่วงเวลาที่สว็อปที่มีอยู่เต็ม ดังนั้นคำถามของฉันสำหรับการปรับขนาดแบบไดนามิกของไฟล์ swap
Tom Mercer

1

ฉันรู้ว่ามันสาย แต่ฉันคิดว่าทางออกที่ดีที่สุดสำหรับ dynamic swap คือ:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

แล้วตั้งค่าCONF_SWAPFACTOR=2ใน/etc/dphys-swapfileและในที่สุด

sudo service dphys-swapfile start

ดูเหมือนว่าจะไม่มีการปรับขนาด swap ดูเหมือนว่าสคริปต์เพื่อเริ่มต้น swapfile ขนาดที่กำหนดเป็นค่าเริ่มต้นความจุ 2x RAM
Tom Mercer

สวัสดี @TomMercer การตั้งค่า swapfactor และ maxswap ตามความคิดเห็นในไฟล์: "# set size เป็นค่าที่คำนวณได้ในครั้งนี้ขนาด RAM, ปรับแบบไดนามิก, รับประกันว่ามีการแลกเปลี่ยนที่เพียงพอโดยไม่ต้องเสียพื้นที่ดิสก์มากเกินไป" "ปรับแบบไดนามิก" ดูเหมือนว่าคุณกำลังมองหา ดีที่สุด
Denis Pitzalis

มันทำให้ swapfile ของฉันมีขนาดแตกต่างกันระหว่างพูด 1KB และ 16GB ในขณะที่ฉันใช้ระบบปฏิบัติการและเติมแรมหรือไม่ นั่นคือความหมายของการสลับ "การปรับขนาดแบบไดนามิก" การสร้าง swapfile ซึ่งขนาด RAM หลายรายการนั้นไม่ได้เป็นแบบไดนามิก ไม่มีประเด็นที่จะมี swapfile เลยจนกว่า RAM จะเต็มและคุณต้องการให้ swapfile นั้นมีขนาด VRAM ที่คุณใช้งานอยู่ หากคุณปิดแท็บหรือภาพขนาดใหญ่ที่คุณกำลังทำงานอยู่ swapfile ควรปรับขนาดแบบไดนามิกกลับลงมา Swapfile ควรจะเต็ม 100% เสมอโดยการปรับขนาดตัวเองแบบไดนามิก
Tom Mercer

0

พื้นที่สวอปสามารถเพิ่มลงในระบบที่กำลังรันได้โดยใช้swaponคำสั่ง ต้องการ swapfile / partition ที่มีอยู่ (ไม่ได้ใช้) เมื่อต้องการสร้างให้ใช้ddคำสั่งเพื่อจัดสรรไฟล์ที่อยู่ติดกันจากนั้นmkswapเพิ่มข้อมูลการควบคุมที่ถูกต้องให้กับไฟล์ / พาร์ติชัน

ในการลบ swapfile ให้ใช้swapoff; ไฟล์สามารถลบได้

ฉันสงสัยว่าเป็นสิ่งที่SwapSpacedæmonที่ @ user231695 พูดถึงทำ

โปรดทราบว่า swapoff อาจเป็นการทำงานที่ช้าหากใช้ swapfile อยู่ ข้อมูลทั้งหมดจะต้องถูกถ่ายโอนไปยังพื้นที่สลับอื่น

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