Chúng tôi có một cơ sở dữ liệu với khối lượng công việc OLAP / OLTP hỗn hợp. Các truy vấn khá đặc biệt và được tạo động trong máy chủ ứng dụng trung cấp. Khi chúng tôi khởi động máy chủ, hiệu suất hoàn toàn chấp nhận được, nhưng mức tiêu thụ bộ nhớ sẽ ngày càng nhiều hơn cho đến khi hết bộ nhớ khả dụng (30 GB). Sau đó, hệ thống ngày càng chậm hơn.
Các lệnh như Dbcc freeproccache
không có hiệu lực.
Không có nhiều giao dịch trong select * from sys.dm_tran_session_transactions
(không nhiều hơn khi hệ thống ổn), một số lần danh sách này trống.
Kết quả đầu tiên dbcc memorystatus
là
VM Reserved 42136628
VM Committed 1487176
Locked Pages Allocated 24994048
Reserved Memory 1024
Reserved Memory In Use 0
Khởi động lại SQL Server giải quyết vấn đề trong một thời gian.
- Điều gì gây ra hành vi này? Làm thế nào nó có thể tránh được?
- Nếu một giải pháp thực sự cho nguyên nhân quá khó khăn, có lệnh nào buộc SQL Server thực sự giải phóng tất cả bộ nhớ mà không cần khởi động lại DBMS hoàn chỉnh không?
Máy chủ đang chạy trên phần cứng chuyên dụng (không phải VM). Chúng tôi đã có một số công việc theo lịch trình, nhưng chúng tôi đã vô hiệu hóa chúng trong một thời gian, không có thay đổi. Có các ứng dụng trung cấp khác đang chạy trên cùng một máy chủ, nhưng chúng sử dụng không quá 2GB bộ nhớ, CPU không đáng kể và hầu như không có I / O. Chúng tôi đã khởi động lại tất cả các ứng dụng như vậy mà không có thay đổi.