Máy chủ SQL không sử dụng tất cả các lõi / luồng CPU


15

Sau khi nâng cấp phần cứng SQL Server của chúng tôi, chúng tôi nhận thấy trong Trình quản lý tác vụ Windows rằng phiên bản SQL chỉ sử dụng một nửa số luồng có sẵn cho nó:

Quản lý công việc.

Máy chủ có phần cứng và phần mềm sau:

  • Windows 2008 R2 Enterprise 64 bit SP1
  • Bộ xử lý Intel Xeon E7-4870 - 4 (40 lõi, 80 luồng)
  • Phiên bản doanh nghiệp Microsoft SQL Server 2012 (64-bit)

Chạy select cpu_count from sys.dm_os_sys_infotrở lại 40.

HĐH nhìn thấy tất cả 80 luồng.

Tại sao chỉ có một nửa sức mạnh xử lý của máy chủ được sử dụng?

Chúng tôi có cùng phần cứng và phần mềm trên hai máy chủ và cả hai đều thể hiện cùng một hành vi.

Câu trả lời:


23

Trong nhật ký lỗi của SQL Server, nó sẽ cho bạn biết lý do. Tôi đã tìm thấy điều này trên một hệ thống khách hàng (thực sự chỉ cần dán thông báo cho Google Juice):

SQL Server đã phát hiện 4 socket với 8 lõi mỗi socket và 16 bộ xử lý logic trên mỗi socket, 64 bộ xử lý logic; sử dụng 40 bộ xử lý logic dựa trên cấp phép SQL Server. Đây là một thông báo; không có hành động người dùng được yêu cầu.

Tôi đã nhận được lời giải thích có khả năng từ đây :

Đối với khách hàng có Đảm bảo phần mềm trên các giấy phép Máy chủ SQL EE hiện tại (hoặc truy cập vào chúng theo Thỏa thuận doanh nghiệp hiện tại của họ trong thời hạn), một phiên bản Enterprise Edition đã được tạo để cho phép họ nâng cấp lên SQL Server 2012. Phiên bản này có giới hạn kỹ thuật giới hạn phiên bản đối với chỉ sử dụng 20 lõi bộ xử lý (40 luồng CPU với Hyperthreading).

Tóm tắt: trong nhật ký lỗi, phiên bản sẽ được báo cáo là Enterprise Editionhoặc Enterprise Edition: Core-based Licensing. Nếu nó nói trước đây, như trong trường hợp hệ thống khách hàng đã nói ở trên, bạn sẽ cần phải có giấy phép dựa trên cốt lõi để sử dụng tất cả các lõi có sẵn.

Nếu đó không phải là trường hợp và bạn đã được cấp phép cho tất cả các lõi, hãy kiểm tra cài đặt mặt nạ mối quan hệ của bạn, đặc biệt nếu chúng được đặt và phần cứng bên dưới đã được nâng cấp.


Chúng tôi đã có một vấn đề tương tự. Chúng tôi xây dựng một VM với 1 socket và 32 lõi. Sql sẽ chỉ nhận ra 8 CPU. Chúng tôi chuyển nó thành 8 ổ cắm và 4 lõi vấn đề đã biến mất. Chúng tôi nơi chạy doanh nghiệp editon sql 2008r2 trên windows 2008r2.
dùng3799984

Tôi đã có cùng một vấn đề với một phiên bản tiêu chuẩn. Chúng tôi có 8 ổ cắm được sử dụng và nó sẽ không sử dụng phần còn lại. Tất cả những gì chúng ta phải làm là thay đổi VM và cấu hình 4 socket 2 lõi.
Nicolas de Fontenay

7

Tìm trong ERRORLOG từ khi SQL Server khởi động lần đầu tiên. Nó sẽ cho bạn biết nó đang sử dụng bao nhiêu CPU, và có lẽ tại sao. Nếu bạn có thể đăng tệp ERRORLOG ở đâu đó sẽ hữu ích trong việc xem những gì đang diễn ra.


3

Tôi đã thấy điều này trên một bài đăng khác của Ajmer Dhariwal:

Ngay cả khi bạn có phiên bản Enterprise, nếu mô hình cấp phép đang được áp dụng là Máy chủ + Giấy phép truy cập máy khách (CAL) thì máy chủ bị giới hạn ở 20 lõi vật lý mỗi phiên bả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.