Cơ chế quản lý RAM của Linux

Giới thiệu về cơ chế quản lý RAM Linux

RAM Linux sử dụng cơ chế Chính sách sử dụng được xây dựng dựa trên mô hình ‘bộ nhớ không sử dụng là bộ nhớ trống’. Vì vậy, chúng ta nên luôn mong đợi rằng bộ nhớ sẽ bị chiếm dụng ở một mức độ nào đó. Hai lĩnh vực sử dụng RAM chính là bộ nhớ đệm tệp và bộ nhớ ứng dụng. Kernel cân bằng những cách sử dụng này để giữ cho hệ thống luôn phản hồi.

Khi hệ thống của bạn thấy RAM không được sử dụng, nó sẽ dành một phần không gian cho bộ nhớ đệm. Bằng cách này, các ứng dụng lưu trữ dữ liệu ở một nơi dễ truy cập, giúp hệ thống chạy nhanh hơn.

Khi các ứng dụng khác cần thêm RAM để thực thi, chúng sẽ lấy dung lượng cần thiết từ bộ nhớ cache của RAM để sử dụng.

Cách đọc số liệu RAM trong Linux

Chúng ta có thể tìm kiếm các thông tin về RAM trong file

/proc/meminfo

Tại đây, chúng ta có thể xem được các thông số về RAM bao gồm Tổng dung lượng RAM vật lý, dung lượng RAM có thể sử dụng được, dung lượng Cached…

MemTotal:         992716 kB
MemFree:          166488 kB
MemAvailable:     565020 kB
Cached:           446208 kB

Chúng ta cần lưu ý các thông số sau:

–  MemTotal: tổng dung lượng RAM vật lý

–  MemFree: tổng dung lượng RAM vật lý trống có thể sử dụng.

– MemAvailable: Dung lượng bộ nhớ ước tính còn có thể sử dụng được cho các tiến trình mới mà không cần phải dùng đến swap. Thông số này quan trọng hơn thông số “free” vì nó tính toán cả dung lượng bộ nhớ có thể được giải phóng từ buff/cache.

– Cached: bộ nhớ đệm là kích thước của các trang tệp được ánh xạ vào bộ nhớ.

Ngoài ra, chúng ta có thể sử dụng command free để kiểm tra xem dung lượng của bộ nhớ.

Cách kiểm tra tiêu thụ RAM

Cách đơn giản nhất để tăng mức tiêu thụ bộ nhớ là thực hiện một thao tác trên một tệp 100MB. Ví dụ: chỉ cần tạo 1 file có dung lượng 100MB.

Đầu tiên, hãy kiểm tra dung lượng bộ nhớ trước:

MemTotal:         992716 kB
MemFree:          149104 kB
MemAvailable:     550768 kB
Cached:           447240 kB

Sau đó, chung ta cat file 100MB.test

cat 100MB.test > /dev/null

Sau đó, chúng ta kiểm tra lại bộ nhớ:

MemTotal:         992716 kB
MemFree:           85944 kB
MemAvailable:     575912 kB
Cached:           534576 kB

Chúng ta có thể phát hiện ra rằng dung lượng bộ nhớ đệm (Cached) tăng lên với bộ nhớ trống giảm xuống (MemFree). Tuy nhiên, chúng ta vẫn có lượng bộ nhớ khả dụng gần như tương đương vì kernel có thể xóa các trang được lưu trong bộ nhớ đệm một cách dễ dàng.

Khóa một file trên bộ nhớ với vmtouch:

Lệnh vmtouch là một công cụ được sử dụng để tìm hiểu và kiểm soát bộ đệm của hệ thống tệp. Nó cho phép bạn xem cách các tập tin được lưu trữ trong bộ nhớ và thao tác cách chúng được lưu vào bộ nhớ đệm.

Chúng ta có thể sử dụng vmtouch để có nhiều quyền kiểm soát hơn đối với quá trình lưu vào bộ nhớ đệm. Lệnh cho phép chúng ta lưu các tệp vào bộ nhớ đệm, đọc số lượng trang được lưu trong bộ nhớ đệm trên mỗi tệp hoặc xóa các trang tệp khỏi bộ nhớ.

Kiểm tra trước bộ nhớ dung lượng trước khi lock file:

MemTotal:         992716 kB
MemFree:          196428 kB
MemAvailable:     527028 kB
Cached:           398404 kB

Sử dụng command vmtouch -l để khóa một file có dung lượng 100MB trên bộ nhớ

vmtouch -l 100MB.test 
LOCKED 24415 pages (95M)

Sau đó kiểm tra lại thông tin bộ nhớ:

MemTotal:         992716 kB
MemFree:          119064 kB
MemAvailable:     438168 kB
Cached:           484552 kB

Chúng ta thấy rằng việc khóa các file trên bộ đệm không chỉ làm giảm bộ nhớ trống mà còn cả bộ nhớ khả dụng của hệ thống.

Trong bài viết này, chúng ta đã tìm hiểu cơ chế và cách lấp đầy bộ nhớ trong hệ thống Linux. Đầu tiên, chúng tôi xem xét các số liệu mô tả mức tiêu thụ bộ nhớ. Sau đó, chúng tôi thêm vào bộ nhớ đệm bằng cách thực hiện các thao tác trên tệp.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top