จะเพิ่มขนาดสว็อปได้อย่างไร?


17

เมื่อเร็ว ๆ นี้ฉันเพิ่ม ram ลงในเซิร์ฟเวอร์ของฉันและตอนนี้ฉันได้ RAM ทั้งหมด 24GB แล้ว เดิมฉันตั้งค่าระบบปฏิบัติการเพื่อให้มีขนาด swap 2GB

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

2GB ถูกจัดสรรสำหรับการแลกเปลี่ยนในปัจจุบัน แต่การอ่านรอบ ๆ ดูเหมือนว่าจะไม่มาก สำหรับระบบที่มี 24GB ฉันคิดว่าจะจัดสรร swap อย่างน้อย 10GB

คำถามของฉันคือ: ฉันสามารถทำได้ในขณะที่ระบบปฏิบัติการกำลังทำงานอยู่หรือไม่? ฉันต้องติดตั้งใหม่หรือไม่? ฉันใช้ OpenSuse 11.3

คำตอบ:


23

คุณตัดสินใจที่จะสร้างพาร์ติชัน swap แยกเมื่อทำการติดตั้ง คุณไม่สามารถปรับขนาดออนไลน์ได้ - แม้การปรับขนาดออฟไลน์จะใช้เวลานานและมีความเสี่ยงที่จะเกิดความเสียหายกับระบบไฟล์ที่ตามมาของคุณใน / dev / sdc2

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

โพรซีเดอร์ทั่วไปเพื่อเพิ่ม swap partition / file:

  • สร้างพาร์ติชันใหม่ชนิด 82h หรือไฟล์ 8 GB ใหม่โดยใช้ dd if=/dev/zero of=/swapfile bs=1M count=8192
  • เริ่มต้นได้โดยใช้mkswap /swapfileหรือmkswap /dev/sdXX
  • ใช้swapon /swapfileหรือswapon /dev/sdXXตามลำดับเพื่อเปิดใช้พื้นที่สว็อปใหม่ของคุณแบบทันที
  • เพิ่มรายการใน / etc / fstab เพื่อให้แน่ใจว่าพื้นที่สว็อปใหม่ของคุณได้รับการเปิดใช้งานเมื่อรีบูต

พาร์ทิชัน swap ปัจจุบันของคุณยังคงใช้งานอยู่คุณอาจต้องการกำจัดมันเพื่อลดความซับซ้อน เพียงใช้swapoff /dev/sdc1เพื่อปิดการใช้งานในขณะนั้นและลบการอ้างอิง/etc/fstab


@ synticon-dj ขอบคุณ ข้อมูลบนดิสก์ที่การแลกเปลี่ยนเป็นสิ่งสำคัญและฉันมีดิสก์อื่นที่ฉันสามารถใช้ได้ คุณคิดว่าการตั้งค่าดิสก์ที่แตกต่างกันเป็น swap จะส่งผลกระทบต่อประสิทธิภาพการทำงานหรือไม่ ฉันจะต้องสลับ / dev / sdc1 หรือไม่
x-man

มันจะส่งผลกระทบอย่างใดอย่างหนึ่งหรืออื่น ๆ - ถ้า / dev / sdc2 เห็นการใช้งานจำนวนมาก I / O นี้แข่งขันกับ swap I / O หากคุณเพิ่มพาร์ติชันของดิสก์อื่นเป็น swap คุณเพียงแค่เพิ่มโหลด swap I / O ลงในดิสก์นี้ สิ่งที่จะเป็นประโยชน์สำหรับการแลกเปลี่ยนคือสิ่งที่หลีกเลี่ยงไม่ได้ต่อ I / O อื่น ๆ ของคุณบนดิสก์ที่ได้รับผลกระทบ ดังที่ได้กล่าวไปแล้วไม่มีอะไรจะเลวร้ายสำหรับประสิทธิภาพของระบบของคุณเมื่อมีคำขอเพจเอาต์ / เพจอินจำนวนมาก หากคุณเห็นสิ่งนี้แก้ไขได้โดยเพิ่มหน่วยความจำหรือลดขนาดหน่วยความจำของระบบ
the-wabbit

การมีอุปกรณ์สว็อปสองอันในแกนหมุนที่แตกต่างกันจะช่วยให้ประสิทธิภาพการสว็อปของคุณ (เนื่องจากมีดิสก์สองตัวที่สามารถแก้ไขพร้อมกันได้แทนที่จะเป็นหนึ่งเพื่ออ่านและเขียน) แต่เนื่องจากคุณไม่ควรเห็นกิจกรรม I / O สูงเนื่องจากมีการแลกเปลี่ยนอยู่แล้วคุณอาจต้องการใช้อุปกรณ์ / พาร์ติชัน / ไฟล์เพียงไฟล์เดียวเพื่อความสะดวกในการจัดการ
the-wabbit

1
โปรดทราบว่า swapfile จะไม่ทำงานหากคุณใช้ BtrFS สองทำงาน arounds คือ (1) ทำให้อุปกรณ์ย้อนกลับหรือ (2) การใช้btrfs-swapon
Diagon

@ the-wabbit มีวิธีสร้าง/etc/fstabรายการเพื่อให้แน่ใจว่ามีการเปิดใช้งาน swap ใหม่เมื่อรีบูต?
SIGSTACKFAULT

3

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


ฉันอยู่เคียงข้างคุณนี่ส่วนใหญ่จะใช้ swap เพื่อป้องกันการล่มในกรณีที่หน่วยความจำ (ระเหย) หมดลงและทันทีที่คุณเริ่มกด platters เซิร์ฟเวอร์ของคุณกำลังใช้ I / O และ / หรือแบนด์วิดท์ที่ชาญฉลาดถึงแม้ว่า SSD จะช่วยได้ พวกมันช้ากว่าแรมอย่างน้อย 10 เท่าซึ่งปัจจุบันราคาถูกจริงๆ ราคา DDR3 ECC 1333MHz ประมาณ $ 1,000 สำหรับ 64GB (8x8GB)
Shadok

2

คุณต้องแบ่งพาร์ติชันดิสก์ ถ้าฉันจำได้ดีว่าการย้ายจุดเริ่มต้นของพาร์ติชัน Linux ไม่ได้รับการสนับสนุนในบางส่วน แต่คุณสามารถลดขนาดระบบไฟล์และพาร์ติชัน linux ของคุณได้เช่นกันจากนั้นทำการสลับอีกครั้งในตอนท้ายของดิสก์ คุณไม่สามารถทำได้ในขณะที่ระบบออนไลน์

ทางเลือกอื่นคือใช้ไฟล์ขนาดใหญ่เป็น swap (ไม่รู้ว่ามันเป็นความคิดที่ดีหรือไม่)


ไม่ใช่ทุกระบบไฟล์ที่สามารถหดได้แม้ออฟไลน์ น่าเสียดายที่นี่มีผลกับตัวเลือกยอดนิยมเช่น XFS ( xfs.org/index.php/Shrinking_Support )
สเวน

@Stone หมายความว่าติดตั้งระบบปฏิบัติการใหม่หรือไม่
x-man

ไม่มันหมายถึงการสำรองข้อมูล :) การบูต LiveCD ลดขนาดระบบไฟล์ linux ตามด้วยพาร์ติชัน sdc2 และสร้าง swap ใหม่ที่ท้ายดิสก์และรีบูตระบบของคุณ
ศิลา

0

1 ปิดกระบวนการแลกเปลี่ยนทั้งหมด

sudo swapoff -a

2 ปรับขนาดการแลกเปลี่ยน

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3 ทำให้ไฟล์ใช้งานได้เป็น swap

sudo mkswap /swapfile

4 เปิดใช้งานไฟล์สลับ

sudo swapon /swapfile

5 ตรวจสอบจำนวนการแลกเปลี่ยนที่มี

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