Làm thế nào để diễn giải đầu ra của lệnh miễn phí -miến?


48

Đầu ra của free -mlà:

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

Giá trị nào của bộ nhớ đã sử dụng là đúng, 482 hoặc 93?

Câu trả lời:


41

Bạn có 112 MB bộ nhớ hoàn toàn miễn phí, NHƯNG 501 mb bạn thấy là không có bộ nhớ 'được lưu trữ. Điều này có nghĩa là HĐH đã đưa một số nội dung vào bộ nhớ của bạn nhanh hơn. Nó gọi đây là "đã sử dụng" (do đó số 'miễn phí' của bạn chỉ là 112), nhưng nó thực sự có sẵn cho bạn nếu bạn cần.

Đây là một điều tốt, bởi vì bộ nhớ không sử dụng là bộ nhớ vô dụng. Bộ nhớ đệm có thể bị xóa nếu cần. Công cụ "Tôi cần dọn dẹp bộ nhớ" cũ mà mọi người thường làm cho windows 95 không cần thiết ở đây: mọi thứ đều ổn và hạnh phúc :)

Số bạn đang tìm kiếm là 501 miễn phí (tính bằng megabyte vì -m).

xem để tham khảo các trang này:

http://www.linuxHRyram.com/
http://www.itworld.com/it-manloymentstrargety/280695/making-sense-memory-usage-linux


Về cơ bản: "chỉ cần nhìn vào dòng thứ hai, dòng có bộ đệm / bộ đệm".
Nanne

25

Giải thích đầu ra của free:
Dòng đầu tiên của freedanh sách đầu ra:

  • total Tổng bộ nhớ vật lý (giả sử không ảo hóa) của bạn
  • used Bao nhiêu trong số đó hiện đang được sử dụng (bởi bất cứ điều gì)
  • free Bao nhiêu trong số đó là hoàn toàn miễn phí (hoàn toàn không sử dụng)
  • shared (không bao giờ có bất cứ điều gì ở đó, bỏ qua cột đó)
  • buffers Bộ nhớ được sử dụng bởi bộ đệm kernel
  • cached Bộ nhớ được sử dụng cho bộ nhớ cache

Hai mục cuối, bộ đệm và bộ đệm, là bộ nhớ không được phân bổ cho các quy trình người dùng cụ thể. Đó là bộ nhớ dành cho kernel để cải thiện hiệu năng tổng thể, nhưng không phải là bộ nhớ "ứng dụng". Các khu vực này sẽ phát triển hoặc thu hẹp tùy thuộc vào chính sách kernel liên quan đến bộ nhớ đệm, áp lực bộ nhớ, mẫu I / O của ứng dụng, v.v.

Vì hai cột này không phải là bộ nhớ do người dùng phân bổ và các vùng có thể co lại (thực tế là 0) nếu phân bổ người dùng yêu cầu, chúng có nghĩa là "miễn phí" - có RAM có thể được giải phóng bởi kernel nếu ứng dụng của bạn chủ động cần nó

Đó là những gì dòng thứ hai nói với bạn. Nó loại bỏ bộ nhớ đệm và bộ nhớ cache khỏi usedcột (nghĩa là gì -) và thêm ( +) chúng vào freecột. (Vấn đề làm tròn sẽ xảy ra.)

(Dòng cuối cùng hiển thị trạng thái không gian hoán đổi của bạn.)

Lịch sự: https://unix.stackexchange.com/a/33549/14497

Vì vậy, trong trường hợp của bạn, 112MB là bộ nhớ hoàn toàn miễn phí và nếu bạn xem xét bộ nhớ được sử dụng cho bộ nhớ đệm, có thể được phân bổ cho các ứng dụng người dùng, nếu cần; thì 501 MB là bộ nhớ tối đa thực tế có sẵn để sử dụng.


Một người tìm kiếm bộ nhớ đọc không bao giờ quan tâm (hoặc gần như không bao giờ) trong bao nhiêu bộ nhớ là hoàn toàn miễn phí, nhưng bao nhiêu là miễn phí để sử dụng. bộ nhớ được lưu trong bộ nhớ cache là 'đang sử dụng' nhưng cũng miễn phí sử dụng, vì vậy bạn nên xem xét điều đó.
Nanne

Tôi không thực sự chắc chắn tại sao bạn nói vậy? Nó dường như ngụ ý rằng ai đó sẽ cố tình xóa bộ nhớ cache (đó thực sự là một điều xấu)? Vấn đề là tải các công cụ acuall (như chương trình bạn muốn sử dụng) vào bộ nhớ đó thực sự là một tùy chọn. Bạn muốn con số 112 đó càng thấp càng tốt, nhưng điều đó có nghĩa trong lý thuyết của bạn rằng bạn không thể mở bất kỳ chương trình nào. Không phải mục tiêu tôi muốn nói. Ngoài ra: bộ đệm đó không chỉ là bộ đệm, mà còn là bộ đệm hệ thống và những thứ tương tự
Nanne

@Nanne, Ok. Tôi đồng ý người đàn ông. Cảm ơn vì sự đúng đắn của bạn. Tôi đã cập nhật câu trả lời của tôi để phản ánh tương tự.
saji89

##### THANK YOU ALL @ Nanne @ devav2 @ saji89 chia sẻ kiến thức - BẠN LÀ TUYỆT #####
amoooc

10

Câu trả lời của @ saji89 là tuyệt vời, nhưng ngày nay free -mkhông còn in -/+ buffers/cachedòng nữa, mà thay vào đó, đặt lượng RAM có sẵn trong một availablecột mới trên dòng đầu tiên, ví dụ:

ubuntu@pg_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
ubuntu@pg_master:~$ free -V
free from procps-ng 3.3.10

Bạn có thể đọc cam kết miễn phí (1) đã xóa dòng trong repo của họ . Ngoài ra các cam kết để thêm availablecột mới .


4

free lệnh hiển thị thông tin về bộ nhớ không sử dụng và sử dụng và không gian trao đổi.

Dưới đây là lời giải thích được cung cấp bởi http://www.linfo.org/free.html

Hàng đầu tiên, được gắn nhãn Mem , hiển thị việc sử dụng bộ nhớ vật lý, bao gồm cả bộ nhớ được phân bổ cho bộ đệm và bộ đệm. Bộ đệm, còn được gọi là bộ nhớ đệm, thường được định nghĩa là một phần của bộ nhớ được dành riêng làm nơi lưu giữ tạm thời cho dữ liệu được gửi đến hoặc nhận từ một thiết bị bên ngoài, chẳng hạn như ổ cứng, bàn phím, máy in hoặc mạng.

Dòng dữ liệu thứ hai, bắt đầu bằng - / + bộ đệm / bộ đệm , hiển thị lượng bộ nhớ vật lý hiện được dành cho bộ đệm bộ đệm hệ thống. Điều này đặc biệt có ý nghĩa đối với các chương trình ứng dụng, vì tất cả dữ liệu được truy cập từ các tệp trên hệ thống được thực hiện thông qua việc sử dụng các cuộc gọi hệ thống read () và write () đi qua bộ đệm này. Bộ đệm này có thể tăng tốc độ truy cập dữ liệu rất nhiều bằng cách giảm hoặc loại bỏ nhu cầu đọc hoặc ghi vào ổ cứng hoặc ổ đĩa khác.

Hàng thứ ba, bắt đầu bằng Hoán đổi , hiển thị tổng không gian hoán đổi cũng như bao nhiêu phần hiện đang được sử dụng và bao nhiêu vẫn có sẵn.

Hãy phân tích việc sử dụng bộ nhớ của hệ thống của bạn

Bạn đã sử dụng freelệnh với tùy chọn '-m', được sử dụng để hiển thị kết quả tính bằng megabyte

-m, --mega
              Display the amount of memory in megabytes.

Tổng bộ nhớ là 595 (Được sử dụng + miễn phí)

Đã sử dụng: 482 Miễn phí: 112

482 MB trong số 595 MB được sử dụng bởi hệ thống của bạn, trong đó chỉ có 93 MB được sử dụng bởi các chương trình đang hoạt động và còn lại 324 MB trong bộ nhớ cache

Vì vậy, khi bạn chạy bất kỳ chương trình nào trong tương lai, hãy nói rằng yêu cầu nhiều hơn 120 MB. Tất cả 112 MB (hiện tại miễn phí) sẽ được cung cấp và 8 MB còn lại sẽ được lấy từ bộ đệm / bộ đệm chương trình không hoạt động.

Chỉnh sửa : Tìm thấy liên kết này , cung cấp giải thích tốt.


Tôi không nghĩ rằng điều này là chính xác. Nếu bạn loại bỏ bộ nhớ cache, bạn có 93mb được sử dụng để bạn còn 501.
Nanne

Tại sao bạn nghĩ rằng nó không đúng. Bộ nhớ trống trên hệ thống OP là 112MB + 324MB (được lưu trong bộ nhớ cache). Vì vậy, khi một chương trình mới bắt đầu, nó sẽ sử dụng 112MB trước và sau đó là bộ đệm.
devav2

về cơ bản, bởi vì 595-93=501 và (cho hoặc lấy 1mb để làm tròn), và nó giống như 112là số bạn nghĩ rằng op đang tìm kiếm.
Nanne

501 là chính xác và đó là những gì tôi đang cố gắng giải thích. Trong số 595, 482 được sử dụng. Trong đó chỉ có 93 là bộ nhớ hoạt động được sử dụng bởi các chương trình. Vì vậy, 112 là miễn phí có sẵn + nếu cần thêm, bộ nhớ có thể được lấy từ bộ đệm, được sử dụng trước đây và hiện không hoạt động.
devav2

ok, đồng ý rồi :)
Nanne
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.