ค้นหาเว็บไซต์

วิธีลดการใช้งาน 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 เพิ่มเติม