วิธีลดการใช้ RAM และ CPU บน Linux
(tecmint.com)Linux เป็นระบบปฏิบัติการที่มีประสิทธิภาพ แต่การใช้ RAM และ CPU มากเกินไปอาจทำให้ประสิทธิภาพลดลงและทำให้ระบบไม่เสถียรได้
บทความนี้อธิบายวิธีปรับแต่งที่ใช้งานได้จริง เช่น เครื่องมือมอนิเตอร์ การจัดการโปรเซส และการปรับจูนเคอร์เนล
1. ค้นหาโปรเซสที่ใช้ทรัพยากรมาก
ใช้คำสั่ง top, htop, ps เพื่อตรวจสอบโปรเซสที่ใช้ CPU และหน่วยความจำสูง
จดจำ PID ไว้เพื่อนำไปใช้ในการจัดการขั้นถัดไป
# top
top # P: เรียงตาม CPU, M: เรียงตามหน่วยความจำ
# ติดตั้งและรัน htop
sudo apt install htop
htop # F6: เรียงลำดับ, F9: จบโปรเซส
# คำสั่ง ps
ps aux --sort=-%mem | head
ps aux --sort=-%cpu | head
2. ปิดโปรเซสที่ไม่จำเป็น
สามารถใช้คำสั่ง kill, kill -9, pkill เพื่อปิดโปรเซสที่ใช้ทรัพยากรมากเกินไปได้
หากโปรเซสไม่ตอบสนอง สามารถบังคับปิดหรือปิดหลายโปรเซสพร้อมกันตามชื่อได้
kill PID
kill -9 PID
pkill process_name
3. ปรับแต่งโปรแกรมเริ่มอัตโนมัติ
ใช้ systemctl เพื่อตรวจสอบบริการที่ถูกรันอัตโนมัติระหว่างบูต และปิดการใช้งานรายการที่ไม่จำเป็น
ในสภาพแวดล้อม GUI สามารถใช้ตัวจัดการแอปพลิเคชันเริ่มต้นได้
systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable service_name
4. ปรับค่า swappiness
swappiness คือค่าตั้งที่ใช้ควบคุมความถี่ในการใช้หน่วยความจำสว็อป
การลดค่าจากค่าเริ่มต้น 60 ลงเป็น 10 จะช่วยให้ระบบให้ความสำคัญกับการใช้ RAM มากขึ้น และอาจช่วยเพิ่มประสิทธิภาพได้
cat /proc/sys/vm/swappiness
sudo nano /etc/sysctl.conf # เพิ่ม vm.swappiness=10
sudo sysctl -p
5. ใช้เดสก์ท็อปเอนไวรอนเมนต์แบบเบา
แทนที่จะใช้ GNOME หรือ KDE สามารถใช้เดสก์ท็อปเอนไวรอนเมนต์ที่เบากว่า เช่น XFCE, LXDE, MATE เพื่อประหยัดทรัพยากรได้
เช่นเดียวกัน แอปต่าง ๆ ก็สามารถเปลี่ยนเป็นเอดิเตอร์ เบราว์เซอร์ และตัวจัดการไฟล์ที่เบากว่าได้
6. ล้างแคชและบัฟเฟอร์ด้วยตนเอง
Linux ใช้ RAM เป็นแคชเพื่อเพิ่มประสิทธิภาพ แต่หากจำเป็นก็สามารถล้างด้วยตนเองได้
อย่างไรก็ตาม ควรระวังเพราะอาจทำให้ประสิทธิภาพลดลงชั่วคราว
sudo sync; sudo sysctl -w vm.drop_caches=3
7. ปรับแต่งพารามิเตอร์ของเคอร์เนล
สามารถปรับพารามิเตอร์ของเคอร์เนล เช่น ความถี่ในการเขียนดิสก์หรือปริมาณ RAM ขั้นต่ำที่ต้องสำรองไว้ เพื่อให้การจัดการทรัพยากรมีประสิทธิภาพมากขึ้น
# ตัวอย่างรายการที่เพิ่มใน /etc/sysctl.conf
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0
8. ใช้ ZRAM
ZRAM เป็นฟีเจอร์ที่ใช้หน่วยความจำแบบบีบอัด จึงช่วยประหยัด RAM ได้อย่างมีประสิทธิภาพ
หากตั้งค่า Zswap ร่วมกัน ก็จะเปิดใช้งานสว็อปแบบบีบอัดด้วย
sudo apt install zram-config
sudo systemctl start zram-config
# เพิ่มการตั้งค่า GRUB
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"
sudo update-grub
sudo reboot
9. จำกัดการใช้ CPU ของโปรเซส
ใช้คำสั่ง cpulimit เพื่อจำกัดอัตราการใช้ CPU ของโปรเซสเฉพาะได้
และยังสามารถตั้งค่าจำกัดแบบถาวรผ่าน systemd ได้เช่นกัน
sudo apt install cpulimit
sudo cpulimit -e firefox -l 30 # จำกัด firefox ไว้ที่ 30%
# ตั้งค่าด้วย systemd
sudo systemctl set-property service_name CPUQuota=30%
10. อัปเดตระบบเป็นประจำ
อัปเดตล่าสุดช่วยปรับปรุงประสิทธิภาพและแก้ไขบั๊ก จึงควรดำเนินการอย่างสม่ำเสมอ
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # RHEL/CentOS
6 ความคิดเห็น
ใน Asahi Linux จะใช้ zswap และปิดการใช้งาน zram
https://web.archive.org/web/20241126234212/…
https://social.treehouse.systems/@AsahiLinux/113532720695827142
เพิ่งรู้จัก
zramเป็นครั้งแรกเลย เลยลองถาม qwq:32b ว่ามันมีข้อเสียอะไรบ้างทำไมดิสทริบิวชัน Linux ถึงไม่เปิดใช้
zramเป็นค่าเริ่มต้น?เพราะปัญหาหน่วยความจำไม่พอในระบบสมัยใหม่ลดลงแล้ว: ปัจจุบันพีซีส่วนใหญ่มี RAM อย่างน้อย 4GB เป็นพื้นฐานอยู่แล้ว ในสภาพแวดล้อมที่ปัญหา RAM ไม่พอเกิดขึ้นน้อย ความจำเป็นของ
zramก็ลดลงความเสี่ยงด้านภาระ CPU:
zramอาจทำให้การใช้ CPU เพิ่มขึ้น จึงไม่ปลอดภัยกับฮาร์ดแวร์ทุกแบบดิสทริบิวชันให้ความสำคัญกับ "สภาพแวดล้อมทั่วไป" เป็นหลัก จึงอาจมองว่าไม่คุ้มที่จะยอมรับโอเวอร์เฮดของ CPU จาก
zramการเปลี่ยนแปลงของรูปแบบการใช้สว็อปพื้นฐาน: ด้วยการแพร่หลายของ SSD ความเร็วของดิสก์สว็อปแบบดั้งเดิมดีขึ้นอย่างมาก
ข้อได้เปรียบด้านความเร็วของ
zramจึงไม่ได้โดดเด่นเหมือนในอดีตความหลากหลายของสภาพแวดล้อมผู้ใช้:
zramมีประสิทธิภาพเฉพาะใน บางสภาพแวดล้อม (เช่น อุปกรณ์สเปกต่ำ) เท่านั้น และสำหรับผู้ใช้ทั่วไปก็แทบไม่มีข้อดีชัดเจนดิสทริบิวชันมุ่งเน้น "ความเข้ากันได้สูงสุดด้วยการตั้งค่าให้น้อยที่สุด" จึงไม่เปิดใช้
zramเป็นค่าเริ่มต้นความซับซ้อนของการตั้งค่า: ต้องปรับขนาดของ
zram, อัลกอริทึมการบีบอัด ฯลฯ ด้วยตนเองจึงจะจูนได้เหมาะสม และผู้ใช้ทั่วไปอาจเข้าใจเรื่องเหล่านี้ได้ยากใน macOS ก็มีการใช้การบีบอัดหน่วยความจำอย่างจริงจังเช่นกัน
> ทำไมดิสโทร Linux ถึงไม่เปิดใช้ zram เป็นค่าเริ่มต้น?
Fedora 33 และ openSUSE เปิดใช้ ZRAM เป็นค่าเริ่มต้นตั้งแต่ Aeon เป็นต้นมา
แน่นอนว่าต้องดูเบนช์มาร์กก่อนเสมอ แต่ก็อาจใช้งานได้ดีเกินกว่าที่คิดไว้
zswapใช้งานได้ดีเลยครับ บน macOS ก็มีฟังก์ชันคล้ายกันที่เปิดใช้งานมาเป็นค่าเริ่มต้นอยู่แล้วด้วย และในสภาพแวดล้อมที่ทรัพยากรมีจำกัดอย่างเช่นแล็ปท็อป เวลาจะเปิดเบราว์เซอร์หรือเปิดแอปหลาย ๆ ตัวก็มักทำงานได้ดีครับ แต่ก็อย่างที่คุณพูดไว้ มีจุดแลกเปลี่ยนด้าน CPU อยู่ ดังนั้นก็น่าจะส่งผลกับแบตเตอรี่เหมือนกันครับzramกับzswapต่างกันไหมครับ?sudo apt install zram-toolssystemctl enable zramswapตอนนี้ผมใช้งานแบบนี้อยู่ แต่ไม่แน่ใจว่าสิ่งนี้คือ
zswapหรือเปล่า..ชื่อเรียกทางเทคนิคค่อนข้างชวนสับสนพอสมควร zram เป็นฟีเจอร์ของเคอร์เนลที่สร้างบล็อกดีไวซ์ซึ่งมีความสามารถในการบีบอัดอัตโนมัติ กล่าวคือเป็นเหมือนสตอเรจชนิดหนึ่ง จากนั้นถ้าเราสร้างและใช้งาน swap file ปกติที่เราคุ้นเคยบนสตอเรจนั้น ก็จะกลายเป็นฟังก์ชันคล้าย swap บน RAM พร้อมการบีบอัด ดูเหมือนว่าเซอร์วิส zramswap จะทำหน้าที่ลักษณะนั้น แต่ต่อมาเมื่อเห็นว่ากรณีใช้งานนี้มีประโยชน์
zram+swapจึงถูกรวมเข้าเป็นฟีเจอร์ของเคอร์เนลโดยตรง นั่นก็คือ zswap นั่นเอง zswap สามารถเปิดใช้งานได้บนลินุกซ์ส่วนใหญ่ด้วยคำสั่งเพียงอย่างเดียวโดยไม่ต้องติดตั้งเพิ่มเติม (อ้างอิง https://wiki.archlinux.org/title/Zswap)