Tôi có một nút SQL2012 SP4 duy nhất chạy một số cơ sở dữ liệu.
Máy chủ có sẵn 20GB bộ nhớ, 14GB được phân bổ cho SQL (không có gì khác chạy trên hộp).
Cứ sau vài phút SQL lại xóa toàn bộ bộ đệm. Tuổi thọ của trang đạt 0, các mô tả bộ đệm bộ đệm cho thấy rằng không có gì trong bộ đệm.
Tôi đã xem qua các thông báo giám sát tài nguyên và các thông báo đang nảy xung quanh từ mức cao / ổn định / thấp cứ sau vài mili giây:
RESOURCE_MEMPHYSICAL_HIGH RESOURCE_MEM_STEADY RESOURCE_MEMPHYSICS_LOW
Với dấu thời gian cách nhau vài mili giây. PLE về cơ bản là một mô hình răng cưa.
Tôi đã thấy điều này xảy ra trước đây với SQL2012 SP1 và câu hỏi này:
Các trang miễn phí SQL Server 2012 trong bộ đệm Cache không được sử dụng
Có vẻ là một vấn đề tương tự, mặc dù tôi đã cập nhật lên SP4.
Tôi đã thử bật LPIM cho tài khoản dịch vụ và tôi đã thử làm rối với cài đặt bộ nhớ tối đa. Việc giảm bộ nhớ tối đa dường như đã khiến bộ đệm bộ đệm trống thường xuyên hơn.
Bất kỳ ý tưởng về những gì để kiểm tra tiếp theo?
Khối lượng công việc của máy chủ hoàn toàn không có gì (Tôi đang cuộn qua danh sách các mục trong hệ thống ERP và nó đạt khoảng 40-50 MB trước khi bộ nhớ cache giảm xuống một lần nữa).
Thật thú vị vì tôi đã nâng cấp từ SP1 để thử và sửa lỗi này - bộ nhớ cache có khoảng 500MB. Kể từ đó, tôi giảm cài đặt bộ nhớ tối đa xuống 14GB, điều này dường như đã làm cho nó tồi tệ hơn.
Tôi tự hỏi liệu Windows có hoảng loạn và ném thông báo không chính xác về áp suất bộ nhớ tại SQL hay không - theo sau đó, máy chủ có bộ nhớ tối đa được đặt thành không bị chặn dường như chạy ok-ish nhưng không bao giờ lấp đầy bộ đệm hơn vài trăm MB - nhưng bây giờ nó hầu như không đến 50 ...
Thông tin thêm: cho những người đã hỏi
Số lõi: 4
Kích thước cơ sở dữ liệu: 80GB
Nhật ký lỗi hiển thị: A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 247928, committed (KB): 495656, memory utilization: 50%.
Kết quả chạy tập lệnh từ liên kết này: https://www.sqlskills.com/bloss/jonathan/identifying-external-memory-pressure-with-dm_os_ring_buffers-and-ring_buffer_resource_monitor/
Không chắc chắn làm thế nào để giải thích những điều này - có vẻ như có cả áp lực bộ nhớ bên trong và bên ngoài tại nhiều thời điểm ..
Thông tin thêm
Đây là một vị khách Hyper-V đang ngồi trên một máy chủ với 96GB tổng ram trong đó khoảng một nửa được phân bổ cho khách.
Các triệu chứng có vẻ tương tự như thế này:
SQL Server 2012 x64 - không thể phân bổ an toàn hơn 50% RAM
Tuy nhiên, khi tôi phân bổ 14GB cho SQL, các triệu chứng đã xuất hiện ngay lập tức (chỉ có 3GB bộ nhớ máy chủ được cam kết)
Đêm qua tôi đã tăng bộ nhớ khách lên 32GB và vấn đề đã biến mất nhưng tôi chỉ thấy 14GB cam kết của tổng bộ nhớ máy chủ (và doanh nghiệp chạy DB đang bận sáng nay và đây là lúc họ thường gặp vấn đề về hiệu năng).
Khoảng 8-9GB dữ liệu trong bộ nhớ cache tại thời điểm này, dường như ổn định.
Dường như gợi ý rằng 20GB là đủ cho khối lượng công việc trên hộp này. Bây giờ tôi rất vui khi để lại 32GB nhưng tôi thực sự muốn tìm hiểu sâu hơn về vấn đề này để tôi có thể định cấu hình tốt hơn cho VM / SQL.
Tôi sẽ tiếp tục đào và cập nhật nếu tôi tìm thấy câu trả lời!
Nhiều thông tin hơn nữa:
Tôi đã không khởi động lại SQL sau khi bật LPIM (không nhận ra đó là yêu cầu) nhưng tôi đã bật cài đặt này và khởi động lại để nâng cấp bộ nhớ nên bây giờ tôi không chắc việc tăng bộ nhớ hay LPIM đã giảm bớt các vấn đề.
Sẽ nhảy vào tối nay khi máy chủ không hoạt động và kiểm tra xem nó trông như thế nào ở mức 20GB nữa.
Hơn nữa Thông tin thêm:
Hiện tại máy chủ đang hoạt động ổn với 32 GB được phân bổ và chúng tôi chưa thấy vấn đề gì kể từ đó. Nếu cây này mọc lại, tôi sẽ quay lại câu hỏi này và tiếp tục đào.
Hiện tại vẫn còn là một bí ẩn nhưng tôi đoán là hiện tại tôi chỉ che giấu các vấn đề.