ไฟล์ swap ที่เพิ่มขึ้นแบบไดนามิกใน Debian


10

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

ฉันจะสร้าง swap ที่มีขนาดเริ่มต้นเป็น 0 และเติบโตได้อย่างไรตามความต้องการ


@Gilles: ฉันแค่อยากรู้ - ทำไมคุณถึงแก้ไขชื่อ (นอกเหนือจากการพิมพ์ผิด)? มันไม่ต้องการที่จะมีคำถามที่เด่นชัดที่นี่?
rubo77

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

คำตอบ:


3

Swapspace เก่าและไม่มีสีและอาจนำไปสู่ปัญหาหนึ่งวันในระบบที่ทันสมัย ฉันคิดว่าทางออกที่ดีที่สุดสำหรับ 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

ใช้งานได้ แต่โปรดจำไว้ว่าคุณสามารถทำได้ดีกว่าโดยไม่ต้องสลับดูunix.stackexchange.com/a/136133/20661
rubo77

10

SwapSpaceเป็นเครื่องมือที่สร้าง 'ไฟล์ swap แบบไดนามิก' ซึ่งเป็นไปตามข้อกำหนดของระบบปฏิบัติการที่เปลี่ยนขนาดของมัน

ดังนั้นคุณสามารถลืมเกี่ยวกับการสร้างไฟล์ swap เสมือนและเพียงแค่ติดตั้ง“ SwapSpace” และมันจะสร้างไฟล์ให้คุณโดยอัตโนมัติและยังจะปรับขนาดเมื่อจำเป็น

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

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

ติดตั้งด้วย

sudo apt-get install swapspace

และปรับแต่งไฟล์ config ตามความต้องการของคุณ ฉันตั้งค่าต่ำสุดเป็น0บนเครื่อง VM debian ของฉันด้วย HDD 8GB เท่านั้น


นอกจากนี้ฉันยังตั้งค่าswappinessเพื่อ0ลดการใช้พื้นที่ HDD อันมีค่าบน VM ของฉัน:

ในการเปลี่ยนค่าความว่องไวของระบบให้เปิด/etc/sysctl.confเป็นรูท จากนั้นเปลี่ยนหรือเพิ่มบรรทัดนี้ในไฟล์:

vm.swappiness = 0

(รีบูตเพื่อให้การเปลี่ยนแปลงมีผล)


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

แล้วเราจะแน่ใจได้อย่างไรว่าไฟล์ swap นั้นใหญ่พอที่จะเก็บ ram ได้
rubo77

มีไฟล์ swap ขนาดคงที่หนึ่งขนาดเท่า RAM สำหรับหยุดทำงานชั่วคราวจากนั้นใช้ swapspace สำหรับการเปลี่ยนขนาดแบบไดนามิก
Tom Hale

มันใช้งานได้สำหรับฉัน สิ่งนี้มีประโยชน์มากสำหรับดิสก์ SSD ขนาดเล็ก
Adrian Lopez

0

Afaik, swap พาร์ติชั่นใด ๆ ที่คุณจะใช้ fdisk, ต้องการพื้นที่มากกว่า 0, เนื่องจากคุณกำลังปรับเปลี่ยนพื้นที่จากดิสก์ที่มีอยู่แล้วทำการจัดสรรใหม่ในที่อื่น.

อย่างไรก็ตามและการตอบคำถามของคุณคุณสามารถสร้างพาร์ติชันขนาดเล็กกำหนดเป็น swap ภายใต้ fdisk และหลังจากนั้น:

1) ปิดใช้งานการสลับกับswapoff -v 2) ปรับขนาดพาร์ติชั่นด้วยlvresize 3) ฟอร์แมตพาร์ติชั่นด้วยmkswap 4) เปิดใช้งานพื้นที่สว็อปอีกครั้งswapon -v

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

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1

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

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