วิธีลดการใช้งาน RAM และ CPU สูงบน Linux
Linux เป็นระบบปฏิบัติการที่ทรงพลังและมีประสิทธิภาพ แต่การใช้งาน RAM และ CPU ที่สูงอาจทําให้ประสิทธิภาพลดลง ทําให้แอปพลิเคชันช้าลง และแม้กระทั่งทําให้ระบบขัดข้องเมื่อคุณใช้งานเซิร์ฟเวอร์ เวิร์กสเตชัน หรือระบบฝังตัว และการเพิ่มประสิทธิภาพการใช้ทรัพยากรเป็นสิ่งสําคัญสําหรับการทํางานที่ราบรื่น
ในคู่มือนี้ เราจะสํารวจวิธีการปฏิบัติเพื่อลดการใช้งาน RAM และ CPU บน Linux เราจะครอบคลุมเครื่องมือตรวจสอบ การจัดการกระบวนการ การปรับแต่งเคอร์เนล และเทคนิคการเพิ่มประสิทธิภาพระบบเพื่อให้ระบบของคุณทํางานได้อย่างมีประสิทธิภาพ
1. ระบุกระบวนการที่หิวทรัพยากร
ขั้นตอนแรกในการลดการใช้ RAM และ CPU คือการระบุว่ากระบวนการใดใช้ทรัพยากรมากที่สุดโดยใช้เครื่องมือบรรทัดคําสั่งหลายตัว:
a. การใช้คําสั่ง top
คําสั่ง top ให้มุมมองแบบเรียลไทม์ของกระบวนการระบบ รวมถึงการใช้งาน CPU และหน่วยความจํา
top
- กด
P
เพื่อจัดเรียงกระบวนการตามการใช้งาน CPU - กด
M
เพื่อจัดเรียงกระบวนการตามการใช้หน่วยความจํา - มองหากระบวนการที่ใช้ทรัพยากรมากเกินไปและจดบันทึกรหัสกระบวนการ (PID)
b. การใช้คําสั่ง htop
HTOP เป็นโปรแกรมดูกระบวนการแบบโต้ตอบที่มีส่วนต่อประสานที่ใช้งานง่ายกว่า TOP
ในการติดตั้ง htop บน Linux ให้ใช้คําสั่งที่เหมาะสมต่อไปนี้สําหรับการแจกจ่าย Linux เฉพาะของคุณ
sudo apt install htop [On Debian, Ubuntu and Mint]
sudo dnf install htop [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/htop [On Gentoo Linux]
sudo apk add htop [On Alpine Linux]
sudo pacman -S htop [On Arch Linux]
sudo zypper install htop [On OpenSUSE]
sudo pkg install htop [On FreeBSD]
เรียกใช้ htop
เพื่อดูและจัดการกระบวนการได้อย่างง่ายดาย
htop
- กด
F6
เพื่อจัดเรียงกระบวนการตามการใช้งาน CPU หรือหน่วยความจํา - กด
F9
เพื่อฆ่ากระบวนการที่เลือก
ค. การใช้คําสั่ง ps
สามารถใช้คําสั่ง ps เพื่อแสดงรายการกระบวนการและการใช้ทรัพยากร
ps aux --sort=-%mem | head # Top memory-consuming processes
ps aux --sort=-%cpu | head # Top CPU-consuming processes
2. ฆ่ากระบวนการที่ไม่จําเป็น
เมื่อคุณระบุกระบวนการที่ใช้ทรัพยากรแล้ว คุณสามารถยุติกระบวนการเหล่านั้นเพื่อเพิ่มทรัพยากรได้โดยใช้คําสั่ง kill ตามด้วย PID
kill PID
หากกระบวนการไม่สิ้นสุด ให้ใช้แฟล็ก -9
เพื่อบังคับฆ่า
kill -9 PID
อีกวิธีหนึ่งคือใช้คําสั่ง pkill เพื่อฆ่ากระบวนการตามชื่อ
pkill process_name
3. เพิ่มประสิทธิภาพแอปพลิเคชันเริ่มต้น
แอปพลิเคชันและบริการจํานวนมากเริ่มต้นโดยอัตโนมัติเมื่อบูตโดยใช้ทรัพยากรระบบอันมีค่า
ในการจัดการแอปพลิเคชันเริ่มต้น:
a. การใช้คําสั่ง systemctl
แสดงรายการบริการที่เปิดใช้งานทั้งหมดโดยใช้คําสั่ง systemctl
systemctl list-unit-files --type=service | grep enabled
ปิดใช้งานบริการที่ไม่จําเป็น
sudo systemctl disable service_name
b. การใช้เครื่องมือ GUI
หากคุณใช้สภาพแวดล้อมเดสก์ท็อป เช่น GNOME หรือ KDE ให้ใช้ตัวจัดการแอปพลิเคชันเริ่มต้นในตัวเพื่อปิดใช้งานโปรแกรมที่ไม่จําเป็น
4. ลดการแลกเปลี่ยน (เพิ่มประสิทธิภาพการใช้การแลกเปลี่ยน)
การแลกเปลี่ยนจะควบคุมความถี่ที่ระบบใช้พื้นที่สลับแทน RAM ค่าการแลกเปลี่ยนที่สูงอาจนําไปสู่การแลกเปลี่ยนมากเกินไปทําให้ระบบของคุณช้าลง
วิธีตรวจสอบค่าการแลกเปลี่ยนปัจจุบัน:
cat /proc/sys/vm/swappiness
ค่าเริ่มต้นมักจะเป็น 60
แต่เพื่อลดการแลกเปลี่ยน คุณจําเป็นต้องแก้ไขไฟล์ /etc/sysctl.conf
sudo nano /etc/sysctl.conf
เพิ่มหรือแก้ไขบรรทัดต่อไปนี้
vm.swappiness=10
บันทึกไฟล์และใช้การเปลี่ยนแปลง
sudo sysctl -p
5. ใช้ทางเลือกเดสก์ท็อปน้ําหนักเบา
สภาพแวดล้อมเดสก์ท็อปและแอปพลิเคชันที่หนักหน่วงอาจทําให้ทรัพยากรของระบบตึงเครียดได้
ก. สภาพแวดล้อมเดสก์ท็อป
แทนที่ GNOME หรือ KDE ด้วยตัวเลือกที่เบากว่า เช่น XFCE, LXDE หรือ MATE
b. โปรแกรม ประยุกต์
ใช้แอพพลิเคชั่นที่มีน้ําหนักเบา เช่น:
- โปรแกรมแก้ไขข้อความ: แทนที่ LibreOffice ด้วย AbiWord หรือแผ่นรองเมาส์
- เว็บเบราว์เซอร์: ใช้ Firefox ที่มีส่วนขยายน้อยลงหรือเปลี่ยนไปใช้เบราว์เซอร์ที่มีน้ําหนักเบา เช่น Midori
- ตัวจัดการไฟล์: แทนที่ Nautilus ด้วย Thunar หรือ PCManFM
6. ล้างแคชและบัฟเฟอร์
Linux ใช้ RAM เพื่อแคชไฟล์และปรับปรุงประสิทธิภาพ อย่างไรก็ตาม คุณสามารถล้างแคชได้ด้วยตนเองหากจําเป็น:
sudo sync; sudo sysctl -w vm.drop_caches=3
คําสั่งนี้จะล้าง pagecache, dentries และ inodes ใช้อย่างระมัดระวัง เนื่องจากอาจทําให้การเข้าถึงไฟล์ช้าลงชั่วคราว
7. เพิ่มประสิทธิภาพพารามิเตอร์เคอร์เนล
ในการปรับแต่งหรือปรับพารามิเตอร์เคอร์เนลให้เหมาะสม คุณจําเป็นต้องแก้ไขไฟล์ /etc/sysctl.conf
และเพิ่มพารามิเตอร์ต่อไปนี้หรือปรับพารามิเตอร์เพื่อปรับปรุงประสิทธิภาพของระบบ
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0
การตั้งค่าเหล่านี้จะควบคุมความถี่ในการเขียนข้อมูลสกปรกลงในดิสก์ ซึ่งจะช่วยลดการใช้ RAM
8. ลดการใช้หน่วยความจําด้วย ZRAM
Zram และ Zswap เป็นเทคโนโลยีหน่วยความจําบีบอัดที่สามารถลดการใช้ RAM ได้
sudo apt install zram-config
sudo systemctl start zram-config
เมื่อติดตั้งแล้ว คุณต้องแก้ไขไฟล์การกําหนดค่า GRUB (/etc/default/grub
) และเพิ่ม:
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"
อัปเดต GRUB และรีบูต:
sudo update-grub
sudo reboot
9. จํากัดการใช้งาน CPU ของกระบวนการ
หากกระบวนการใช้ซีพียู ให้จํากัดการใช้งานโดยใช้ cpulimit
sudo apt install cpulimit # Debian/Ubuntu
sudo yum install cpulimit # RHEL/CentOS
จํากัดกระบวนการ (เช่น firefox) ให้ใช้งาน CPU ได้ที่ 30%
sudo cpulimit -e firefox -l 30
หากต้องการจํากัดกระบวนการอย่างถาวร ให้ใช้ systemd
sudo systemctl set-property <service_name> CPUQuota=30%
10. อัปเดตระบบของคุณเป็นประจํา
การอัปเดตระบบของคุณอยู่เสมอจะช่วยให้คุณได้รับการปรับปรุงประสิทธิภาพล่าสุดและการแก้ไขข้อบกพร่อง
sudo apt update && sudo apt upgrade # For Debian/Ubuntu
sudo yum update # For CentOS/RHEL
เคล็ดลับการแก้ไขปัญหา
- หากกระบวนการไม่สิ้นสุดด้วย
kill
ให้ใช้kill -9 PID
เพื่อบังคับฆ่า - หาก
zram
หรือzswap
ไม่ทํางาน ให้ตรวจสอบให้แน่ใจว่าเคอร์เนลของคุณรองรับคุณสมบัติเหล่านี้ - หากประสิทธิภาพของระบบไม่ดีขึ้น ให้พิจารณาอัปเกรดฮาร์ดแวร์ของคุณ (เช่น เพิ่ม RAM หรือเปลี่ยนไปใช้ SSD)
บทสรุป
การเพิ่มประสิทธิภาพการใช้งาน RAM และ CPU บน Linux เป็นการผสมผสานระหว่างการตรวจสอบ การปรับแต่ง และการอัปเกรดฮาร์ดแวร์เป็นครั้งคราว ด้วยการระบุกระบวนการที่ใช้ทรัพยากร ปรับการตั้งค่าระบบ และเลือกใช้ทางเลือกที่มีน้ําหนักเบา คุณจะสามารถเติมชีวิตใหม่ให้กับระบบของคุณได้
คุณได้ลองใช้เทคนิคการเพิ่มประสิทธิภาพเหล่านี้แล้วหรือยัง? แบ่งปันประสบการณ์ของคุณในความคิดเห็นด้านล่างหรือไปที่ linux-console.net สําหรับคําแนะนําและบทช่วยสอน Linux เพิ่มเติม