Sử dụng bộ nhớ lạ trong Windows Server 2008 R2


20

Tôi hy vọng ai đó có thể giúp đỡ. Chúng tôi đã có một máy Windows Server 2008 R2 với 16GB RAM, giúp cho tất cả bộ nhớ khả dụng của nó bị ăn bởi thứ gì đó. Không có gì trong Trình quản lý tác vụ hoặc Trình giám sát tài nguyên cho thấy bất kỳ quá trình nào sử dụng bộ nhớ trên 300MB ... nhưng mức sử dụng bộ nhớ trên máy chủ là 15,7GB.

https://i784.photobucket.com/albums/yy129/ThunderPeel2001/ram-usage.gif

Những thứ duy nhất đang chạy là SQL Server 2008IIS7.5 (với ASP.Net).

Lưu ý: Việc sử dụng RAM sau khi khởi động lại bắt đầu thấp và hoạt động theo cách của nó. Sau một tuần, chúng tôi tiếp tục tìm kiếm người ngoài cuộc trong tình huống này.

Làm thế nào tôi có thể khám phá những gì ăn tất cả bộ nhớ của chúng tôi? :


1
Chính xác thì bạn đã "Hạn chế sử dụng RAM SQL Server (tối thiểu / tối đa) đến 13GB như thế nào, điều này không nên xảy ra nữa."? Tôi đang chạy máy Win 2008 R2 với SQL 2008 R2 và tôi đang gặp vấn đề tương tự.

Đây là một thiết lập trong SQL Server Studio. Chúc may mắn!
Django Reinhardt

Câu trả lời:


15

Đây có phải là máy chủ 64 bit không - bạn có bật các trang khóa trong chính sách cục bộ của bộ nhớ không? SQL có khả năng tiêu thụ phần còn lại của bộ nhớ của bạn Nếu bạn nhìn vào bộ đếm perfmon, bạn sẽ thấy phân bổ bộ nhớ

Đây là một bài viết giải thích nó sâu sắc

Bạn cũng có thể xem các bộ đếm trong SQL

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )

2
Cái này giải thích tất cả. Việc sử dụng bộ nhớ là "sử dụng tất cả khả dụng" (ví dụ: 2000TB) và với các trang bị khóa trong RAM, thì không phải mọi thứ đều có quyền truy cập vào nó khi nó được sử dụng. Hiện tại đã giới hạn mức sử dụng RAM của SQL Server (tối thiểu / tối đa) xuống còn 13GB, điều này không nên xảy ra nữa. Bây giờ tôi cũng có một số công cụ để theo dõi mọi thay đổi. Cảm ơn bạn đã giúp đỡ!
Django Reinhardt

>> Bây giờ tôi cũng có sẵn một số công cụ để theo dõi mọi thay đổi - Bạn đã sử dụng công cụ nào?
David Christiansen

6

Kiểm tra nhanh: khởi động lại SQL Server.
Một thử nghiệm nhanh khác: khởi động lại IIS.

Bạn sẽ biết chắc chắn nếu một trong số họ là thủ phạm, hoặc nếu bạn phải tìm một nơi khác.


Hình như SQL là thủ phạm!
Django Reinhardt

3

Nó có thể giúp sử dụng RamMap để xem bộ nhớ của bạn đi đến đâu.


1

Bạn có thực sự gặp bất kỳ vấn đề liên quan đến bộ nhớ?

Sử dụng bộ nhớ có bao giờ trở nên cao hơn bộ nhớ được cài đặt thực tế không, hay nó chỉ lấp đầy và ở đó?

Nếu bộ nhớ chỉ lấp đầy nhưng bạn không gặp vấn đề gì, thì đó chỉ là bộ nhớ cache thực hiện công việc của nó; bộ nhớ sẽ được tự động thực hiện nếu và khi bạn thực sự cần nó.

Nếu việc sử dụng bộ nhớ vượt quá giới hạn vật lý và máy chủ ngừng hoạt động, thì bạn đang gặp phải một số rò rỉ bộ nhớ và chắc chắn nên gỡ lỗi nó.

Một số bài viết thú vị về chủ đề "bộ nhớ cache":

http://bloss.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx
http://bloss.msdn.com/ntdebugging/archive/2007/10/10/the-memory -shell-game.aspx
http://bloss.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx


Chà, chúng tôi không thể cài đặt bất kỳ bản cập nhật Windows quan trọng nào mà không thiết lập lại máy chủ vì nó hết RAM. Khá vô lý. Bất cứ điều gì đang sử dụng nó, không muốn trả lại.
Django Reinhardt


0

Điều đầu tiên là, như đã nói trước đó, vá nó lại và xem nếu điều đó giải quyết vấn đề.

Thứ hai, nếu điều đó không hiệu quả, hãy sử dụng Process Explorer để có cái nhìn rõ hơn về việc sử dụng bộ nhớ của bạn. Chuyển đến menu View, sau đó chọn Cột, Bộ nhớ xử lý và kiểm tra các tùy chọn byte riêng, kích thước ảo và kích thước bộ làm việc. Xem nếu điều đó chỉ ra những gì để đổ lỗi ở đây.

Một cách tiếp cận quyết liệt sau đó sẽ là thử dừng dịch vụ. Ví dụ, IIS có thể là một con lợn bộ nhớ nếu bạn có nhóm ứng dụng và khu vườn web bị định cấu hình sai (quá nhiều trong số chúng) vì vậy đó là một ứng cử viên.

Chúc may mắn!

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.