Tăng cài đặt bộ nhớ tối đa trên sản xuất máy chủ SQL


7

Tôi có một hộp sản xuất với 5 trường hợp trên.

Phiên bản: SQL Server 2014 SP3 Enterprise.

Tôi phát hiện ra rằng mặc dù máy có bộ nhớ ~ 400GB được chỉ định, nhưng cài đặt MAX MEMORY kết hợp trên tất cả 5 trường hợp là dưới 200 GB.

Các trường hợp không chịu áp lực bộ nhớ, nhưng vì chúng ta đã có bộ nhớ đó được chỉ định, thật lãng phí khi không sử dụng nó.

Tôi muốn tăng nó lên giá trị cao hơn, để lại 10% cho HĐH (một số trường hợp sẽ được chỉ định cao hơn các phiên bản khác).

Tuy nhiên, tôi chưa bao giờ thực hiện một sự gia tăng lớn như vậy của cài đặt này trước đây.

Tôi biết đó là một cài đặt động không yêu cầu khởi động lại, tuy nhiên, tôi tự hỏi về những điều sau:

  • Tôi có nên thực hiện tăng 2 giai đoạn (tức là tăng một nửa số tiền, đợi một tuần và sau đó tăng lại)?
  • Một cái gì đó có thể đột ngột phá vỡ (hoặc làm giảm hiệu suất) nếu máy chủ SQL đột nhiên có nhiều bộ nhớ hơn để chơi không?

Chúng tôi không bật các trang khóa trong cài đặt bộ nhớ và chúng tôi không bật theo dõi 834 .


Điểm kiểm tra của bạn (và bản sao lưu) có thể mất nhiều thời gian hơn với bộ đệm dữ liệu lớn hơn, nếu nhiều trang hơn được đưa vào bộ nhớ.
trưởng khoa

Câu trả lời:


1

Tôi có một ý kiến ​​hơi khác.

Nếu bạn không gặp áp lực bộ nhớ và ứng dụng của bạn chỉ hoạt động tốt, tại sao lại giới thiệu một biến không xác định (trong trường hợp của bạn - tăng bộ nhớ tối đa cho máy chủ sql)? Bạn chưa thử nghiệm sự thay đổi này, vì vậy nó là một rủi ro.

Nếu bạn có nhiều băng thông trên máy chủ của mình, bạn có thể xem xét hợp nhất nhiều phiên bản hơn trên máy chủ của mình.

Một cái gì đó có thể đột ngột phá vỡ (hoặc làm giảm hiệu suất) nếu máy chủ SQL đột nhiên có nhiều bộ nhớ hơn để chơi không?

Có, và tôi đã phải đối mặt với một vấn đề xuống cấp hoàn hảo với việc có nhiều bộ nhớ hơn và sử dụng TF 2335 đã khắc phục vấn đề này.

bạn có thể đọc câu trả lời của Paul để biết thêm chi tiết nhưng ý chính là:

Kích thước tiềm năng của nhóm bộ đệm cũng ảnh hưởng đến mô hình chi phí của trình tối ưu hóa để truy cập dữ liệu.


Máy chủ có 5 thể hiện. Để lại 50 GB cho HĐH, có thể tăng 150 GB và có thể chia thành 5 trường hợp, cung cấp 30 GB cho mỗi phiên bản, bạn có nghĩ chỉ cần tăng 30 GB có thể khiến trình tối ưu hóa thực hiện các kế hoạch điên rồ không?, Tôi nghi ngờ điều đó
Shanky

Tôi không khuyên bạn nên đặt TF 2335, có thể chỉ cho một hoặc hai truy vấn cụ thể nếu không có giải pháp thực tế nào khác, sử dụng QUERYTRACEON (và với hướng dẫn kế hoạch, việc theo dõi theo cách này sẽ dễ dàng hơn). Rốt cuộc, có một số khác biệt giữa năm 2008 và 2014.
trưởng khoa

@Shanky - những gì tôi đã nói là kích thước của vùng đệm ảnh hưởng đến mô hình chi phí của trình tối ưu hóa có thể dẫn đến các kế hoạch tối ưu hoặc tối ưu. Bây giờ thêm số tiền x sẽ kích hoạt điều đó? Cả bạn và tôi đều không thể nói điều đó mà không cần kiểm tra vì nó phụ thuộc vào nhiều yếu tố.
Kin Shah

@dean cho một nhóm bộ đệm lớn vào năm 2014, chúng tôi đã thấy nhiều hồi quy truy vấn. Traceflag có thể được sử dụng ở cấp máy chủ hoặc cấp truy vấn bằng các gợi ý truy vấn. Nó tùy thuộc vào OP để kiểm tra và quyết định xem có ít truy vấn bị ảnh hưởng hay không. Vì vậy, một lượng thử nghiệm tốt là bắt buộc đối với phần của OP. Trong trường hợp của tôi, tôi đã sử dụng nó làm gợi ý truy vấn và khi tôi tạo chỉ mục thích hợp, tôi không phải sử dụng cờ theo dõi đó.
Kin Shah

@Kin Không có nhiều kinh nghiệm của tôi (và trong dòng công việc của tôi, tôi giao dịch với rất nhiều khách hàng doanh nghiệp). Nếu các ước tính về số lượng thẻ là ổn, và nếu có các chỉ số thích hợp, thì TF này (hầu như) không bao giờ cần thiết (ít nhất là trong các phiên bản mới hơn). Tôi không bao giờ phải thiết lập nó. Một số trường hợp cạnh luôn luôn có thể tồn tại, tất nhiên.
trưởng khoa

0

You can change SQL Server max server memory anytime but when you do so SQL Server plan, data and other caches would be flushed. This means new queries hitting the SQL Server will go again though process of query plan creation which may be deciding factor some time. So if you really want to do it inform stakeholders that you want to change max server memory and do it when load is relatively very less. Please also inform people that due to cold cache few queries might take longer to execute during their first run.

Should I make the increase in 2 phases (i.e increase half the amount, wait a week and then increase it again )?

Just do it when you get approval and when load is relatively very less, there is no need to do it in phases.

Một cái gì đó có thể đột ngột phá vỡ (hoặc làm giảm hiệu suất) nếu máy chủ SQL đột nhiên có nhiều bộ nhớ hơn để chơi không?

Mọi thứ sẽ không bị phá vỡ nhưng có, vì bộ đệm được xóa, một số truy vấn có thể bắt đầu mất nhiều thời gian hơn để thực hiện trong lần chạy đầu tiên.

Chúng tôi không bật các trang khóa trong cài đặt bộ nhớ,

Tôi đề nghị bạn làm điều đó đặc biệt khi bạn có 5 trường hợp đang chạy. Bất kỳ trường hợp nào, do một số truy vấn / quá trình rouge, không được phép hog tất cả bộ nhớ. tốt hơn là đặt giới hạn tối đa cho tất cả các phiên bản SQL Server. Cũng lưu ý trong một số trường hợp SQL Server có thể tiêu thụ nhiều hơn giới hạn tối đa. Thêm LPIM yêu cầu "Khởi động lại máy chủ SQL"

Tình huống lý tưởng: Khi bạn có kế hoạch thêm LPIM và điểm đó thay đổi bộ nhớ máy chủ tối đa, vì bạn không phải đối mặt với bất kỳ vấn đề nào bạn có thời gian.


Cảm ơn đã phản ứng nhanh chóng. Máy là ảo, vì vậy tôi liên tục tìm thấy các ý kiến ​​khác nhau về LPIM trên máy ảo. Cảm ơn bạn đã ghi chú trên flash cache, thực sự tốt nhất là đợi cửa sổ bảo trì của chúng tôi và không chỉ nhấn vào thay đổi cài đặt bất cứ lúc nào.
Roni Vered

Đối với LPIM trên VM, tôi tin rằng nếu máy chủ VM của bạn được cấu hình chính xác để lại đủ bộ nhớ cho các quy trình khác nhau, bạn không nên lo lắng về điều đó. Xin vui lòng đọc câu trả lời tương tự được đưa ra bởi tôi
Shanky

Việc tăng max_server_memory sẽ không xóa cả dữ liệu cũng như kế hoạch bộ đệm. Giảm nó sẽ xóa bộ nhớ cache của gói và chỉ điều chỉnh bộ đệm dữ liệu theo / nếu cần.
trưởng khoa

@dean Bạn có chắc không? Nếu bạn đọc Câu trả lời này, nó có liên kết đến tài liệu MS cho biết nếu bạn sử dụng sp_configuretùy chọn, bộ đệm sẽ bị xóa.
Shanky

1
@dean Bạn phải kiểm tra thực sự, trong thời gian trung bình, vui lòng đọc DBCC FREEPROCCACHE (Transact-SQL) bạn sẽ thấy việc thay đổi bộ nhớ máy chủ tối đa sẽ xóa bộ đệm thủ tục.
Shanky
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.