Tôi đang viết tập lệnh shell cần biết tổng số bộ nhớ sẵn có (miễn phí + có thể khôi phục) trong hệ thống. Đối với điều này tôi phân tích cú pháp đầu ra của lệnh free
. Sản lượng tiêu biểu của free
là như sau:Tổng dung lượng bộ nhớ khả dụng cho các ứng dụng trong Linux
$ free -m
total used free shared buffers cached
Mem: 2488 965 1523 0 83 517
-/+ buffers/cache: 363 2124
Swap: 1565 0 1565
Người ta thường cho rằng các cột "tự do", điều chỉnh bởi bộ đệm và bộ nhớ cache, đại diện cho bộ nhớ đó là miễn phí hoặc có thể khai phá, do đó có sẵn cho các ứng dụng. Vì vậy, trong ví dụ trên chúng ta sẽ có khoảng 2124 MB.
Tuy nhiên điều này là không đúng nếu tmpfs đang được sử dụng, như bất kỳ bộ nhớ được sử dụng bởi tmpfs được bao gồm trong "cache", tuy nhiên bộ nhớ này là không có thể khai phá (biết thêm trong this article)
thế nào thì chúng ta có thể tìm ra số lượng bộ nhớ thực sự có sẵn?
Sử dụng '/ proc/meminfo' và tài khoản cho' Shmem' theo cách thủ công? –
Bạn có thể nhận được câu trả lời tốt hơn trên http://unix.stackexchange.com/ –
@EtanReisner Phân tích cú pháp/proc/meminfo sẽ ổn nhưng Shmem là điều duy nhất tôi cần quan tâm? – Grodriguez