Bộ nhớ tối đa SQL Server, tệp trang, độ song song mức tối đa


15

Ba câu hỏi hy vọng bạn là bậc thầy DBA của vũ trụ có thể trả lời:


  1. Tôi biết cách tốt nhất là đặt bộ nhớ tối đa của SQL Server. Vì vậy, nếu máy chủ có RAM 44 GB được cài đặt SQL Server, chúng ta nên đặt bộ nhớ tối đa của SQL Server là khoảng 37 GB.

Nhưng chúng ta nên đặt gì nếu Dịch vụ phân tích SQL và Dịch vụ báo cáo SQL được cài đặt trên cùng một máy chủ với SQL Server? Có phải tốt hơn là đặt bộ nhớ tối đa của SQL Server thành 22GB RAM để Phân tích có thể lấy 22GB RAM khác không?


  1. Trên máy chủ chạy SQL Server có RAM 44 GB, cách tốt nhất để đặt kích thước tệp trang là gì? Tôi đọc trên Brent Ozar ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-doad/ ) như sau:

SQL Server không cần một tệp trang khổng lồ. nếu bạn đang cài đặt các ứng dụng khác trên máy chủ (chúng tôi không khuyến nghị-- SQL Server nên được cách ly). bạn có thể cần một tệp trang lớn hơn. Nếu SQL Server là dịch vụ chính duy nhất chạy trên hộp, chúng tôi thường tạo tệp trang kích thước 2GB trên ổ đĩa hệ thống.

Microsoft cho biết chúng ta nên thiết lập hệ thống tệp trang được quản lý tới 1,5 lần RAM phù hợp với lời khuyên của Remus (xem -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -lớn-ram / ).

Vì vậy, trên máy chủ của chúng tôi có 44GB RAM, chúng tôi đã cài đặt SQL Server bên cạnh Dịch vụ phân tích SQL và Dịch vụ báo cáo SQL. Kích thước nào chúng ta nên đặt tập tin trang?


  1. Đối với SharePoint, Máy chủ SQL là một phần của trang trại của SharePoint và nơi SharePoint lưu trữ cơ sở dữ liệu của nó, mức độ song song tối đa phải được đặt trên 1. Bây giờ chúng ta có một máy chủ không phải là một phần của trang trại SharePoint (gọi nó là sql2) máy chủ chúng tôi đã cài đặt SQL Server, phân tích và báo cáo SQL. SharePoint không lưu trữ cơ sở dữ liệu của nó trên máy chủ này, nhưng chúng tôi có cơ sở dữ liệu / khối phân tích được báo cáo và phân tích được tạo mà SharePoint đọc và ghi vào.

Brent Ozar nói:

Nguyên tắc chung: đặt giá trị này thành số lõi vật lý trong một ổ cắm nút (bộ xử lý) nút NUMA duy nhất trên phần cứng của bạn hoặc ít hơn

Chúng ta nên cấu hình cái gì trên phiên bản SQL Server này để có mức độ song song tối đa khi nó có 4 VCPU?


Hy vọng các bạn cung cấp không chỉ cho tôi mà nhiều quản trị viên sql hiểu biết sâu sắc hơn một chút về các thực tiễn tốt hơn so với rừng rậm trên các dải.

Câu trả lời:


12

3 câu hỏi của bạn chạm max memory, page filemax dop setting.

BỘ NHỚ


Nếu máy chủ chỉ dành riêng cho SQL Server mà không có dịch vụ Phân tích (vì SSAS là một quái thú khác), thì các thực tiễn tốt nhất được đề xuất của Glenn là điểm khởi đầu tốt . Để biết thêm các thành phần, bạn nên tham khảo blog của Jonathan về cách định cấu hình bộ nhớ tối đa .

Tôi đã trả lời về cấu hình bộ nhớ tối đa và tối thiểu của SQL Server . Điều này sẽ hữu ích nếu bạn có nhiều gói SSIS đang chạy trên cá thể máy chủ của bạn.

Trang tập tin


Tôi thường đặt nó cách xa C:\ổ đĩa trên ổ đĩa có đủ dung lượng đĩa. Tôi đồng ý với khuyến nghị của Remus và Brent. Nó nênPAGE FILE FOR SQL SERVER = 1.5 * RAM . Một tệp trang sẽ hữu ích khi bạn gặp phải chính mình trong tình huống trong đó bạn phải thực hiện ĐẦY ĐỦ NHỚ NHỚ (thường được Microsoft CSS yêu cầu) để khắc phục sự cố.

Đọc Cách xác định kích thước tệp trang phù hợp cho các phiên bản Windows KB 889654 64 bitBuck Woody nói về tệp trang tại đây .

Cài đặt MAX DOP


Đối với sharepoint đề nghị của nó maxdop = 1được đặt rộng ví dụ. Đối với một máy chủ sql bình thường, tôi khuyên bạn nên làm theo - Cách tốt để lặp lại để tính MAXDOP trên SQL Server là gì? Tôi có một kịch bản được viết sẽ tính toán nó cho bạn.

Ý chính bên dưới ( KB 2806535 cũng đề cập đến điều tương tự):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

Lưu ý phụ, tôi khuyên bạn nên đọc - Các tùy chọn cập nhật và cấu hình được đề xuất cho SQL Server 2012 và SQL Server 2014 với khối lượng công việc hiệu suất cao


Một điều cần lưu ý là trên bài đăng trên blog của Buck Wood đã được tham chiếu ở trên, Remus bình luận "Điều gì tiết kiệm trong ngày là AWE: bộ nhớ được bảo lưu thông qua AWE không bắt buộc phải đặt trước tệp trang (vì bị khóa trong RAM vật lý và do đó không thể bị khóa phân trang). Việc sử dụng AWE là tự động trên x64. " Dường như đã thấy với AWE, chúng tôi không cần một tệp trang lớn.
Jason Carter

@Kin bạn nói "Tôi đồng ý với khuyến nghị của Remus và Brent". Nhưng sau khi xem qua Hướng dẫn thiết lập của Brent (được trích dẫn bởi OP ở trên) và Điều Remus, chúng trái ngược nhau. Vì vậy, với tôi câu trả lời của bạn về tập tin trang để lại câu hỏi đang chờ xử lý.
Magier

1
@Magier Tôi có xu hướng đi theo khuyến nghị của MS vì tôi đã rơi vào tình huống chúng tôi cần phải sử dụng bộ nhớ đầy đủ để chẩn đoán vấn đề - chúng tôi không biết đó là máy chủ windows hay sql. Trong tình huống đó khuyến nghị MS là tốt nhất. Nếu bạn không gặp phải tình huống đó, thì lời khuyên của Brent cũng có giá trị. Tôi có xu hướng ở bên an toàn, vì vậy tôi đi cùng PAGE FILE FOR SQL SERVER = 1.5 * RAM. Câu trả lời đó có đáp ứng được câu hỏi của bạn không ?
Kin Shah

3

Vì vậy, trên máy chủ của chúng tôi có 44GB RAM, chúng tôi đã cài đặt SQL Server bên cạnh Dịch vụ phân tích SQL và Dịch vụ báo cáo SQL. Kích thước nào chúng ta nên đặt tập tin trang?

Thêm vào những gì Kin đã đề cập, tôi khuyên bạn nên sử dụng Perfmon Countersđể tính toán kích thước tệp trang của bạn. Tôi cũng đồng ý với khuyến nghị của Remus về tệp trang nên gấp 1,5 lần RAM trên hệ thống . Nhưng khuyến nghị này đang xem xét tất cả các khía cạnh và kịch bản có thể và 'khuyến nghị chung'. Tôi đoán bạn quan tâm nhiều hơn đến giá trị cụ thể. Nó đây rồi

Nhu cầu tệp trang của một hệ thống riêng lẻ sẽ thay đổi dựa trên vai trò của máy chủ, tải, v.v. Có một số bộ đếm hiệu suất mà bạn có thể sử dụng để theo dõi việc sử dụng bộ nhớ được cam kết riêng tư trên cơ sở toàn hệ thống hoặc trên mỗi tệp. Không có cách nào để xác định bao nhiêu bộ nhớ cam kết riêng tư của một quá trình là bao nhiêu và bao nhiêu được phân trang cho các tệp hoán trang.

Bộ nhớ: Số byte cam kết : Số byte bộ nhớ ảo đã được cam kết. Điều này không nhất thiết thể hiện việc sử dụng tệp trang - nó đại diện cho lượng không gian tệp trang sẽ được sử dụng nếu quá trình hoàn toàn không được thực hiện

Bộ nhớ: Cam kết giới hạn: Số byte bộ nhớ ảo có thể được cam kết mà không phải mở rộng các tệp hoán trang.

Tệp hoán trang :% Tỷ lệ sử dụng Phần trăm của tệp hoán trang đã cam kết

Tệp hoán trang :% Sử dụng Đỉnh cao Tỷ lệ phần trăm cao nhất của tệp hoán trang đã cam kết

Vui lòng sử dụng các bộ đếm trên để đặt giá trị phù hợp cho tệp trang. Bạn có thể đọc Liên kết này để có thêm thông tin về tệp trang.

Có phải tốt hơn là đặt bộ nhớ tối đa của SQL Server thành 22GB RAM để Phân tích có thể lấy 22GB RAM khác không?

Không, tôi không nghĩ vì vậy bạn đã bỏ lỡ các yêu cầu hệ điều hành ở đây. Trước tiên, bạn cần đặt bộ nhớ máy chủ tối đa tối ưu cho Máy chủ SQl. Đây chủ đề SE có thêm chi tiết về cách cài đặt giá trị bộ nhớ máy chủ tối đa đúng. Một lần nữa tôi rất nhiều và luôn trả lời trên quầy perfmon để xem whay sẽ có giá trị tối ưu. Tôi đề nghị bạn đọc bài viết này và nhận trợ giúp từ các quầy để đặt giá trị tối ưu cho SSAS. Tôi đã từng sử dụng blog này để đặt giá trị bộ nhớ cho SSAS. Tôi không quá quan tâm đến SSAS nên những bình luận của tôi sẽ chỉ giới hạn trong bài viết này.

Bạn nên giữ MAXDOP = 1 cho các trường hợp Sharepoint tham số được chấp nhận rộng rãi của nó. Nếu IIRC, việc giới thiệu trở nên được chấp nhận rộng rãi sau khi gặp phải các bế tắc thường xuyên khi mức độ song song tối đa được để lại giá trị mặc định


3

Tất cả các câu trả lời khác được đưa ra cho đến nay cho tham chiếu kích thước tệp trang tương đối đã hết bài viết. Bài đăng trên Blog Technet này được cập nhật hơn (tháng 10 năm 2015) và cung cấp một cách chi tiết hơn để tính kích thước tệp trang lý tưởng trên các hệ thống hiện đại.

Họ nói rõ rằng quy tắc cũ của 1,5 x RAM không còn được áp dụng.

Tôi đã dán nội dung cốt lõi của bài viết dưới đây để tránh thối liên kết.

Lưu ý rằng họ khuyên bạn nên thu thập số liệu từ máy chủ của bạn chạy ở mức sử dụng cao nhất trong ít nhất 1 tuần - vì vậy ở giai đoạn lập kế hoạch và thực hiện dự án của bạn, bạn có thể không ở vị trí để thực hiện điều đó và sẽ phải dành thời gian sau trong dự án của bạn làm như vậy.


Khi định cỡ tệp trang, chúng ta cần xem xét nhu cầu bộ nhớ ứng dụng và cài đặt kết xuất lỗi.

Làm thế nào để bạn biết ứng dụng của bạn cần bao nhiêu bộ nhớ? Cách tốt nhất là lấy một đường cơ sở.

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

Lưu ý: Đảm bảo bạn thu thập thông tin trong một khoảng thời gian dài (ít nhất một tuần) và máy chủ đang chạy ở mức sử dụng cao nhất.

Công thức kích thước tệp trang phải là:

(Giá trị tối đa của byte được cam kết + bộ đệm 20% bổ sung để phù hợp với bất kỳ khối lượng công việc nào) -Kích thước

Ví dụ: Nếu máy chủ có RAM 24 GB và tối đa byte được cam kết là 26 GB, thì tệp trang được đề xuất sẽ là: (26 * 1.2) -24) = 7.2 GB

Còn yếu tố thứ hai: kích thước chúng ta cần ghi lại thông tin khi hệ thống gặp sự cố thì sao?

Kích thước của kết xuất bộ nhớ được xác định bởi loại của nó:

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

Trong hầu hết các trường hợp, Kump Memory Dump đủ tốt để phân tích nguyên nhân gốc, vì Complete Memory Dump chỉ được yêu cầu trong các trường hợp cụ thể, ví dụ bạn muốn xem điều gì đã xảy ra trong chế độ người dùng.

Theo kinh nghiệm của tôi, kích thước cho Kernel Memory Dump thường là như sau:

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

Tuy nhiên, những con số này KHÔNG phải là khuyến nghị chính thức của Microsoft và có thể khác trên các máy chủ của bạn, vì vậy hãy luôn kiểm tra trước khi bạn áp dụng.


2

Trả lời vì tôi là một trong những người bạn đang trích dẫn, heh.

1. Tôi nên đặt bộ nhớ tối đa là gì khi tôi cũng chạy Dịch vụ phân tích?

Bạn sẽ không tìm thấy hướng dẫn ngoài kia vì SSAS cũng giống như bất kỳ ứng dụng nào khác được cài đặt trên Máy chủ SQL của bạn: chúng tôi không biết bạn sẽ sử dụng bao nhiêu bộ nhớ. Hãy coi SSAS / SSIS / SSRS là các ứng dụng của bên thứ ba - chúng chỉ được đưa vào là "miễn phí" trong hộp Máy chủ SQL. Họ có nhu cầu về CPU, bộ nhớ và lưu trữ hoàn toàn khác nhau.

2. Tôi nên đặt kích thước tệp trang thành gì?

Đề xuất của tôi là để Windows có thể thực hiện một kết xuất nhỏ. Nếu bạn gặp phải vấn đề cần gọi cho bộ phận hỗ trợ của Microsoft, bạn có thể bắt đầu với kết xuất nhỏ. Nếu sự cố tái diễn và họ không thể tìm ra vấn đề từ bãi rác nhỏ (hoặc các nguồn thông tin khác, như nhật ký lỗi), thì họ có thể yêu cầu bạn chuyển đến kích thước RAM 1,5 lần.

Các khuyến nghị về RAM 1,5 lần của Microsoft là để Windows có thể thực hiện bộ nhớ ĐẦY ĐỦ khi hệ thống của bạn gặp sự cố.

Ngày nay, với các máy chủ có RAM 64-128-256GB, thông thường không nên để Windows tạm dừng để ghi ra toàn bộ nội dung của bộ nhớ trong khi gặp sự cố. Bạn muốn có SQL Server sao lưu và chạy và xử lý các nội dung kết xuất nhỏ hơn là đầy đủ. Lưu các bãi chứa đầy đủ cho sau này - bạn thường có thể đi cả sự nghiệp của mình mà không cần phải tải tệp kết xuất 64 + GB lên Microsoft. (Chúc may mắn với điều đó.)

3. Tôi đặt MAXDOP cho SharePoint là gì?

Những gì bạn gọi là đề xuất "của tôi" là từ Microsoft KB 2806535 . Bắt đầu ở đó nói chung, nhưng khi một ứng dụng cụ thể cho bạn biết điều gì đó khác biệt, thì họ biết điều gì đó về ứng dụng của họ khác với SQL Server nói chung - hãy làm theo điều đó.

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.