27 คะแนน โดย baeba 2025-05-13 | 6 ความคิดเห็น | แชร์ทาง WhatsApp

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 ความคิดเห็น

 
guesswhat 2025-05-14

ใน Asahi Linux จะใช้ zswap และปิดการใช้งาน zram
https://web.archive.org/web/20241126234212/…
https://social.treehouse.systems/@AsahiLinux/113532720695827142

 
wls52 2025-05-13

เพิ่งรู้จัก zram เป็นครั้งแรกเลย เลยลองถาม qwq:32b ว่ามันมีข้อเสียอะไรบ้าง

ทำไมดิสทริบิวชัน Linux ถึงไม่เปิดใช้ zram เป็นค่าเริ่มต้น?

เพราะปัญหาหน่วยความจำไม่พอในระบบสมัยใหม่ลดลงแล้ว: ปัจจุบันพีซีส่วนใหญ่มี RAM อย่างน้อย 4GB เป็นพื้นฐานอยู่แล้ว ในสภาพแวดล้อมที่ปัญหา RAM ไม่พอเกิดขึ้นน้อย ความจำเป็นของ zram ก็ลดลง

ความเสี่ยงด้านภาระ CPU: zram อาจทำให้การใช้ CPU เพิ่มขึ้น จึงไม่ปลอดภัยกับฮาร์ดแวร์ทุกแบบ
ดิสทริบิวชันให้ความสำคัญกับ "สภาพแวดล้อมทั่วไป" เป็นหลัก จึงอาจมองว่าไม่คุ้มที่จะยอมรับโอเวอร์เฮดของ CPU จาก zram

การเปลี่ยนแปลงของรูปแบบการใช้สว็อปพื้นฐาน: ด้วยการแพร่หลายของ SSD ความเร็วของดิสก์สว็อปแบบดั้งเดิมดีขึ้นอย่างมาก
ข้อได้เปรียบด้านความเร็วของ zram จึงไม่ได้โดดเด่นเหมือนในอดีต

ความหลากหลายของสภาพแวดล้อมผู้ใช้: zram มีประสิทธิภาพเฉพาะใน บางสภาพแวดล้อม (เช่น อุปกรณ์สเปกต่ำ) เท่านั้น และสำหรับผู้ใช้ทั่วไปก็แทบไม่มีข้อดีชัดเจน
ดิสทริบิวชันมุ่งเน้น "ความเข้ากันได้สูงสุดด้วยการตั้งค่าให้น้อยที่สุด" จึงไม่เปิดใช้ zram เป็นค่าเริ่มต้น

ความซับซ้อนของการตั้งค่า: ต้องปรับขนาดของ zram, อัลกอริทึมการบีบอัด ฯลฯ ด้วยตนเองจึงจะจูนได้เหมาะสม และผู้ใช้ทั่วไปอาจเข้าใจเรื่องเหล่านี้ได้ยาก

 
secret3056 2025-05-13

ใน macOS ก็มีการใช้การบีบอัดหน่วยความจำอย่างจริงจังเช่นกัน

> ทำไมดิสโทร Linux ถึงไม่เปิดใช้ zram เป็นค่าเริ่มต้น?

Fedora 33 และ openSUSE เปิดใช้ ZRAM เป็นค่าเริ่มต้นตั้งแต่ Aeon เป็นต้นมา
แน่นอนว่าต้องดูเบนช์มาร์กก่อนเสมอ แต่ก็อาจใช้งานได้ดีเกินกว่าที่คิดไว้

 
hoonix 2025-05-13

zswap ใช้งานได้ดีเลยครับ บน macOS ก็มีฟังก์ชันคล้ายกันที่เปิดใช้งานมาเป็นค่าเริ่มต้นอยู่แล้วด้วย และในสภาพแวดล้อมที่ทรัพยากรมีจำกัดอย่างเช่นแล็ปท็อป เวลาจะเปิดเบราว์เซอร์หรือเปิดแอปหลาย ๆ ตัวก็มักทำงานได้ดีครับ แต่ก็อย่างที่คุณพูดไว้ มีจุดแลกเปลี่ยนด้าน CPU อยู่ ดังนั้นก็น่าจะส่งผลกับแบตเตอรี่เหมือนกันครับ

 
fanotify 2025-05-13

zram กับ zswap ต่างกันไหมครับ?
sudo apt install zram-tools
systemctl enable zramswap
ตอนนี้ผมใช้งานแบบนี้อยู่ แต่ไม่แน่ใจว่าสิ่งนี้คือ zswap หรือเปล่า..

 
hoonix 2025-05-13

ชื่อเรียกทางเทคนิคค่อนข้างชวนสับสนพอสมควร zram เป็นฟีเจอร์ของเคอร์เนลที่สร้างบล็อกดีไวซ์ซึ่งมีความสามารถในการบีบอัดอัตโนมัติ กล่าวคือเป็นเหมือนสตอเรจชนิดหนึ่ง จากนั้นถ้าเราสร้างและใช้งาน swap file ปกติที่เราคุ้นเคยบนสตอเรจนั้น ก็จะกลายเป็นฟังก์ชันคล้าย swap บน RAM พร้อมการบีบอัด ดูเหมือนว่าเซอร์วิส zramswap จะทำหน้าที่ลักษณะนั้น แต่ต่อมาเมื่อเห็นว่ากรณีใช้งานนี้มีประโยชน์ zram+swap จึงถูกรวมเข้าเป็นฟีเจอร์ของเคอร์เนลโดยตรง นั่นก็คือ zswap นั่นเอง zswap สามารถเปิดใช้งานได้บนลินุกซ์ส่วนใหญ่ด้วยคำสั่งเพียงอย่างเดียวโดยไม่ต้องติดตั้งเพิ่มเติม (อ้างอิง https://wiki.archlinux.org/title/Zswap)