ขนาดไฟล์หน้าที่แนะนำสำหรับ SQL 2008R2 บน Windows 2008R2


25

บทความของ Microsoft นี้ - วิธีการกำหนดขนาดหน้าแฟ้มที่เหมาะสมสำหรับ Windows Server 2008 และ Windows 2008 R2รุ่น 64 บิตให้คำแนะนำสำหรับการคำนวณขนาดหน้าไฟล์สำหรับ 64 บิต Windows 2008 และ Windows 2008R2 ไม่ต้องสงสัยเลยว่าทำงานได้ดีสำหรับเซิร์ฟเวอร์ที่ใช้งานทั่วไป ฉันสงสัยว่าคำแนะนำสำหรับ SQL Server 2008R2 ที่ทำงานบน Windows 2008 / R2 64 บิตคืออะไร

ฉันคิดว่าเราต้องการข้อมูลหน่วยความจำเพียงเล็กน้อยในการกดปุ่มไฟล์หน้ามิฉะนั้น SQL อาจกดดิสก์สองครั้งเพื่อหาข้อมูล SQL Server อนุญาตให้ข้อมูลในหน่วยความจำตีไฟล์หน้าได้หรือไม่ ฉันได้รับคำแนะนำจากSQL Server 2008 R2 Books Online แล้วแต่ยังไม่พบการใช้ไฟล์หน้าใด ๆ

นี่คือสถานการณ์การใช้งานที่อาจเกิดขึ้น: เมื่อกำหนดเซิร์ฟเวอร์จริงที่มี RAM 64GB เพจไฟล์จำเป็นสำหรับแรม 64GB ทั้งหมดหรือไม่ เราควรใส่มันให้เป็น 96GB ของ pagefile หรือไม่? ดูเหมือนจะมากเกินไปสำหรับไฟล์เดียว ฉันรู้ว่าภูมิปัญญาดั้งเดิมเป็นเพราะการที่ Windows จับคู่ pagefile กับหน่วยความจำในความพยายามที่จะทำให้การสลับแอพง่ายขึ้นบน RAM แต่มันเป็นเรื่องจริงเหรอ? pagefile ที่น้อยกว่า 64GB จะขัดขวางประสิทธิภาพการทำงานที่นี่หรือไม่

คำตอบ:


15

ไม่มีการตั้งค่าพิเศษสำหรับ SQL Server ซึ่งใช้หน่วยความจำกายภาพปกติเท่านั้น

ทำในสิ่งที่ MS พูดสำหรับ Windows เท่านั้น

โอ้และซื้อ RAM เพิ่มอีกในขณะที่เราเป็นหนึ่งในวิชา ... ;-)


6

lock pages in memoryสอบสวน ด้วยวิธีนี้คุณสามารถกำหนดค่าตามความชอบสำหรับบัญชีบริการ SQL ของคุณเพื่อใช้ RAM ที่มีอยู่แทนการเพจไปยังดิสก์ หากต้องการอ่านเพิ่มเติมเกี่ยวกับหน้าล็อคในหน่วยความจำให้ตรวจสอบลิงค์นี้ ตัวอย่างมีดังนี้:

ตัวเลือกล็อคหน้านโยบายในหน่วยความจำของ Windows จะปิดใช้งานตามค่าเริ่มต้น สิทธิ์นี้จะต้องเปิดใช้งานเพื่อกำหนดค่า Address Windowing Extensions (AWE) นโยบายนี้กำหนดบัญชีที่สามารถใช้กระบวนการในการเก็บข้อมูลในหน่วยความจำกายภาพป้องกันระบบจากการสลับหน้าข้อมูลไปยังหน่วยความจำเสมือนบนดิสก์ บนระบบปฏิบัติการ 32 บิตการตั้งค่าสิทธิพิเศษนี้เมื่อไม่ใช้ AWE อาจทำให้ประสิทธิภาพของระบบลดลงอย่างมาก ไม่จำเป็นต้องล็อกหน้าในหน่วยความจำบนระบบปฏิบัติการ 64 บิต

โปรดทดสอบคุณสมบัตินี้ก่อนที่จะใช้กับระบบของคุณ


4
'ล็อกหน้าในหน่วยความจำ' อาจอธิบายได้ดีกว่าว่าเป็นระบบป้องกันเพื่อป้องกันหน่วยความจำ SQL ที่ถูกทำเพจออกโดยระบบปฏิบัติการ support.microsoft.com/kb/918483
ทำเครื่องหมาย Storey-Smith

4

ใช่สำหรับ RAM 64GB คุณต้องการไฟล์ swap อย่างน้อย 64GB (แนะนำให้ใช้ 96GB) ไม่ใช่เพราะการสลับที่อาจเกิดขึ้น แต่เนื่องมาจากการออกแบบของ Windows Memory Manager ฉันได้เขียนเกี่ยวกับปัญหานี้มาก่อนในขนาดหน้าไฟล์ระบบบนเครื่องที่มี RAM ขนาดใหญ่ :

เมื่อกระบวนการขอMEM_COMMITหน่วยความจำผ่าน VirtualAlloc/ VirtualAllocExขนาดที่ร้องขอจะต้องสำรองไว้ใน pagefile สิ่งนี้เป็นจริงในระบบ Win NT เครื่องแรกและยังคงเป็นจริงในปัจจุบันเห็นการจัดการหน่วยความจำเสมือนใน Win32 :

เมื่อหน่วยความจำถูกกำหนดแล้วฟิสิคัลเพจของหน่วยความจำจะถูกจัดสรรและมีการจองพื้นที่ในเพจไฟล์

ทางเลือกที่จะเป็นสิ่งที่ต้องการoom_killer

ดังนั้นทำตามคำแนะนำบางครั้งสิ่งต่าง ๆ จะซับซ้อนกว่าที่พวกเขามอง และฉันยังไม่ได้สัมผัสถึงความยุ่งยากที่ AWE นำมาและสิทธิ์ในการล็อคหน้า ...


น่าสนใจมาก ... มันทำงานยังไงเมื่อคุณตั้งค่าไฟล์ swap ให้เล็กกว่า RAM ในเครื่อง? หากเราจำเป็นต้องจองพื้นที่ใน pagefile สำหรับการจัดสรรหน่วยความจำทุกครั้งเราจะไม่สามารถใช้หน่วยความจำที่มีขนาดเกินกว่าขนาดไฟล์ได้หรือไม่ ฉันไม่แน่ใจว่านี่เป็นวิธีการทำงานในทางปฏิบัติ
shlomoid

1
นั่นเป็นวิธีการทำงานจริงในทางปฏิบัติ ภูมิภาค VA ที่ตกลงจะต้องได้รับการสนับสนุนโดยการสำรอง swap จริง ลิขสิทธิ์ภูมิภาค VA ไม่จำเป็นต้องเป็น แต่ SQL Server แทบไม่เคยขอจองไม่ใช่มุ่งมั่น
Remus Rusanu

2
ฉันไม่คิดว่ามันถูกต้อง ความเข้าใจของฉันจากแหล่งข้อมูลต่าง ๆ เช่นหนังสือ Windows Internals คือการกำหนดพื้นที่ที่อยู่เสมือนต้องได้รับการสนับสนุนจากสิ่งที่มีอยู่จริงไม่ว่าจะเป็นไฟล์เพจหรือ RAM ดังนั้นหากคุณพยายามที่จะส่งมอบหน่วยความจำเสมือน> ([หน่วยความจำกายภาพ Windows เห็น] + [ขนาดของแฟ้มเพจจิ้ง]) คุณจะได้รับข้อความแสดงข้อผิดพลาด "ระบบของคุณมีหน่วยความจำเสมือนเหลือน้อย" มาร์ค Russinovich พูดคุยเกี่ยวกับเรื่องนี้ในส่วนหัว "ความทรงจำความมุ่งมั่น" ที่นี่
James L

5
ฉันคิดว่าคุณสามารถยืนยันกับตัวเองได้ว่าภูมิภาค VA ที่มีความมุ่งมั่นไม่จำเป็นต้องสำรองข้อมูลด้วยการสำรอง swap เพียงแค่ทำการบูทระบบโดยไม่มีไฟล์เพจจิ้งและยืนยันว่า Windows เริ่มทำงานดังนั้นจึงต้องมี VAS ที่กำหนดไว้มากกว่า 0 ไบต์
James L

โพสต์นี้ผิด - เป็นไปได้อย่างสมบูรณ์ที่จะเรียกใช้โดยไม่มีไฟล์หน้าหากคุณมีหน่วยความจำมากกว่าความต้องการสูงสุดของคุณ มันจะหมายความว่าคุณไม่สามารถเขียนทิ้งความผิดพลาดได้
Steve365
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.