Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีแก้ปัญหา CPU ใช้งานสูงใน Linux

คอมพิวเตอร์ของคุณค้าง? หรือได้ยินเสียงพัดลม CPU ดังผิดปกติ? มีหลายสาเหตุทำให้ CPU ใช้งานสูงใน Linux แต่นפוץที่สุดคือแอปพลิเคชันที่ทำงานผิดปกติ อ่านต่อเพื่อดูวิธีแก้ไขปัญหา CPU สูงใน Linux

หาตัวกระตุ้น

แอปที่ทำงานผิดปกติสามารถทำให้โปรเซสเซอร์เร็วที่สุดก็ล้มได้ คุณสามารถใช้แอป System Monitor หรือ top ในเทอร์มินัลเพื่อหาแอปพลิเคชันที่มีปัญหา

เปิดเทอร์มินัล พิมพ์ top แล้วกด Enter

โดยค่าเริ่มต้น กระบวนการทั้งหมดจะเรียงตามการใช้ CPU มากที่สุดอยู่ด้านบน หากแอปไหนอยู่ใน 5 อันดับแรกตลอดด้วยอัตราการใช้ CPU สูงกว่าอื่นๆ อย่างมีนัยสำคัญ คุณก็เจอตัวกระตุ้นแล้ว

Renice หรือ Kill แอป

Top รองรับทั้ง renice และ kill ดังนั้นคุณสามารถใช้เครื่องมือเหล่านี้เปลี่ยนลำดับความสำคัญของกระบวนการหรือบังคับหยุดได้

ค่า nice priority ของแอปหมายถึงปริมาณทรัพยากร CPU ที่ได้รับอนุญาตให้ใช้เทียบกับกระบวนการอื่นๆ Nice รับค่า +19 ถึง -20 ค่ายิ่งสูง ความสำคัญยิ่งต่ำ

ใน top กด r แล้วใส่ PID ของแอปที่มีปัญหา ลองเปลี่ยนเป็นค่า "+5" หากไม่ช่วย ลอง "+10", "+15" และสุดท้ายค่าต่ำสุด "+19"

หากแอปไม่ตอบสนอง ควรหยุดทันที กด k ใน top ใส่ PID กด Enter แอปจะหายไป

อัปเดตทุกอย่าง

หากปัญหายังคงทุกครั้งที่รันแอป การอัปเดตอาจแก้ไขได้

ในเทอร์มินัล ใส่:

sudo apt update && sudo apt -y upgrade

หลังจากนั้น ลองรันแอปที่มีปัญหาอีกครั้ง

ลบและติดตั้งแอปใหม่

หายังไม่แก้ อาจมีโอกาสเล็กน้อยว่ามาจากพารามิเตอร์ผิดในการตั้งค่าโปรแกรม การรีเซ็ตกลับสถานะเดิมอาจช่วย

ก่อนอื่น สำรองการตั้งค่าไว้ก่อน เผื่อไม่ใช่สาเหตุและอยากคืนค่าในอนาคต แล้ว purge แอปที่มีปัญหา:

sudo apt purge APP_NAME

ติดตั้งใหม่:

sudo apt update
sudo apt install APP_NAME

สิ่งนี้จะรีเซ็ตแอปกลับสถานะต้นทาง

ย้อนกลับเวอร์ชันก่อนหน้า

หากอัปเกรดไม่ช่วย สามารถย้อนกลับเวอร์ชันเก่าได้ ลองดาวน์เกรดและใช้เวอร์ชันเก่าจนกว่าผู้พัฒนาจะแก้บั๊ก

เพื่อดาวน์เกรด ตรวจสอบเวอร์ชันที่มีอยู่ด้วย:

sudo apt policy APP_NAME

เวอร์ชันที่ติดตั้งอยู่จะมีดอกจัน 3 ดวงข้างเคียง จดเวอร์ชันอื่นที่มี

หมายเหตุ: ก่อนดาวน์เกรด แนะนำให้ purge เวอร์ชันปัจจุบันก่อน จะช่วยกำจัดปัญหาจากการตั้งค่า

ติดตั้งเวอร์ชันเก่าด้วย:

sudo apt install APP_NAME=VERSION

ใช้แอปตัวเลือก

ข้อดีของ Linux คือมีหลายแอปทำสิ่งเดียวกันได้ ดังนั้นถ้าแอปไหนทำให้ CPU สูง คุณควรเปลี่ยนไปใช้ตัวเลือกอื่น

แก้ไขสำหรับ Core Apps ที่ทำให้ CPU สูง

ถ้าสิ่งที่กิน CPU เป็น core app เช่น systemd หรือ Xorg จะทำอย่างไร?

สำหรับ systemd ลองปิดคุณสมบัติและอุปกรณ์รองที่ไม่จำเป็น เช่น joypad, พิมพ์เมาส์

หากอุปกรณ์เป็น joypad, เมาส์ หรือคีย์บอร์ด และใช้ Ubuntu หรือการกระจายที่เข้ากันได้ พิมพ์ xinput ในเทอร์มินัลเพื่อดูอุปกรณ์ที่เชื่อมต่อทั้งหมด เพื่อปิดอุปกรณ์หนึ่ง ใช้:

xinput --disable DEVICE_ID

เพื่อเปิดใหม่ ใช้ enable แทน disable ในคำสั่งด้านบน

สำหรับอุปกรณ์อื่น วิธีแก้ซับซ้อนกว่า ก่อนอื่น ใส่ lsmod ในเทอร์มินัลเพื่อดูโมดูลไดรเวอร์เพิ่มเติมที่เคอร์เนลโหลด หาโมดูลของอุปกรณ์ที่มีปัญหา จดชื่อไว้ แล้วใส่:

sudo nano /etc/modprobe.d/blacklist.conf

ไฟล์นี้คือบล็อกลิสต์โมดูลที่ไม่ควรโหลดตอนบูท อาจมีรายการอยู่แล้ว เลื่อนไปท้ายไฟล์ เพิ่มโมดูลของคุณด้วยไวยากรณ์เดียวกัน:

blacklist MODULE_NAME

บันทึกไฟล์ รีบูท และหวังว่าทุกอย่างจะดีขึ้น

สำหรับ Xorg ลองปิด compositor ของ Window Manager แม้อย่างเป็นทางการ compositor จะออฟโหลดงาน CPU ไป GPU แต่ไม่ได้เสมอไป บางครั้งการเปิด compositing ยังเปิดเอฟเฟกต์หนักหลายอย่างด้วย

บางครั้งไดรเวอร์ GPU ก็ทำให้ CPU สูงได้ Xorg ไม่ค่อยได้ลองกับบางเวอร์ชันของไดรเวอร์ Nvidia หรือ AMD วิธีแก้คืออัปเกรดหรือดาวน์เกรดเวอร์ชันอื่น หรือลองไดรเวอร์โอเพนซอร์สของ GPU แต่อาจขาดฟีเจอร์บางอย่าง

เปลี่ยน Kernel

เคอร์เนล Linux นادرที่จะเป็นสาเหตุ CPU สูง แต่หากลองทุกวิธีไม่ได้ ไม่อะไรเสียหายลอง kernel อื่น

ตามเว็บไซต์อย่างเป็นทางการ เพื่อติดตั้ง Liquorix kernel ยอดนิยมใน Ubuntu ให้เปิดเทอร์มินัลพิมพ์:

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

จะเพิ่ม repository เข้า sources ของ Ubuntu แล้วติดตั้ง kernel เองด้วย:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

รีบูทเพื่อเปิดใช้ kernel ใหม่ และหวังว่า CPU utilization จะกลับสู่ปกติ

หวังว่าวิธีใดวิธีหนึ่งจะช่วยคุณได้ หากไม่ คุณยังลองกำหนด CPU core ให้แอปด้วย taskset ได้อีก หรืออาจถึงเวลาติดตั้ง OS ใหม่หรือเปลี่ยนการกระจาย