CentOS เพิ่ม/ลบหน่วยความจำเสมือน SWAP swap files & partitions ด้วยตนเองอย่างไร?

CentOSจะเพิ่ม / ลบไฟล์ SWAP swap และพาร์ติชั่นหน่วยความจำเสมือนด้วยตนเองได้อย่างไร?

พาร์ติชั่น swap คืออะไร? SWAP คือพื้นที่สลับ และบทบาทของพื้นที่ SWAP คือเมื่อลินุกซ์เมื่อหน่วยความจำกายภาพของระบบไม่เพียงพอ ส่วนหนึ่งของหน่วยความจำกายภาพจะถูกปล่อยออกมาเพื่อเสริมหน่วยความจำกายภาพที่ไม่เพียงพอ เพื่อให้การทำงานในปัจจุบัน软件การใช้โปรแกรม

ประโยชน์ของการใช้ Swap สำหรับพาร์ติชั่นสว็อป

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

พาร์ติชั่น swap ควรมีขนาดเท่าไหร่?

ขนาดของพาร์ติชั่น SWAP swap ถูกกำหนดตามขนาดของหน่วยความจำระบบจริงและซอฟต์แวร์ที่ใช้

คำแนะนำสำหรับ CentOS และ RHEL6 มีดังนี้ โปรดทำการปรับให้เหมาะสมตามสถานการณ์เฉพาะ:

  • RAM 4GB ต้องการพื้นที่สว็อปอย่างน้อย 2GB
  • RAM 4GB ถึง 16GB ต้องการพื้นที่สว็อปอย่างน้อย 4GB
  • RAM 16GB ถึง 64GB ต้องการพื้นที่สว็อปอย่างน้อย 8GB
  • RAM 64GB ถึง 256GB ต้องการพื้นที่สว็อปอย่างน้อย 16GB

ดูหน่วยความจำปัจจุบันและขนาดพื้นที่สว็อป (หน่วยเริ่มต้นคือ k, -m หน่วยคือ M):
free -m

ผลลัพธ์ที่แสดงมีดังนี้ (ตัวอย่าง):
แคชบัฟเฟอร์ที่ใช้ร่วมกันฟรีทั้งหมดที่ใช้แล้ว
หน่วยความจำ: 498 347 151 0 101 137
-/+ บัฟเฟอร์/แคช: 108 390
สวอป: 0 0 0

หาก Swap เป็น 0 แสดงว่าไม่มี และคุณต้องเพิ่มพาร์ติชั่น SWAP swap ด้วยตนเอง

(หมายเหตุ: VPS ที่มีสถาปัตยกรรม OPENVZ ไม่รองรับการเพิ่มพาร์ติชั่น SWAP swap ด้วยตนเอง)

การเพิ่มพื้นที่สว็อป SWAP มี 2 ประเภท:

  • 1. เพิ่มพาร์ติชั่น SWAP swap
  • 2. เพิ่มไฟล์สลับ SWAP

ขอแนะนำให้เพิ่มพาร์ติชั่น SWAP swap หากมีเนื้อที่ว่างเหลือไม่มาก ให้เพิ่มไฟล์ swap

ดูข้อมูล SWAP (รวมถึงไฟล์ SWAP swap และรายละเอียดพาร์ติชั่น):

swapon -s
หรือ
cat /proc/swaps

(หากไม่มีค่า SWAP แสดง แสดงว่ายังไม่ได้เพิ่มพื้นที่ SWAP)

นี่คือตัวอย่างวิธีการสร้างไฟล์ SWAP:

1. สร้างการสลับ 1GB

dd if=/dev/zero of=/home/swap bs=1k count=1024k
mkswap /swapfile
swapon /swapfile
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

2. สร้างการสลับ 2GB

dd if=/dev/zero of=/home/swap bs=1k count=2048k
mkswap /home/swap
swapon /home/swap
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

(เสร็จสิ้น)

ต่อไปนี้เป็นข้อมูลอ้างอิงโดยละเอียดเพิ่มเติม:

1. ใช้คำสั่ง dd เพื่อสร้างไฟล์สลับ

หน่วยความจำ 1G
dd if=/dev/zero of=/home/swap bs=1024 count=1024000

หน่วยความจำ 2G:
dd if=/dev/zero of=/home/swap bs=1k count=2048k

ด้วยวิธีนี้ ไฟล์ /home/swap จะถูกสร้างขึ้น ขนาด 1024000 คือ 1G และขนาด 2048k คือ 2G

2. สร้างไฟล์ในรูปแบบสลับ:
mkswap /home/swap

3. ใช้คำสั่ง swapon เพื่อเมาต์พาร์ติชั่นไฟล์กับพาร์ติชั่นสว็อป
/sbin/swapon /home/swap

ลองดูด้วยคำสั่ง free -m และพบว่ามีไฟล์ swap อยู่แล้ว
free -m

แต่หลังจากรีสตาร์ทระบบ ไฟล์ swap จะกลายเป็น 0 อีกครั้ง

4. เพื่อป้องกันไม่ให้ไฟล์ swap กลายเป็น 0 หลังจากรีสตาร์ท ให้แก้ไขไฟล์ /etc/fstab

ในตอนท้าย (บรรทัดสุดท้าย) ของไฟล์ /etc/fstab ให้เพิ่ม:
/home/swap swap swap default 0 0

(ดังนั้นแม้ว่าระบบจะรีสตาร์ท ไฟล์ swap ก็ยังมีค่าอยู่)

หรือใช้คำสั่งต่อไปนี้โดยตรงเพื่อเพิ่มคำสั่งรีสตาร์ทการกำหนดค่าการเมานท์อัตโนมัติ:
echo "/home/swap swap swap default 0 0
" | sudo tee -a /etc/fstab

VPS ใช้พื้นที่แลกเปลี่ยน SWAP ภายใต้สถานการณ์ใด

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

[รูท@ ~]# cat /proc/sys/vm/swappiness
60
(ค่าเริ่มต้นของค่านี้คือ 60)

  • swappiness=0 หมายถึงการใช้หน่วยความจำกายภาพสูงสุด ตามด้วยพื้นที่สำหรับการแลกเปลี่ยน SWAP
  • swappiness=100 แสดงว่ามีการใช้งานพื้นที่สว็อป และข้อมูลในหน่วยความจำจะถูกโอนไปยังพื้นที่สว็อปในเวลา

จะตั้งค่าพารามิเตอร์ swappiness ได้อย่างไร?

การปรับเปลี่ยนชั่วคราว:

[รูท@ ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[รูท@ ~]# cat /proc/sys/vm/swappiness
10
(การปรับเปลี่ยนชั่วคราวนี้มีผล แต่หากระบบเริ่มต้นใหม่ จะกลับไปเป็นค่าเริ่มต้น 60)

การปรับเปลี่ยนอย่างถาวร:

เพิ่มพารามิเตอร์ต่อไปนี้ในไฟล์ /etc/sysctl.conf:
vm.swappiness=10

(บันทึกจะมีผลหลังจากรีสตาร์ท)

หรือป้อนคำสั่งโดยตรง:
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

ลบไฟล์สลับ SWAP

1. หยุดพาร์ติชั่นสว็อปก่อน

/sbin/swapoff /home/swap

2. ลบไฟล์พาร์ติชั่นสว็อป

rm -rf /home/swap

3. ลบคำสั่งกำหนดค่าการต่อเชื่อมอัตโนมัติ

vi /etc/fstab

ลบบรรทัดนี้:

/home/swap swap swap default 0 0

(การดำเนินการนี้จะลบไฟล์สลับที่เพิ่มด้วยตนเอง)

ข้อควรระวัง:

  • 1. เฉพาะผู้ใช้รูทเท่านั้นที่สามารถเพิ่มหรือลบการดำเนินการสลับได้
  • 2. ดูเหมือนว่าพาร์ติชั่นสว็อปที่จัดสรรไว้เมื่อติดตั้งระบบ VPS จะไม่สามารถลบได้
  • 3. โดยทั่วไปพาร์ติชั่นสว็อปจะมีขนาดเป็นสองเท่าของหน่วยความจำ

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "CentOS วิธีเพิ่ม/ลบหน่วยความจำเสมือน SWAP swap files & partitions ด้วยตนเอง? , ช่วยคุณ.

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-158.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注