Trên một máy chủ cơ sở dữ liệu chuyên dụng, cần bao nhiêu bộ nhớ cho HĐH?


38

Giả sử bạn có một máy chủ chuyên dụng rõ ràng cho các chức năng cơ sở dữ liệu - bạn nên dự trữ bao nhiêu bộ nhớ cho hệ điều hành?

Tôi nhận ra điều này có thể sẽ thay đổi phần nào tùy thuộc vào HĐH cụ thể, phần mềm cơ sở dữ liệu cụ thể, v.v. Nhưng, vì bộ nhớ rất quan trọng đối với hiệu năng cơ sở dữ liệu, tôi muốn cơ sở dữ liệu có mức bộ nhớ hợp lý tối đa , mà không bỏ đói hệ điều hành máy chủ.

Vì thế

  • một quy tắc tốt để bắt đầu với là gì?
  • chúng ta nên xem xét các bộ đếm hoặc chỉ số hiệu suất nào để xác định xem chúng ta đã đi quá xa chưa và hệ điều hành máy chủ có bị cơ sở dữ liệu bỏ đói không?

Các bạn đã bao giờ điều chỉnh các cài đặt này? Hồ sơ của bạn đã nói gì với bạn?
jcolebrand

@jcole không có gì để thêm vào lúc này; chúng tôi thường dành 4 - 6 gb cho HĐH, một cách bảo thủ hơn tôi muốn
Jeff Atwood

Câu trả lời:


30

Giả sử Windows và SQL Server ...

Có hai trường phái.

  1. Để lại 2-4 Gigs cho Windows (tùy thuộc vào những gì được cài đặt bên cạnh SQL Server).
  2. Để lại 10% bộ nhớ khả dụng của bạn miễn phí. Khi bạn có hơn 64 Gigs, đây sẽ là một lượng lớn bộ nhớ để dành cho HĐH, điều mà có lẽ nó sẽ không cần.

Cá nhân tôi thuộc nhóm đầu tiên. Windows thường chỉ cần 2-4 hợp đồng biểu diễn, đôi khi lên đến 6.


2
Đồng tình với 2 ish gb RAM cho HĐH.
jcolebrand

Tôi cũng đồng ý. Tôi thường để lại 2GB cho HĐH và cũng đảm bảo không gian tệp trang liền kề. Tất nhiên, số dặm của bạn có thể thay đổi và cách tốt nhất của bạn là định cấu hình cài đặt, theo dõi hiệu suất và thực hiện các thay đổi thận trọng khi cần thiết.
Matt M

2
@matt đúng nhưng cụ thể là gì là tốt nhất để theo dõi, khi nhìn vào "tôi có đang bỏ đói hệ điều hành không?"
Jeff Atwood

1
@Jeff Nhận xét của tôi không chính xác như lẽ ra phải có. Đối với bộ nhớ, tôi thường nhìn vào các bộ đếm hiệu suất sau: Bộ nhớ: Số trang / giây và Bộ nhớ: Số byte khả dụng. Kiểm tra các trang này ra để biết thêm thông tin: sql-server-performance.com/articles/audit/...technet.microsoft.com/en-us/library/cc966540.aspx (đặc biệt là phần Memory Tắc nghẽn)
Matt M

6
Câu trả lời của @Jeff Denny là đúng, và đối với quầy Perfmon, hãy xem Bộ nhớ: Byte có sẵn. Nếu nó giảm xuống dưới, giả sử, 512MB, bạn có nguy cơ bị bỏ đói HĐH. Tuy nhiên, cũng cần lưu ý về bộ đệm của tệp trên các hệ thống 64 bit, vẫn hiển thị là có sẵn ngay cả khi không phải là: blog.msdn.com/b/ntdebugging/archive 2007/11/27 / đấm
Brent Ozar

16

Giả sử Linux, nếu bạn tắt trao đổi và kernel tiếp tục giết tiến trình DB của bạn vì nó hết bộ nhớ, đó là một chỉ báo tốt bạn đang bỏ đói HĐH cho bộ nhớ. Trở lại cho đến khi điều đó dừng lại xảy ra. Một vài trăm megs thường là rất nhiều.


+1 cho hồ sơ hồ sơ hồ sơ ~ tuy nhiên đó là Jeff hỏi tôi chắc chắn đó là SQLServer và Windows;)
jcolebrand

1
@jcolebrand tuy nhiên, cũng biết đó là @jeff bạn sẽ nhận ra anh ấy đã không nói, có nghĩa là anh ấy cố tình để mở cho tất cả các nền tảng và cơ sở dữ liệu.
xenoterracide

2
Và, vẫn biết đó là @jeff ... tại sao anh ta không thể học cách ngừng lo lắng và yêu thích Linux? ;-)
Jürgen A. Erhard

8

Bạn có thể tận dụng trải nghiệm của Amazon khi chạy hàng ngàn máy chủ cơ sở dữ liệu của khách hàng tại đây: Trên Dịch vụ cơ sở dữ liệu quan hệ của Amazon, họ đặt nhóm bộ đệm innodb của MySQL thành 3/4 bộ nhớ của hệ thống, bất kể đó là bao nhiêu bộ nhớ. Thêm vào một vài megs cho mỗi kết nối cho các bộ đệm truy vấn khác nhau và có khả năng chúng sẽ để lại 10-20% bộ nhớ cho HĐH.


5

Bạn nên đọc bộ nhớ của Brent Ozar . Anh ta có một số câu trả lời khá chuẩn về lý do tại sao bạn nên tìm kiếm bộ nhớ và tại sao nhiều bộ nhớ tương đương với hiệu suất tốt hơn. Nói chung, 4 GB hoặc 10% dành riêng cho HĐH.

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.