Thay vì chỉ nhìn vào những con số tổng quát dễ gây hiểu lầm, mình đã trực tiếp xử lý hàng loạt tình trạng nghẽn server nhờ việc phân tích chính xác từng thông số mà lệnh free cung cấp. Trong bài viết này, mình sẽ không chỉ liệt kê lý thuyết mà còn chia sẻ cách mình đọc hiểu các cột used, buff/cache và available để biết chính xác khi nào hệ thống thực sự hết RAM. Hy vọng những kinh nghiệm thực tế này sẽ giúp bạn làm chủ tài nguyên máy chủ một cách tự tin và chuyên nghiệp nhất.
Những điểm chính
Đối với mình, việc theo dõi và quản lý bộ nhớ trên Linux không chỉ giúp hệ thống vận hành ổn định mà còn là yếu tố quan trọng để tối ưu hiệu năng và xử lý sự cố kịp thời. Để giúp bạn hiểu rõ hơn về lệnh free trong quá trình sử dụng thực tế, bài viết dưới đây sẽ cung cấp các thông tin gồm:
- Khái niệm: Hiểu rõ bản chất của lệnh
freelà tiện ích dòng lệnh dùng để thống kê và hiển thị tình trạng sử dụng bộ nhớ của hệ thống theo thời gian thực, bao gồm RAM vật lý và phân vùng swap. - Các tùy chọn phổ biến: Nắm vững bảng tham số đa dạng giúp bạn tùy chỉnh đơn vị đo lường và định dạng hiển thị số liệu bộ nhớ linh hoạt theo nhu cầu.
- Hướng dẫn sử dụng chi tiết: Thành thạo kỹ năng kiểm tra bộ nhớ, từ việc xem tổng dung lượng RAM/swap đến thiết lập chế độ giám sát hệ thống liên tục.
- Xử lý lỗi thường gặp: Biết cách nhận diện và khắc phục các vấn đề phổ biến như tình trạng swap tăng cao hay lỗi thiếu tùy chọn định dạng trên các bản Linux cũ.
- Lưu ý khi vận hành: Nắm được các nguyên tắc cốt lõi để đánh giá chính xác sức khỏe máy chủ thông qua việc hiểu đúng ý nghĩa của các cột Free, Available và Cache.
- Câu hỏi thường gặp: Giải đáp các thắc mắc phổ biến liên quan đến lệnh free Linux.
Lệnh free Linux là gì?
Lệnh free Linux là tiện ích dòng lệnh dùng để thống kê và hiển thị tình trạng sử dụng bộ nhớ của hệ thống theo thời gian thực, bao gồm RAM vật lý và phân vùng swap. Lệnh này cho biết tổng dung lượng đang dùng, dung lượng còn trống và phần bộ nhớ được dùng làm buffer/cache, giúp quản trị viên nhanh chóng đánh giá sức khỏe bộ nhớ và phát hiện sớm các vấn đề liên quan đến thiếu RAM.

Lệnh free là một phần của gói procps hoặc procps-ng và luôn được cài đặt sẵn trên mọi hệ thống Linux. Cấu trúc của lệnh này như sau:
free [TÙY_CHỌN]...Trong đó, [TÙY_CHỌN] là các tham số bổ sung giúp định dạng lại kết quả hiển thị.
Các tùy chọn của lệnh free
Dưới đây là bảng các tùy chọn của lệnh free được sử dụng phổ biến:
| Tùy chọn | Mô tả |
|---|---|
| -b, –bytes | Xuất kết quả theo đơn vị Byte. |
| -k, –kibi | Sử dụng đơn vị Kibibyte (KiB) để hiển thị số liệu. Đây là thiết lập mặc định của lệnh nếu bạn không chọn đơn vị khác. |
| -m, –mebi | Chuyển đổi các thông số bộ nhớ sang đơn vị Mebibyte (MiB). |
| -g, –gibi | Chuyển đổi các thông số bộ nhớ sang đơn vị Gibibyte (GiB). |
| –tebi | Hiển thị dung lượng bộ nhớ với đơn vị lớn là Tebibyte (TiB). |
| –pebi | Hiển thị dung lượng bộ nhớ với đơn vị rất lớn là Pebibyte (PiB). |
| –kilo | Báo cáo dung lượng theo đơn vị Kilobyte (KB) – Sử dụng hệ số 1000. |
| –mega | Báo cáo dung lượng theo đơn vị Megabyte (MB) – Sử dụng hệ số 1000. |
| –giga | Báo cáo dung lượng theo đơn vị Gigabyte (GB) – Sử dụng hệ số 1000. |
| –tera | Báo cáo dung lượng theo đơn vị Terabyte (TB) – Sử dụng hệ số 1000. |
| –peta | Báo cáo dung lượng theo đơn vị Petabyte (PB) – Sử dụng hệ số 1000. |
| -h, –human | Tự động tính toán và hiển thị đơn vị phù hợp nhất giúp người dùng dễ dàng đọc và so sánh số liệu. |
| -w, –wide | Kích hoạt chế độ hiển thị rộng, giúp các dòng thông tin không bị ngắt quãng nếu vượt quá 80 ký tự. |
| -c, –count “X” | Giới hạn số lần lặp lại việc hiển thị kết quả là “X” lần. Tùy chọn này bắt buộc phải đi kèm với tham số thời gian -s. |
| -s, –seconds “X” | Thiết lập chế độ tự động cập nhật số liệu sau mỗi “X” giây. |
| –si | Buộc hệ thống tính toán theo chuẩn SI (lũy thừa của 1000) thay vì chuẩn IEC (lũy thừa của 1024) cho các đơn vị đo lường. |
| -t, –total | Bổ sung thêm một dòng tổng kết ở cuối bảng, cộng gộp toàn bộ dung lượng RAM và swap. |
| -V, –version | In ra thông tin về phiên bản phần mềm free đang được cài đặt. |
| –help | Hiển thị bảng hướng dẫn nhanh và danh sách các tùy chọn hỗ trợ của lệnh. |
Cách sử dụng lệnh free Linux chi tiết
1. Xem thông tin bộ nhớ cơ bản
Bạn sử dụng lệnh sau để xem thông tin bộ nhớ chính xác theo đơn vị mặc định là byte:
free
Đây là đầu ra mặc định của lệnh. Bảng kết quả bao gồm các cột total, used, free, shared, buffers/cache và available với đơn vị tính là byte nên con số thường khá lớn và khó đọc nhanh.
2. Hiển thị thông tin bộ nhớ ở định dạng dễ đọc
Bạn có thể chuyển đổi đơn vị hiển thị thành Kilobyte, Megabyte, Gigabyte để dễ đọc và phân tích hơn. Cú pháp lệnh như sau:
free -h
3. Xem tổng RAM và swap
Bạn có thể thêm một dòng tổng cộng ở cuối bảng để dễ dàng so sánh tổng lượng RAM và swap đã sử dụng hoặc còn trống với cú pháp như sau:
free -t
Lúc này, tùy chọn -t sẽ giúp hiển thị dòng tổng hợp dung lượng của cả bộ nhớ vật lý và bộ nhớ ảo.
4. Xác định cột bộ nhớ khả dụng
Bạn có thể xác định chính xác lượng bộ nhớ mà các ứng dụng mới có thể sử dụng mà không cần dùng đến swap bằng cách quan sát cột available trong kết quả của lệnh free -h.
Giải thích sự khác biệt quan trọng:
- Cột
free(còn trống): Chỉ lượng bộ nhớ hoàn toàn không được kernel sử dụng. - Cột
available(khả dụng): Là tổng củafreecộng với phần bộ nhớ đang được sử dụng làm cache/buffer mà kernel có thể giải phóng nhanh chóng nếu cần. Đây là chỉ số quan trọng nhất để đánh giá liệu hệ thống có thiếu RAM cho các tiến trình mới hay không.
5. Giám sát bộ nhớ liên tục
Để theo dõi sự thay đổi của bộ nhớ theo thời gian thực, đặc biệt là khi đang chạy thử nghiệm tải, bạn hãy thực thi lệnh sau:
free -s <giây>Ví dụ, để cập nhật thông tin bộ nhớ mỗi 5 giây, bạn thực hiện lệnh sau:
free -h -s 5
Tùy chọn -s (seconds) cho phép chỉ định khoảng thời gian cập nhật. Để dừng quá trình này, bạn nhấn tổ hợp phím Ctrl + C.
Cách xử lý lỗi phổ biến khi sử dụng lệnh free Linux
Việc hiểu đúng và xử lý kịp thời các cảnh báo từ lệnh free là yếu tố cốt lõi giúp hệ thống luôn vận hành ổn định. Dưới đây là các lỗi phổ biến khi dùng lệnh free và phương pháp xử lý:
1. Cột used cao nhưng hệ thống vẫn hoạt động tốt
Linux có cơ chế sử dụng RAM còn trống để làm bộ nhớ đệm cho các file nhằm tăng tốc độ hệ thống và lượng bộ nhớ này được tính vào cột used. Vì đây không phải là lỗi nên bạn hãy kiểm tra cột available, nếu available vẫn cao, ví dụ như trên 10% tổng RAM thì hệ thống vẫn đang hoạt động ổn định.
2. Cột swap used tăng cao
Nguyên nhân chính dẫn đến cột swap used tăng cao có thể là do hệ thống không còn đủ RAM vật lý để phục vụ các tiến trình hiện tại, buộc phải đẩy dữ liệu sang ổ cứng. Bạn có thể khắc phục sự cố này như sau:
- Bạn tìm và dừng các tiến trình tiêu tốn nhiều bộ nhớ bằng lệnh dưới đây:
top -M.- Ngoài ra, bạn có thể cân nhắc tăng dung lượng RAM vật lý cho máy chủ nếu là VPS/Server.

3. Lệnh free không có tùy chọn -h
Nguyên nhân khiến lệnh free không có tùy chọn -h có thể do bạn đang sử dụng một bản phân phối Linux quá cũ. Để xử lý, bạn có thể dùng -m (Megabyte) để thay thế với cú pháp lệnh sau:
free -mQuan điểm của mình: Việc ưu tiên dùng free -m hoặc free -g là một thói quen tốt, vì các lệnh này thường yêu cầu bạn đọc số liệu ở mức đơn vị rõ ràng (MB/GB) và có cảm nhận định lượng chính xác hơn về tài nguyên đang sử dụng. Thay vì phụ thuộc vào sự tiện lợi của tùy chọn -h, hãy coi đó là cơ hội để bạn nắm chắc cách thể hiện dung lượng (KB, MB, GB, GiB) và hiểu sâu hơn về cách hệ thống báo cáo dữ liệu bộ nhớ.
Lưu ý khi sử dụng lệnh free
Dưới đây là các lưu ý quan trọng khi sử dụng lệnh free mà bạn cần nắm rõ:
- Hiểu đúng về cột free: Linux có cơ chế thông minh là tận dụng nguồn RAM nhàn rỗi để làm bộ nhớ đệm Buff/Cache nhằm tăng tốc độ truy xuất, do đó cột free thấp không đồng nghĩa với việc máy chủ đang quá tải.
- Ưu tiên cột available: Cột này phản ánh chính xác lượng bộ nhớ thực tế mà hệ thống có thể cấp phát ngay lập tức cho các ứng dụng mới, bao gồm cả phần free và phần có thể thu hồi từ cache.
- Sử dụng tùy chọn dễ đọc (
-h): Mặc định lệnhfreehiển thị đơn vị là Kilobytes nên rất khó để nhẩm tính, do đó bạn hãy luôn sử dụng cờ-hđể hệ thống tự động chuyển đổi sang MB hoặc GB giúp kết quả hiển thị trực quan hơn. - Cảnh báo từ swap: Bạn hãy chú ý nếu dung lượng swap used tăng cao trong khi Available giảm mạnh vì đây là dấu hiệu đỏ cho thấy RAM vật lý đã cạn kiệt, buộc hệ thống phải dùng ổ cứng làm bộ nhớ tạm, gây sụt giảm hiệu suất nghiêm trọng.

Câu hỏi thường gặp
Sự khác nhau giữa cột free và available là gì?
Cột free chỉ hiển thị lượng RAM hoàn toàn chưa được sử dụng. Trong khi đó, cột available bao gồm cả RAM đang ở trạng thái free và một phần RAM đang được dùng làm cache/buffer. Khi kiểm tra xem máy chủ có đủ RAM để chạy ứng dụng mới hay không, bạn nên nhìn vào cột available.
Tại sao cột buff/cache lại chiếm nhiều dung lượng?
Linux được thiết kế để tận dụng tối đa RAM trống nhằm lưu trữ dữ liệu đệm đĩa cứng, giúp hệ thống chạy nhanh hơn. Khi các ứng dụng cần thêm RAM, hệ thống sẽ tự động giải phóng vùng buff/cache này để cấp phát cho ứng dụng. Do đó, việc buff/cache cao thường là dấu hiệu tốt, không phải lỗi.
Tôi có thể xóa bộ nhớ Cache thủ công để giải phóng RAM không?
Có, bạn có thể xóa cache thủ công để giải phóng RAM tạm thời, nhưng thường không nên lạm dụng vì Linux sẽ tự quản lý cache rất tốt và sẽ tự giải phóng khi ứng dụng cần thêm RAM.
Lệnh free Linux là công cụ kiểm tra bộ nhớ hữu ích, cung cấp nhanh mức sử dụng RAM và swap. Việc nắm vững cách đọc hiểu các chỉ số và kết hợp với tùy chọn định dạng dễ đọc sẽ giúp bạn giám sát, đánh giá hiệu suất bộ nhớ của máy chủ một cách chính xác. Chúc bạn thao tác với lệnh free thành công và hẹn gặp lại trong các bài viết tiếp theo!




