Rò rỉ bộ nhớ Windows Server 2008 R2 64 bit


12

Tôi đã gặp sự cố ở một trong các máy chủ văn phòng của mình. Nó đã ảo hóa Windows 2008 R2 Server với bộ nhớ RAM 6GB. Nó chỉ có Microsoft SQL Server (bộ nhớ được gán tối đa = 3GB) và chỉ là một phần mềm không tiêu thụ nhiều hơn 1GB RAM. Tuy nhiên, bộ nhớ RAM của máy chủ đã gần đầy, và nhìn vào các quy trình trong trình quản lý tác vụ, chúng dường như không tổng hợp được điều này. Tôi đã cài đặt RamMap, nhưng không thể diễn giải nó rất dễ dàng, có "giá trị cao" nào bạn có thể xác định không?

nhập mô tả hình ảnh ở đây


1
Sắp xếp theo "Tổng" hoặc "Hoạt động" sẽ khiến câu trả lời khá rõ ràng.
Dmitry Grigoryev

Câu trả lời:


18

Chà, tôi thấy ~ 3,2 gigabyte bộ nhớ Driver Khóa, ngay lập tức nổi bật là đáng ngờ.

Loại bộ nhớ này, Driver Khóa bộ nhớ, là bộ nhớ đã bị khóa bởi trình điều khiển chế độ kernel. Thông thường cho mục đích chuyển một lượng nhỏ dữ liệu, thường là trong khoảng thời gian ngắn .

Vì vậy, nếu bạn có một khối lớn bộ nhớ bị khóa, trong một thời gian dài , đó thường là dấu hiệu cho thấy có gì đó không đúng.

Tôi sẽ đoán mò ở đây và đoán rằng vì bạn đã đề cập rằng đó là một máy chủ ảo hóa, đó là trình điều khiển khinh khí cầu VMware đang làm điều này. Tôi không có đủ dữ liệu để có thể cho bạn biết lý do tại sao nó làm điều này, nhưng có rất nhiều trường hợp và KB hỗ trợ VMware, như thế này , nói riêng về trình điều khiển khinh khí cầu giữ lại một lượng lớn bộ nhớ khi không nên ' t được.

Bạn cũng phải xem xét khả năng trình điều khiển khinh khí cầu hoạt động như thiết kế và nó đang cố gắng biến trang máy chủ của bạn ra khỏi bộ nhớ vì nó rất cần phải cung cấp bộ nhớ cho một VM khác trên cùng một máy chủ.

Vẫn có một khả năng khác đó không phải là trình điều khiển bộ nhớ động hypanneror, mà thay vào đó chỉ là một trình điều khiển thiết bị giả mạo.

Trình điều khiển thường phân bổ bộ nhớ được "gắn thẻ" bằng thẻ 3 hoặc 4 ký tự để đưa ra gợi ý về trình điều khiển nào chịu trách nhiệm thực hiện phân bổ.
poolmon.exe, một phần của SDK Windows / DDK, có thể giúp chẩn đoán.

Như tôi đã nói, phỏng đoán hoang dã, nhưng đó là điều tốt nhất tôi có thể làm với dữ liệu tôi có.


16

Chà, tôi có mọi phiên bản SQL Server có thể tưởng tượng được tại cơ sở, từ năm 2005 đến 2016 và tôi chưa thấy bất kỳ rò rỉ bộ nhớ nào lớn như 100% các mem thực sự được sử dụng. Xem bạn đã bật Bộ nhớ động cho Máy ảo chưa .

Driver Lockedlà một con số bạn nên tập trung vào. Trong trường hợp cụ thể của bạn, Driver Lockedcó lẽ là một trong những trình điều khiển Hyper-V, đã khóa tất cả bộ nhớ không sử dụng (được gán cho VM, nhưng không được sử dụng bởi atm), vì vậy nó có thể "cung cấp" cho một số VM khác được định cấu hình với Bộ nhớ động hoặc thậm chí là hệ điều hành máy chủ, bất cứ lúc nào cần nó. Bạn có thể kiểm tra nó bằng cách mở một số tệp lớn hoặc ứng dụng cần nhiều bộ nhớ trong máy ảo đó - bộ nhớ DriverLocked sẽ giảm khi một số số liệu khác tăng lên. IMHO điều này không phải là một nguyên nhân gây lo ngại nếu bạn không cung cấp quá nhiều bộ nhớ cho tất cả các máy ảo.


5
Tôi đánh bại bạn khoảng 8 giây ... chào mừng bạn đến với Server Fault. :)
Ryan Ries

Bạn đã làm, thực sự :-)
Kitet
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.