Sử dụng RAM cao Linux không rõ lý do


9

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ứ pscó thể hiển thị cho bạn.

Điều này cũng phù hợp với những gì /proc/meminfocho 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?


Cả hai kết quả đầu ra của /proc/meminfobạ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á?
Matthew Ife

Bạn có quyền truy cập vào bảng điều khiển VMware vSphere hoặc Trung tâm ảo không? Hoặc bất kỳ cách nào để xem một vài điều liên quan đến bộ nhớ của khách?
ewwhite

Vui lòng gửi đầu ra của / Proc / zoneinfo
Matthew Ife

@ewwhite không, thật không may, tôi hoàn toàn không có quyền truy cập vào bất cứ điều gì ngoài chính hệ điều hành.
luxifer

@MatthewIfe nhãn meminfo là một lỗi đánh máy - đã sửa nó ... bây giờ kéo nội dung
areainfo

Câu trả lời:


12

Tôi nghĩ rằng bạn có thể có một vấn đề bong bóng bộ nhớ VMware . Có khả năng bộ nhớ quá mức trên cơ sở hạ tầng vSphere quá cao. Bạn sẽ không thể khắc phục điều này mà không cần truy cập vào vSphere vCenter, nhưng bạn sẽ có thể phát hiện điều này từ bên trong các máy ảo của mình, giả sử vmtools đã được cài đặt:

Bạn có thể xin vui lòng gửi đầu ra của vmware-toolbox-cmd stat balloon?

Ngoài ra, bạn đã được phân bổ 16GB RAM. Xin hỏi bất cứ ai mà trong kiểm soát của cơ sở hạ tầng nếu có bất kỳ giới hạn RAM tay đặt trên các máy ảo trong câu hỏi.


Đã đọc cách hoạt động của Ballooning trên vmware linux vms tôi nghĩ đây là nguyên nhân. Tôi khá ấn tượng rằng họ không cung cấp một cách từ phía VM cho tài khoản cho các trang 'được sử dụng' mặc dù.
Matthew Ife

1
Điều này thực sự chính xác Tôi nghĩ rằng ... máy chủ tốt hiển thị "o MB" ... máy chủ xấu hiển thị "10092 MB", tương đối phù hợp với những gì chúng ta đang thấy!
luxifer

@luxifer Vậy bây giờ các bạn phải sửa nó . Điều này có nghĩa là loại bỏ giới hạn RAM nhân tạo trên VM hoặc vMotioning sang máy chủ ESXi khác. Hỏi nhóm cơ sở hạ tầng VMware của bạn để xem liệu đây có phải là vấn đề phổ biến hơn không .
ewwhite

@ewwhite tôi sẽ thông báo cho họ chắc chắn. Tuy nhiên, đó là cơ sở hạ tầng của một trong những khách hàng của chúng tôi và thông thường họ nên xác định điều này. Thật không may, đó không phải là cách mà các nhà cung cấp dịch vụ CNTT lớn trên toàn thế giới dường như hoạt động;)
luxifer

@luxifer Nghiêm túc, tôi thấy rằng điều này có thể xảy ra trong tất cả các loại tổ chức và những người được giao nhiệm vụ quản lý cơ sở hạ tầng vSphere dường như không nhận ra điều đó.
ewwhite
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.