Cách giảm mức sử dụng RAM và CPU trên Linux
(tecmint.com)Linux là một hệ điều hành hiệu quả, nhưng việc sử dụng RAM và CPU quá mức có thể gây suy giảm hiệu năng và làm hệ thống mất ổn định.
Bài viết này giải thích các phương pháp tối ưu hóa thực tế như công cụ giám sát, quản lý tiến trình và tinh chỉnh kernel.
1. Tìm tiến trình tiêu thụ nhiều tài nguyên
Sử dụng các lệnh top, htop, ps để kiểm tra những tiến trình có mức sử dụng CPU và bộ nhớ cao.
Hãy ghi nhớ PID để dùng cho các bước xử lý tiếp theo.
# top
top # P: sắp xếp theo CPU, M: sắp xếp theo bộ nhớ
# Cài đặt và chạy htop
sudo apt install htop
htop # F6: sắp xếp, F9: thoát
# Lệnh ps
ps aux --sort=-%mem | head
ps aux --sort=-%cpu | head
2. Kết thúc các tiến trình không cần thiết
Bạn có thể dùng các lệnh kill, kill -9, pkill để dừng các tiến trình đang tiêu thụ quá nhiều tài nguyên.
Với tiến trình không phản hồi, có thể buộc dừng hoặc kết thúc hàng loạt theo tên.
kill PID
kill -9 PID
pkill process_name
3. Tối ưu các chương trình khởi động cùng hệ thống
Dùng systemctl để kiểm tra các dịch vụ tự chạy khi khởi động và vô hiệu hóa những mục không cần thiết.
Trong môi trường GUI, bạn cũng có thể dùng trình quản lý ứng dụng khởi động.
systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable tên_dịch_vụ
4. Điều chỉnh swappiness
Swappiness là thiết lập điều chỉnh tần suất sử dụng bộ nhớ swap.
Nếu giảm từ giá trị mặc định 60 xuống 10, hệ thống sẽ ưu tiên tận dụng RAM hơn, từ đó có thể cải thiện hiệu năng.
cat /proc/sys/vm/swappiness
sudo nano /etc/sysctl.conf # thêm vm.swappiness=10
sudo sysctl -p
5. Sử dụng môi trường desktop nhẹ
Thay vì GNOME hoặc KDE, bạn có thể dùng các môi trường desktop nhẹ hơn như XFCE, LXDE, MATE để tiết kiệm tài nguyên.
Tương tự, cũng có thể thay thế ứng dụng bằng các trình soạn thảo, trình duyệt và trình quản lý tệp nhẹ hơn.
6. Dọn cache và buffer thủ công
Linux dùng RAM làm cache để tăng hiệu năng, nhưng khi cần bạn cũng có thể dọn thủ công.
Tuy nhiên cần cẩn trọng vì có thể xảy ra suy giảm hiệu năng tạm thời.
sudo sync; sudo sysctl -w vm.drop_caches=3
7. Tối ưu tham số kernel
Bạn có thể điều chỉnh các tham số kernel như tần suất ghi đĩa hoặc lượng RAM tối thiểu cần giữ lại để quản lý tài nguyên hiệu quả hơn.
# Ví dụ các mục bổ sung trong /etc/sysctl.conf
vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0
8. Sử dụng ZRAM
ZRAM là tính năng dùng bộ nhớ nén, rất hiệu quả trong việc tiết kiệm RAM.
Nếu cấu hình thêm Zswap, cơ chế swap dựa trên nén cũng sẽ được kích hoạt.
sudo apt install zram-config
sudo systemctl start zram-config
# Thêm cấu hình GRUB
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"
sudo update-grub
sudo reboot
9. Giới hạn mức sử dụng CPU của tiến trình
Bạn có thể dùng lệnh cpulimit để giới hạn mức sử dụng CPU của một tiến trình cụ thể.
Cũng có thể đặt giới hạn lâu dài bằng cấu hình systemd.
sudo apt install cpulimit
sudo cpulimit -e firefox -l 30 # giới hạn firefox ở mức 30%
# Cấu hình bằng systemd
sudo systemctl set-property tên_dịch_vụ CPUQuota=30%
10. Cập nhật hệ thống định kỳ
Các bản cập nhật mới nhất giúp cải thiện hiệu năng và sửa lỗi, vì vậy nên thực hiện thường xuyên.
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # RHEL/CentOS
6 bình luận
Trên Asahi Linux, họ dùng zswap và vô hiệu hóa zram
https://web.archive.org/web/20241126234212/…
https://social.treehouse.systems/@AsahiLinux/113532720695827142
Trường hợp zram thì đây là lần đầu tôi biết đến, nên tôi đã hỏi qwq:32b xem nó có nhược điểm gì.
Vì sao các bản phân phối Linux không bật zram theo mặc định?
Vì vấn đề thiếu bộ nhớ trên các hệ thống hiện đại đã giảm đi: hiện nay đa số PC mặc định đều được trang bị từ 4GB RAM trở lên. Trong môi trường ít gặp vấn đề thiếu bộ nhớ, nhu cầu dùng zram sẽ thấp hơn.
Rủi ro tăng tải CPU: zram có thể làm tăng mức sử dụng CPU, nên không an toàn cho mọi loại phần cứng.
Vì các bản phân phối ưu tiên “môi trường phổ thông”, họ có thể cho rằng không đáng để chấp nhận phần overhead CPU của zram.
Thay đổi trong cách dùng swap mặc định: sự phổ biến của SSD đã cải thiện đáng kể tốc độ của swap trên đĩa truyền thống.
Ưu thế về tốc độ của zram vì thế cũng kém nổi bật hơn so với trước đây.
Sự đa dạng của môi trường người dùng: zram chỉ thực sự hiệu quả trong một số môi trường nhất định (ví dụ: thiết bị cấu hình thấp), còn với người dùng phổ thông thì hầu như không mang lại lợi ích rõ rệt.
Các bản phân phối theo đuổi mục tiêu “tương thích tối đa với cấu hình tối thiểu”, nên không bật zram theo mặc định.
Độ phức tạp trong cấu hình: để tối ưu, cần phải tự điều chỉnh kích thước zram, thuật toán nén, v.v., và điều này khá khó để người dùng phổ thông hiểu và áp dụng.
Trên macOS, tính năng nén bộ nhớ cũng đang được sử dụng rất tích cực.
> Tại sao các bản phân phối Linux không bật zram theo mặc định?
Fedora 33 và openSUSE từ Aeon đã bật ZRAM theo mặc định.
Tất nhiên benchmark luôn là ưu tiên trước, nhưng có thể nó hữu dụng hơn bạn nghĩ.
zswapkhá đáng dùng. Trên macOS, một tính năng tương tự cũng là tùy chọn được bật mặc định. Nó hoạt động tốt khi mở trình duyệt hoặc chạy nhiều ứng dụng trong môi trường tài nguyên hạn chế như laptop. Tuy nhiên, như bạn đã đề cập, có sự đánh đổi về CPU nên có lẽ sẽ ảnh hưởng đến pin.zramvàzswapcó khác nhau không?sudo apt install zram-toolssystemctl enable zramswapTôi đang dùng như thế này, nhưng không rõ cái gọi là
zswapcó phải là cái này không..Tên gọi kỹ thuật này khá dễ gây nhầm lẫn.
zramlà một tính năng của kernel, tạo ra một thiết bị khối có chức năng nén tự động, tức là một dạng lưu trữ. Và nếu tạo rồi sử dụng một file swap thông thường như chúng ta vẫn biết trên phần lưu trữ đó, thì nó sẽ có kiểu chức năng swap dựa trên RAM + nén. Có vẻ như dịch vụzramswapđảm nhiệm vai trò đó. Tuy nhiên, về sau người ta thấy trường hợp sử dụng này hữu ích, nênzram+swapđược tích hợp trọn vẹn thành một tính năng của kernel. Đó làzswap.zswapcó thể được kích hoạt trên đa số bản phân phối Linux chỉ bằng lệnh, không cần cài đặt riêng. (Tham khảo https://wiki.archlinux.org/title/Zswap)