Bạn cài đặt Linux vì nghĩ rằng nó yêu cầu ít tài nguyên hệ thống hơn Windows. Vậy tại sao hệ thống của bạn đột nhiên thiếu RAM?
Đừng hoảng sợ! Linux không chiếm dụng quá nhiều RAM của bạn. Để hiểu rõ điều gì đang xảy ra, chúng ta sẽ phải xem xét cách Linux quản lý bộ nhớ.
Cách xem RAM trống trên Linux
Có nhiều cách để kiểm tra lượng RAM đang được sử dụng. Nếu bạn dùng một hệ điều hành thương mại, bạn có thể thấy dễ hơn khi mở một ứng dụng tương tự như Trình quản lý tác vụ (Task Manager) trên Windows hoặc Trình theo dõi hoạt động (Activity Monitor) trên macOS. Tên của chương trình này phụ thuộc vào môi trường desktop Linux mà bạn sử dụng .
Trên GNOME, môi trường desktop được sử dụng rộng rãi nhất, hãy mở một chương trình có tên là System Monitor. Trên KDE, hãy sử dụng Konsole . Các môi trường desktop khác có các công cụ tương tự dưới nhiều tên khác nhau.
Dù bạn đang dùng môi trường desktop nào, bạn cũng có thể sử dụng dòng lệnh (command line). Mở ứng dụng Terminal và nhập lệnh sau.
free
Bạn sẽ thấy kết quả giống như thế này. Các con số này sẽ thay đổi tùy thuộc vào dung lượng RAM mà máy của bạn có và số lượng chương trình đang hoạt động.
Để xem xét kỹ lưỡng hơn về RAM của bạn, hãy thử cách này:
cat /proc/meminfo
Lệnh trên tải cùng một file (tệp) mà lệnh free sử dụng để xem dung lượng bộ nhớ còn trống trên PC của bạn.
Giả sử bạn có 4GB RAM và 3,9 GB đang được sử dụng. Chỉ có 0,1GB còn trống! Điều này có phải có nghĩa rằng Linux đang chiếm quá nhiều RAM của bạn hay không?
Hãy nhìn lại, tập trung vào cột “available”. Ở đó, bạn có thể thấy rằng thực ra bạn đang có hẳn 1GB cho các ứng dụng sử dụng. Tại sao lại như vậy? Tất cả đều phụ thuộc vào cách Linux quản lý và sử dụng RAM .
Cách Linux sử dụng RAM
Cách Linux sử dụng RAM không khác nhiều so với Windows và các hệ điều hành khác. Nhưng các hệ thống khác nhau hiển thị những gì đang diễn ra theo những cách khác nhau.
Khi PC của bạn thấy rằng có RAM hiện không được sử dụng, nó sẽ dành một phần không gian này cho bộ nhớ đệm của đĩa (disk caching). Bằng cách này, các ứng dụng lưu trữ dữ liệu ở một vị trí dễ truy cập hơn, giúp hệ thống chạy nhanh và trơn tru hơn. Khi các ứng dụng khác cần thêm bộ nhớ, chúng sẽ lấy dung lượng cần thiết từ bộ nhớ cache của ổ đĩa này như thể nó đang không được sử dụng.
Nói cách khác, Linux sử dụng không gian trống đó một cách hiệu quả trong thời gian nghỉ.
Để biết có bao nhiêu dung lượng được sử dụng theo cách này, hãy nhìn vào cột “buff/cache”. Đây là dung lượng RAM dành riêng cho buffer* và cache tại thời điểm bạn chạy lệnh. Dọn dẹp dung lượng này sẽ không làm cải thiện hiệu suất hệ thống.
*Buffer được xem là vùng lưu trữ dữ liệu tạm thời và thường lưu trữ trong bộ nhớ tạm (RAM).
Sự khác biệt giữa RAM trống và RAM khả dụng
Đây là cách Linux xem RAM của bạn.
- Đã sử dụng (used): RAM hiện đang được ứng dụng sử dụng.
- Khả dụng (available): RAM có thể được sử dụng cho bộ nhớ đệm của đĩa nhưng có thể được giải phóng cho các ứng dụng.
- Trống (free): RAM không được ứng dụng hoặc bộ nhớ đệm của đĩa sử dụng.
Trống (free) và khả dụng (available) có vẻ giống như từ đồng nghĩa, nhưng có một sự khác biệt về mặt kỹ thuật. Bộ nhớ trống là bộ nhớ không được sử dụng. Bộ nhớ khả dụng là bộ nhớ hiện đang được sử dụng nhưng có thể dễ dàng được giải phóng nếu cần.
Cách xóa cache và buffer trong RAM
Giả sử, vì bất cứ lý do gì, bạn vẫn muốn xóa RAM mà nhân Linux đang sử dụng cho cache và buffer của nó. Cũng phải nói rõ rằng làm điều này sẽ tác động tiêu cực đến hiệu suất. Nếu bạn muốn hệ thống của mình chạy tối ưu, hãy để mọi thứ nguyên như vậy.
Bạn sẽ chạy các lệnh này với tư cách là quản trị viên hệ thống.
Để xóa cache, hãy nhập lệnh sau:
echo 1 > /proc/sys/vm/drop_caches
Để xóa dentries và inodes*, hãy thay đổi số thành 2:
echo 2 > /proc/sys/vm/drop_caches
*Một inode trong trường hợp này là một cấu trúc dữ liệu đại diện cho một file, dentrie là cấu trúc dữ liệu đại diện cho thư mục. Những cấu trúc dữ liệu này được sử dụng để xây dựng một bộ nhớ đệm (cache) đại diện cho cấu trúc của các file/thư mục trên ổ cứng.
Để xóa tất cả page cache, dentries và inodes, hãy thay đổi số thành 3:
echo 3 > /proc/sys/vm/drop_caches
Nếu các lệnh này không cải thiện mức độ chạy trơn tru của PC, tại sao phải chạy chúng? Làm như vậy là một cách để so sánh hiệu suất máy tính của bạn sau khi thực hiện thay đổi mà không cần khởi động lại.
Cách xem và đóng chương trình
Tất cả những điều này có nghĩa là bạn không cần kiểm tra RAM và quản lý bộ nhớ trên Linux? Cũng không hẳn vậy.
Mặc dù Linux biết cách tối ưu hóa RAM, nhưng điều đó không có nghĩa là ứng dụng của bạn cũng vậy. Đôi khi trình duyệt của bạn sẽ chiếm tất cả bộ nhớ của bạn. Trò chơi có thể bị ngừng lại (freeze) mà không giải phóng bất kỳ tài nguyên hệ thống nào. Trình xem hình ảnh có thể bị treo khi cố tải một hình ảnh cực lớn.
Để xem chương trình nào đang gây khó khăn cho máy tính của bạn, hãy thử lệnh top:
top
Kết quả sẽ giống như thế này.
Khi bạn phát hiện ra một chương trình có vấn đề, bạn có thể làm gì với nó? Một tùy chọn là sử dụng lệnh kill. Để làm như vậy, hãy lưu ý số PID xuất hiện bên cạnh chương trình khi bạn nhấn lệnh top. Bạn sẽ cần nó.
kill -9 2470
Ngoài ra, bạn có thể sử dụng lệnh killall để đóng một chương trình bằng cách sử dụng tên của nó.
killall firefox
Tăng hiệu suất hệ thống Linux
Bộ nhớ PC của bạn ít nhiều có thể tự quản lý. Trong bài viết này chúng ta đã xem xét các cách để xem điều gì đang xảy ra và cách can thiệp khi cần. Bây giờ bạn biết cách xem lượng bộ nhớ đang được sử dụng và những chương trình nào đang sử dụng bộ nhớ đó. Bạn cũng có thể thực hiện một vài bước để dừng các hoạt động đang chiếm dụng dung lượng.
Dịch từ: https://www.makeuseof.com/tag/manage-linux-ram/
Vân Nguyễn
Bình luận (0
)