Hạn chế tối đa việc sử dụng CPU SQL SERVER với WSRM


10

Tôi có một máy chủ vật lý đang chạy một phiên bản của SQL Server.

Tôi nhận thấy rằng khá thường xuyên máy chủ này đang chạy với mức sử dụng CPU 100%.

Nhóm CNTT của tôi không hài lòng về điều này và đề nghị chúng tôi dành 2 trong số 32 lõi cho HĐH.

Điều này hoạt động rất tốt, bây giờ tối đa sử dụng tối đa chỉ dưới 90%. Ngoài ra, việc truy xuất dữ liệu chậm từ nhiều người dùng khác nhau không còn được báo cáo.

Có bất kỳ lý do nào KHÔNG sử dụng WSRM (Trình quản lý tài nguyên hệ thống Windows) theo cách này - thay vì SQL Resource Governor không?


Bạn có thực sự muốn sử dụng tất cả CPU? Tiết kiệm một vài lõi cho HĐH có vẻ thận trọng phải không? Trên máy trạm của tôi, nếu tôi sử dụng tất cả các lõi cho một số số thì máy của tôi sẽ ngừng hoạt động. Tôi luôn giữ một vài lõi miễn phí. Điều này sẽ không được thực hành tốt trên một máy dành riêng cho SQL Server chứ?
ManInMoon

Những loại tải đang chạy trên máy chủ này? Loại quy trình nào đang sử dụng 100% CPU? Đây là OLTP hoặc phân tích hoặc đồ thị hay?
Max Vernon

@Forrest Khi bạn nói điều chỉnh - bạn có nghĩa là chính SQL Server - hoặc cấu trúc truy vấn / bảng? Nếu bạn có nghĩa là SQL Server, vui lòng cho tôi một liên kết đến những gì cần xem xét. Nếu hàng đợi / bảng, sau đó tôi chọn chúng khi tôi có thể, nhưng một số người dùng ít có ý thức thiết kế!
ManInMoon

Câu trả lời:


14

Có bất kỳ lý do KHÔNG sử dụng cách tiếp cận bạn đã xác định? Chắc chắn rồi.

Hãy tưởng tượng bạn đã mua một chiếc ô tô - một chiếc xe mà khi bạn đạt 50MPH thì động cơ bắt đầu quá nóng. Phản ứng của bạn đối với tình huống này là giới hạn xe một cách giả tạo đến 49MPH, hoặc để tìm ra lỗi của động cơ là gì?

Tại sao bạn nên giới hạn xe của bạn ở mức 49MPH? Nhà sản xuất tuyên bố rằng nó có thể lái nhanh tới 80MPH - bạn muốn lái xe của mình thật nhanh để bạn muốn đạt được tốc độ này - nếu không phải là vấn đề quá nóng chết tiệt đó.

Chiếc xe bạn mua cũng thực sự, thực sự đắt tiền. Mỗi xi lanh động cơ cần được sử dụng đến mức tối đa để bạn không lãng phí số tiền đó!

Bằng cách hạn chế một cách giả tạo Máy chủ SQL truy cập vào CPU, bạn đang bỏ lỡ hiệu năng. Bạn có thể đã tạm thời giải quyết các vấn đề về hiệu năng bằng cách đảm bảo CPU có sẵn cho HĐH sử dụng, nhưng bạn chưa trả lời được câu hỏi thực sự - TẠI SAO SQL Server sử dụng 100% CPU?

Lời khuyên của tôi như sau:

Tìm hiểu vấn đề thực sự là gì, và khắc phục nó. Đừng đề cập đến vấn đề với những gì hiệu quả là một loại bùn. Vấn đề SILL xuất hiện trở lại và đánh vào mặt bạn khi khối lượng công việc của máy chủ tăng lên một cách tự nhiên cùng với sự tăng trưởng.

Là một sửa chữa tạm thời , thống đốc tài nguyên có thể được sử dụng để hạ thấp CPU được sử dụng, UNTIL YOU TÌM VẤN ĐỀ THỰC SỰ.


11

Erik Darling đã đề cập đến lý do thực tế lớn nhất cho việc không sử dụng WSRM trong một nhận xét về câu hỏi của bạn:

... không có giới hạn đối ứng của việc sử dụng CPU trong các quy trình khác. SQL Server có thể không sử dụng hai lõi đó, nhưng những thứ khác có thể sử dụng 30 máy chủ SQL khác đang sử dụng. Đó là một crapshoot, thực sự.

Nếu điều này phù hợp với bạn, thì hãy kiên trì với nó - tất cả chúng ta đều bận rộn và bạn chỉ có thể dành quá nhiều thời gian cho bất kỳ vấn đề nào. Các lý tưởng giải pháp sẽ được sửa chữa các truy vấn cơ bản / vấn đề mà đang lái xe CPU đến điểm của các vấn đề sử dụng đáng chú ý (mà George bìa trong mình câu trả lời tuyệt vời ).

Erik tiếp tục nói

Ngoài ra, bạn đang trả tiền cấp phép SQL Server cho họ.

Từ quan điểm kinh doanh, đây có lẽ là phần tồi tệ nhất của thỏa thuận WSRM - bạn đang trả tiền cấp phép cho mỗi lõi cho 2 lõi rõ ràng không được sử dụng. Tại thời điểm viết bài này, đó là $ 3k hoặc $ 14k còn lại trên bàn (tùy thuộc vào Tiêu chuẩn so với Doanh nghiệp).

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.