Bộ nhớ cache của bộ nhớ cache trong lệnh hàng đầu là gì?


46

Khi chạy top, tôi nhận được:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

Xem phần: 2256128k lưu trữ? Nó chính xác nghĩa là gì?

Tôi đang so sánh hai VPS từ hai nhà cung cấp, cái này luôn có số lượng lớn ở đó (70% bộ nhớ đã sử dụng) và nhà cung cấp VPS khác luôn hiển thị 0.

Câu trả lời:


15

Con số đó trước khi được lưu trong bộ nhớ cache là dung lượng bộ nhớ vật lý đang được sử dụng bởi bộ đệm bộ đệm cho các hệ thống tệp của bạn.

không thực sự liên quan đến SWAP, mặc dù nằm trên dòng "Swap:".

Để xác minh câu trả lời của tôi với một thử nghiệm nhỏ, hãy thử như sau:

Chạy trên cùng và lưu ý giá trị của 'bộ nhớ cache'. Bây giờ chạy

dd if=/dev/zero of=~/trick bs=1M count=128

nếu bạn chạy lại từ đầu, bạn sẽ thấy rằng 'bộ nhớ cache' đã tăng thêm 128M

Bây giờ xóa tập tin

rm ~/trick

Chạy lại từ đầu và bạn sẽ thấy 'bộ nhớ cache' đã giảm 128M

Vì vậy, đối với Mem:

total = used + free

used = <all apps> + buffers + cached

(trong đó bộ đệm về cơ bản là siêu dữ liệu cho bộ nhớ cache). Một chút bối rối của một giao diện người dùng.


và tôi có thể ảnh hưởng đến điều này bằng mọi cách, ví dụ như giới hạn nó hoặc vô hiệu hóa hoàn toàn?
KKK

2
Tại sao bạn muốn làm điều đó?! bạn sẽ làm gì với?! Đó là về cách bộ đệm hệ thống tập tin trong bộ nhớ phyrypt.

Bởi vì hầu hết các hệ thống tập tin là một DB, DB có bộ đệm riêng của nó, vì vậy tôi cho rằng sẽ tốt hơn nếu hạn chế phần này bằng cách nào đó.
KKK

Bạn có thể làm điều đó với một số tìm kiếm nhưng tôi không khuyên bạn. Điều này sẽ giới hạn hiệu suất của FS

117

nhân Linux sẽ sử dụng bộ nhớ khả dụng cho bộ nhớ đệm đĩa, trừ khi chương trình đang chạy yêu cầu.

Điều này được coi là tốt; giả sử bạn có RAM 4 GB và các chương trình của bạn chỉ sử dụng 1 GB. 3 GB khác sẽ lãng phí. Mặc dù ấn tượng "cảm thấy tốt" khi biết bạn chỉ sử dụng 25% bộ nhớ, nhưng đối tác là 75% còn lại sẽ không được sử dụng. Vì vậy, kernel sử dụng điều đó cho các tập tin lưu trữ giúp cải thiện đáng kể hiệu năng. Đó là tự động; Không giống như các hệ điều hành cũ hơn, bạn không cần phải quyết định dành bao nhiêu cho bộ đệm đĩa hoặc tự cấu hình nó.

"Bộ đệm đĩa Linux rất không phô trương. Nó sử dụng bộ nhớ dự phòng để tăng đáng kể tốc độ truy cập đĩa và không lấy bất kỳ bộ nhớ nào khỏi các ứng dụng. Kho ram được sử dụng đầy đủ trên Linux là sử dụng phần cứng hiệu quả, không phải là dấu hiệu cảnh báo."

Đây là một câu hỏi phổ biến mà có toàn bộ trang web dành cho nó:

http://www.linuxHRyram.com

Trang web thậm chí còn có cách để làm trống bộ đệm đĩa để bạn có thể chạy một số ứng dụng và xem chúng nhanh hơn bao nhiêu với bộ đệm được kích hoạt :)


4
Yêu câu trả lời, nhưng vì thiếu danh tiếng nên tôi không thể nâng cấp nó (chưa). Lấy làm tiếc.
KKK

4
Đừng lo lắng, tôi rất vui khi được giúp đỡ. Hy vọng thông tin hữu ích!
roadmr

Đây phải là câu trả lời được chấp nhận. Ồ, tốt . . :(
ankush981

chắc chắn nên là câu trả lời được chấp nhận linuxHRyram là thông tin tuyệt vời!
rafaelbattesti
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.