Kích thước tệp trang được đề xuất cho SQL 2008R2 trên Windows 2008R2


25

Bài viết này của Microsoft - Cách xác định kích thước tệp trang phù hợp cho các phiên bản 64 bit của Windows Server 2008 và hoặc Windows 2008 R2 cung cấp hướng dẫn để tính kích thước tệp trang cho 64 bit Windows 2008 và Windows 2008R2. Điều này chắc chắn hoạt động tốt cho các máy chủ mục đích chung. Tôi đang tự hỏi hướng dẫn dành cho SQL Server 2008R2 chạy trên Windows 2008 / R2 64 bit là gì?

Tôi cho rằng chúng ta muốn có ít dữ liệu bộ nhớ để đánh vào tệp trang nếu không SQL có thể đánh vào đĩa hai lần để lấy dữ liệu. SQL Server thậm chí có cho phép dữ liệu trong bộ nhớ đánh vào tệp trang không? Tôi đã tìm kiếm qua SQL Server 2008 R2 Sách trực tuyến để được hướng dẫn nhưng chưa tìm thấy bất kỳ đề cập nào về việc sử dụng tệp trang.

Đây là một kịch bản sử dụng tiềm năng: Với một máy chủ vật lý có 64GB RAM, liệu một trang có cần thiết cho toàn bộ 64GB RAM không? Chúng ta có nên trang bị cho 96GB trang không? Điều đó có vẻ hơi quá đối với một tập tin duy nhất. Tôi biết sự khôn ngoan thông thường là các cặp vợ chồng Windows đã lưu trữ bộ nhớ vào một nỗ lực để giúp trao đổi các ứng dụng dễ dàng hơn trên RAM, nhưng điều đó có đúng không? Sẽ có một hiệu suất cản trở ít hơn 64GB pagefile ở đây?

Câu trả lời:


15

Không có cài đặt đặc biệt nào cho SQL Server mà chỉ sử dụng bộ nhớ vật lý thông thường

Chỉ cần làm những gì MS nói cho Windows và đó là nó

Ồ, và mua thêm RAM nữa trong khi chúng ta là một chủ đề ... ;-)


6

Nhìn vào lock pages in memory. Bằng cách này, bạn có thể ưu tiên cho tài khoản dịch vụ SQL của mình để sử dụng RAM có sẵn thay vì phân trang vào đĩa. Để đọc thêm về các trang khóa trong bộ nhớ, hãy kiểm tra liên kết này . Một đoạn sau:

Theo mặc định, tùy chọn Khóa trang trong Bộ nhớ bị tắt. Đặc quyền này phải được kích hoạt để định cấu hình Tiện ích mở rộng cửa sổ địa chỉ (AWE). Chính sách này xác định tài khoản nào có thể sử dụng một quy trình để giữ dữ liệu trong bộ nhớ vật lý, ngăn hệ thống phân trang dữ liệu sang bộ nhớ ảo trên đĩa. Trên các hệ điều hành 32 bit, thiết lập đặc quyền này khi không sử dụng AWE có thể làm giảm đáng kể hiệu năng hệ thống. Không khóa các trang trong bộ nhớ trên các hệ điều hành 64 bit.

Vui lòng kiểm tra tính năng này trước khi sử dụng trên hệ thống của bạn.


4
'Khóa các trang trong bộ nhớ' có lẽ có thể được mô tả tốt hơn như một biện pháp bảo vệ, để ngăn chặn bộ nhớ SQL được hệ điều hành loại bỏ. support.microsoft.com/kb/918483
Mark Storey-Smith

4

Có, đối với RAM 64 GB, bạn cần ít nhất 64 GB tệp hoán đổi (khuyến nghị 96 GB). Không phải vì khả năng hoán đổi, mà vì thiết kế của Trình quản lý bộ nhớ Windows. Tôi đã viết về vấn đề này trước đây trong kích thước tệp trang hệ thống trên các máy có RAM lớn :

Khi một quá trình yêu cầu MEM_COMMITbộ nhớ thông qua VirtualAlloc/ VirtualAllocEx, kích thước được yêu cầu cần phải được bảo lưu trong tệp trang. Điều này đúng trong hệ thống Win NT đầu tiên và ngày nay vẫn đúng khi xem Quản lý bộ nhớ ảo trong Win32 :

Khi bộ nhớ được cam kết, các trang vật lý của bộ nhớ được phân bổ và không gian được dành riêng trong một trang.

Sự thay thế sẽ là một cái gì đó giống như oom_killer .

Vì vậy, hãy làm theo khuyến nghị, đôi khi mọi thứ phức tạp hơn một chút so với vẻ ngoài của chúng. Và tôi thậm chí không chạm vào những sự phức tạp do AWE mang lại và đặc quyền trang khóa ...


Rất thú vị ... Làm thế nào nó hoạt động khi bạn đặt một tệp hoán đổi nhỏ hơn RAM trong máy? Nếu thực sự chúng ta cần dự trữ dung lượng trong tệp trang cho mỗi lần cấp phát bộ nhớ, chúng ta sẽ không thể sử dụng nhiều hơn giá trị bộ nhớ của kích thước tệp trang? Tôi không chắc đây là cách nó hoạt động trong thực tế.
shlomoid

1
Đó chính xác là cách nó hoạt động trong thực tế. Một khu vực VA cam kết phải được hỗ trợ bởi đặt phòng trao đổi thực sự. Một khu vực VA dành riêng không cần phải có, nhưng SQL Server hầu như không bao giờ yêu cầu các đặt phòng không cam kết.
Remus Rusanu

2
Tôi không nghĩ rằng điều này là chính xác. Sự hiểu biết của tôi từ nhiều nguồn khác nhau như sách Windows Internals là không gian địa chỉ ảo đã cam kết phải được hỗ trợ bởi một cái gì đó vật lý , cả tệp trang hoặc RAM. Vì vậy, nếu bạn cố gắng cam kết bộ nhớ ảo> ([Bộ nhớ vật lý Windows thấy] + [Kích thước tệp hoán trang]), bạn sẽ nhận được thông báo lỗi "Hệ thống của bạn thiếu bộ nhớ ảo". Mark Russinovich nói về điều này trong phần "bộ nhớ cam kết" ở đây .
James L

5
Tôi nghĩ rằng bạn có thể tự xác nhận rằng các vùng VA đã cam kết không phải được hỗ trợ bằng cách đặt chỗ trao đổi chỉ bằng cách khởi động một hệ thống không có tệp hoán trang và xác nhận rằng Windows khởi động, và do đó phải có hơn 0 byte VAS cam kết.
James L

Bài đăng này sai - hoàn toàn có thể chạy mà không cần tệp trang nếu bạn có nhiều bộ nhớ hơn yêu cầu cam kết tối đa của bạn. Tuy nhiên, điều đó có nghĩa là bạn không thể viết các bãi đổ vỡ.
Steve365
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.