Máy tính của bạn có bị treo không? Hay bạn bắt đầu nghe tiếng quạt CPU rít lên từ máy? Có nhiều lý do dẫn đến sử dụng CPU cao trong Linux, nhưng nguyên nhân phổ biến nhất là một ứng dụng hoạt động bất thường. Đọc tiếp để biết cách khắc phục vấn đề CPU cao trong Linux.
Tìm ra thủ phạm
Một ứng dụng bị lỗi có thể khiến ngay cả bộ xử lý nhanh nhất cũng phải "quỳ gối". Bạn có thể dùng ứng dụng System Monitor hoặc lệnh top trong Terminal để tìm ứng dụng gây sự.
Mở terminal, gõ top và nhấn Enter.
Mặc định, tất cả tiến trình được sắp xếp theo mức sử dụng CPU, những tiến trình tốn nhiều CPU nhất nằm ở trên cùng. Nếu một ứng dụng luôn nằm trong top 5 với tỷ lệ sử dụng CPU cao đáng kể so với các tiến trình khác, bạn đã tìm thấy thủ phạm.
Đổi độ ưu tiên (renice) hoặc kill ứng dụng
Top hỗ trợ cả renice và kill, nên bạn có thể dùng chúng để thay đổi độ ưu tiên của tiến trình bất kỳ hoặc buộc dừng nó.
Độ ưu tiên nice của ứng dụng đề cập đến lượng tài nguyên CPU được phép dùng so với các tiến trình khác đang chạy. Nice chấp nhận giá trị từ +19 đến -20. Số càng lớn, độ ưu tiên càng thấp.
Trong top, nhấn r và nhập PID của ứng dụng gây sự. Thử đổi thành "+5", nếu không giúp được thì thử "+10", "+15", và cuối cùng là độ ưu tiên thấp nhất "+19".
Nếu ứng dụng không phản hồi, bạn nên dừng nó ngay. Nhấn k trong top, nhập PID, nhấn Enter, và ứng dụng sẽ biến mất.
Cập nhật mọi thứ
Nếu vấn đề lặp lại mỗi khi chạy ứng dụng đó, cập nhật ứng dụng có thể khắc phục.
Trong terminal, nhập:
sudo apt update && sudo apt -y upgrade
Sau đó, thử chạy lại ứng dụng gây sự.
Gỡ và cài lại ứng dụng
Nếu vẫn không khắc phục, có khả năng nhỏ lỗi do tham số sai trong cấu hình chương trình. Khôi phục về trạng thái ban đầu có thể giúp.
Trước hết, sao lưu cấu hình phòng khi không phải là nguyên nhân và bạn muốn khôi phục sau. Sau đó, gỡ hoàn toàn (purge) ứng dụng gây sự:
sudo apt purge TÊN_ỨNG_DỤNG
Cài lại ứng dụng:
sudo apt update && sudo apt install TÊN_ỨNG_DỤNG
Thao tác này sẽ đưa ứng dụng về trạng thái ban đầu.
Quay lại phiên bản trước
Nếu nâng cấp không giải quyết được, bạn có thể hạ cấp về phiên bản trước. Thử dùng phiên bản cũ hơn, ít nhất cho đến khi nhà phát triển sửa lỗi.
Để hạ cấp, trước tiên kiểm tra các phiên bản khả dụng bằng lệnh:
sudo apt policy TÊN_ỨNG_DỤNG
Phiên bản đang cài sẽ có ba dấu sao bên cạnh. Ghi nhớ các phiên bản khác.
Trước khi hạ cấp, chúng tôi建议你 gỡ phiên bản hiện tại. Điều này sẽ loại bỏ các vấn đề liên quan đến cấu hình.
Cài phiên bản cũ hơn với:
sudo apt install TÊN_ỨNG_DỤNG=PHIÊN_BẢN
Dùng ứng dụng thay thế
Điều tốt về Linux là có nhiều ứng dụng làm cùng một việc. Vì vậy, nếu một ứng dụng gây CPU cao, bạn có thể và nên thay thế bằng ứng dụng khác.
Khắc phục cho ứng dụng cốt lõi gây CPU cao
Điều gì xảy ra nếu thứ ăn CPU là ứng dụng cốt lõi như systemd hay Xorg?
Đối với systemd, hãy thử tắt các tính năng không cần thiết và thiết bị phụ như tay cầm game, máy in.
Nếu thiết bị là tay cầm, chuột, hoặc bàn phím, và bạn dùng Ubuntu hoặc bản phân phối tương thích, gõ xinput trong terminal để xem tất cả thiết bị kết nối. Để tắt một thiết bị, dùng:
xinput --disable ID_THIẾT_BỊ
Để bật lại, thay disable bằng enable trong lệnh trên.
Đối với thiết bị khác, giải pháp phức tạp hơn. Trước tiên, gõ lsmod trong terminal và nhấn Enter để xem tất cả driver bổ sung mà kernel Linux nạp dưới dạng module. Tìm module cho thiết bị gây sự và ghi nhớ tên. Sau đó nhập:
sudo nano /etc/modprobe.d/blacklist.conf
Tệp bạn vừa mở là danh sách đen các module không được nạp khi khởi động. Nó có thể đã có sẵn một số mục. Di chuyển đến cuối tệp và làm theo cùng cú pháp để thêm module của bạn vào danh sách. Mục của bạn nên trông như:
blacklist TÊN_MODULE
Lưu tệp, khởi động lại, và hy vọng mọi thứ sẽ ổn.
Đối với Xorg, hãy thử tắt compositor của Window Manager. Mặc dù chính thức compositor chuyển tác vụ liên quan CPU sang GPU, nhưng không phải lúc nào cũng vậy. Đôi khi, bật hỗ trợ compositing cũng đồng nghĩa với việc bật nhiều hiệu ứng nặng.
Đôi khi driver GPU cũng gây CPU cao. Xorg không thực sự hợp với các phiên bản cụ thể của driver Nvidia hoặc AMD. Giải pháp là nâng cấp hoặc hạ cấp sang phiên bản khác. Thay vào đó, bạn có thể thử driver mã nguồn mở cho GPU. Tuy nhiên, chúng không chia sẻ chính xác tập tính năng và có thể thiếu một số chức năng.
Thay đổi Kernel
Hiếm khi kernel Linux là nguyên nhân CPU cao. Tuy nhiên, nếu bạn đã thử hết cách trên mà không giải quyết được, thử kernel khác cũng chẳng mất gì.
Theo trang chính thức, để cài kernel Liquorix phổ biến trên Ubuntu, mở terminal và gõ:
sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update
Điều này sẽ thêm kho Liquorix vào nguồn của Ubuntu. Sau đó, để cài kernel:
sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64
Khởi động lại để kích hoạt kernel mới, và hy vọng sử dụng CPU sẽ quay về mức bình thường.
Chúng tôi hy vọng một trong những giải pháp trên đã giúp được bạn. Nếu không, bạn cũng có thể thử gán thủ công nhân CPU cho ứng dụng với taskset. Cuối cùng, có lẽ đã đến lúc cài lại hệ điều hành từ đầu hoặc chuyển sang bản phân phối khác.