Sau khi tìm kiếm xung quanh vấn đề này và chỉ tìm thấy bài đăng của những người không giải thích chính xác con số "được lưu trong bộ nhớ cache", tôi quyết định đặt câu hỏi này.
Tôi có một số máy chủ trong tay, hoạt động kỳ lạ. Cụ thể, việc sử dụng RAM của họ rất cao, không có lý do rõ ràng. Có vẻ như một quá trình vô hình có rất nhiều RAM "đã sử dụng" (và ý tôi là "đã sử dụng").
Dưới đây là một số thông tin:
- tất cả các máy chủ chạy SLES 11
- hạt nhân là 3.0.76
- tất cả các máy chủ chạy như khách trong cơ sở hạ tầng VMWare ESX
- Tôi chưa thiết lập máy chủ và không có quyền lựa chọn hệ điều hành cũng như không có quyền truy cập vào cơ sở hạ tầng ảo hóa
- tất cả các máy chủ đều được thiết lập tương tự nhau và chúng chạy cùng một bộ phần mềm (đó là một cụm và vâng, tôi biết, cụm ảo hóa, yada yada, như đã nói: Tôi đã và không nói gì về điều đó)
Và một số đầu ra vỏ:
root@good-server:# free -m
total used free shared buffers cached
Mem: 15953 14780 1173 0 737 8982
-/+ buffers/cache: 5059 10894
Swap: 31731 0 31731
root@good-server:# python ps_mem.py
[... all processes neatly listed ...]
---------------------------------
4.7 GiB
=================================
root@bad-server:# free -m
total used free shared buffers cached
Mem: 15953 15830 123 0 124 1335
-/+ buffers/cache: 14370 1583
Swap: 31731 15 31716
root@bad-server:# python ps_mem.py
[... all processes neatly listed ...]
---------------------------------
4.0 GiB
=================================
Nội dung của / Proc / meminfo của máy chủ tốt
MemTotal: 16336860 kB
MemFree: 112356 kB
Buffers: 138384 kB
Cached: 1145208 kB
SwapCached: 1244 kB
Active: 4344336 kB
Inactive: 1028744 kB
Active(anon): 3706796 kB
Inactive(anon): 382724 kB
Active(file): 637540 kB
Inactive(file): 646020 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 32493560 kB
SwapFree: 32477728 kB
Dirty: 1248 kB
Writeback: 0 kB
AnonPages: 4087776 kB
Mapped: 60132 kB
Shmem: 156 kB
Slab: 274968 kB
SReclaimable: 225864 kB
SUnreclaim: 49104 kB
KernelStack: 4352 kB
PageTables: 16400 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 40661988 kB
Committed_AS: 6576912 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 311400 kB
VmallocChunk: 34359418748 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 73728 kB
DirectMap2M: 16703488 kB
Nội dung của / Proc / meminfo của máy chủ xấu
MemTotal: 16336860 kB
MemFree: 1182320 kB
Buffers: 756244 kB
Cached: 8695688 kB
SwapCached: 0 kB
Active: 13499680 kB
Inactive: 843208 kB
Active(anon): 4853460 kB
Inactive(anon): 37372 kB
Active(file): 8646220 kB
Inactive(file): 805836 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 32493560 kB
SwapFree: 32493560 kB
Dirty: 1268 kB
Writeback: 0 kB
AnonPages: 4890180 kB
Mapped: 84672 kB
Shmem: 252 kB
Slab: 586084 kB
SReclaimable: 503716 kB
SUnreclaim: 82368 kB
KernelStack: 5176 kB
PageTables: 19684 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 40661988 kB
Committed_AS: 6794180 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 311400 kB
VmallocChunk: 34359419468 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 112640 kB
DirectMap2M: 16664576 kB
TL; DR - nếu bạn so sánh các cạnh này, đây là điểm khác biệt chính (BADserver - GOODserver):
MemFree -1070 MB
Cached -7550 MB
Active -9155 MB
Active(anon) -1147 MB
Active(file) -8009 MB
AnonPages - 802 MB
Những khác biệt khác là khá nhỏ và trong giới hạn người ta có thể mong đợi (nhưng bạn có thể tự mình nhìn thấy)
Như bạn có thể thấy, trên máy chủ tốt, tổng số bộ nhớ RES và SHR của tất cả các quy trình khá phù hợp với free -m
đầu ra của giá trị "được sử dụng - / + bộ đệm / bộ đệm" - đó là những gì bạn mong đợi, đúng ?
Bây giờ hãy nhìn vào máy chủ xấu: free -m
đầu ra của giá trị "đã sử dụng - / + bộ đệm / bộ đệm" cao gấp khoảng 3 lần bạn mong đợi, tổng hợp mọi thứ ps
có thể hiển thị cho bạn.
Điều này cũng phù hợp với những gì /proc/meminfo
cho tôi biết.
Cho đến nay tôi không biết làm thế nào mà thậm chí có thể. Điều gì có thể xảy ra ở đây?
/proc/meminfo
bạn yêu cầu là cho máy chủ tốt? Bạn có thể cung cấp một tài liệu tham khảo máy chủ xấu quá?