ฉันควรปิดการใช้งานไฟล์สวอปหรือไม่ถ้าฉันมี RAM จำนวนมากหรือฉันควรย้ายมันไปที่ไดรฟ์ RAM เสมือนจริง?


97

ลองนึกภาพฉันมี RAM มากมาย สมมติว่า 64GB นั่นเป็นอะไรที่มากสำหรับเกมพีซี ตอนนี้ตำแหน่งเริ่มต้นของ pagefile ใน Windows จะอยู่ในไดรฟ์ระบบปฏิบัติการหลักไม่ว่าจะเป็น HDD หรือ SSD ซึ่งโดยทั่วไปจะเร็วกว่า แต่ก็ยังไม่เร็วเท่ากับแรม

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

ฉันลองทั้งคู่ แต่ไม่สามารถวิเคราะห์ผลลัพธ์เพื่อให้ได้ข้อสรุปที่ชัดเจนกับระดับความรู้ของฉันในเรื่องความทรงจำ

จะใช้งานได้ไหม ถ้าไม่ทำไม


57
การมีไฟล์เพจจิ้งบนดิสก์ RAM ไม่สามารถทำสิ่งใดให้สำเร็จ คุณใช้หน่วยความจำที่มีอยู่จำนวนหนึ่งและเพิ่มจำนวนหน่วยความจำเสมือน Null-รวม ไม่มีไฟล์เพจจิ้ง
usr

14
ในความรู้สึกที่จะทำสิ่งนี้บน Linux ในบางกรณีที่ ram disk ที่โฮสต์ไฟล์ swap ถูกบีบอัดจริง ดู: en.wikipedia.org/wiki/Zram อย่างไรก็ตามฉันไม่คิดว่า Windows มีคุณสมบัติเช่นนี้
Matt H

2
คำตอบคือใช่ แต่มีผู้ไม่เชื่อมากมาย
Mehrdad

14
@ user367257 การสร้าง ram disk เพื่อเก็บไฟล์หน้าของคุณเป็นเหมือนการให้ยืมเพื่อนของคุณ£ 10 เพื่อให้เขามีเงินเพียงพอที่จะให้คุณยืมเงินได้ 10 ปอนด์จากเขา มันอาจเป็นไปได้ในทางเทคนิค แต่สิ่งที่คุณทำได้คือการเดินทางโดยไม่ต้องยุ่งยาก
Rob Moir

2
ฉันจะ (และทำ) ปิดเฉพาะสำหรับ SSD เนื่องจากคุณจะได้รับการเขียนจำนวนมาก (แม้ว่าตอนนี้จะมีจำนวนมาก) ด้วย 6GB มันใช้งานได้ดี
Ry-

คำตอบ:


134

ไม่ว่าคุณจะมี RAM เท่าใดคุณต้องการให้ระบบใช้งานได้อย่างมีประสิทธิภาพ การไม่มีไฟล์เก็บเพจบังคับให้ระบบปฏิบัติการใช้ RAM อย่างมีประสิทธิภาพด้วยเหตุผลสองประการ ประการแรกมันไม่สามารถทำให้หน้าทิ้งได้แม้ว่าพวกเขาจะไม่ได้เข้าถึงหรือแก้ไขในเวลานานมากซึ่งบังคับให้แคชดิสก์มีขนาดเล็กลง ประการที่สองจะต้องจอง RAM จริงเพื่อสำรองที่ไม่น่าเป็นไปได้ (ตัวอย่างเช่นการแมปไฟล์ส่วนตัวที่ปรับเปลี่ยนได้) นำไปสู่กรณีที่คุณสามารถมี RAM จริงได้ฟรีและการจัดสรรถูกปฏิเสธ หลีกเลี่ยงการทับกันมากเกินไป

ตัวอย่างเช่นพิจารณาหากโปรแกรมทำการแมปหน่วยความจำส่วนตัวที่เขียนได้ของไฟล์ 4GB ระบบปฏิบัติการต้องสำรอง RAM ขนาด 4GB สำหรับการจับคู่นี้เนื่องจากโปรแกรมสามารถแก้ไขได้ทุกไบต์และไม่มีที่อื่นนอกจาก RAM ที่จะเก็บไว้ ดังนั้นในทันที RAM 4GB จะเสียเปล่าไป (สามารถใช้แคชหน้าดิสก์ที่ไม่มีข้อมูลได้

คุณต้องมีไฟล์หน้าหากคุณต้องการได้รับประโยชน์สูงสุดจาก RAM ของคุณแม้ว่าจะไม่เคยใช้ มันทำหน้าที่เป็นกรมธรรม์ประกันภัยที่อนุญาตให้ระบบปฏิบัติการใช้ RAM จริงได้แทนที่จะต้องสำรองไว้สำหรับความเป็นไปได้ที่ไม่น่าเป็นไปได้

คนที่ออกแบบพฤติกรรมของระบบปฏิบัติการของคุณไม่ใช่คนโง่ การมีแฟ้มเพจจิ้งจะทำให้ระบบปฏิบัติการมีตัวเลือกมากขึ้นและจะไม่ทำให้เสีย

ไม่มีจุดประสงค์ในการวางไฟล์เก็บเพจใน RAM และถ้าคุณมี RAM จำนวนมากไฟล์เพจจิ้งจะไม่น่าใช้มาก (มันแค่ต้องอยู่ที่นั่น) ดังนั้นมันจึงไม่สำคัญว่าอุปกรณ์จะทำงานเร็วแค่ไหน


9
ฉันขัดแย้งกับการลงคะแนน แต่กับความคิดเห็นสุดท้ายของคุณ: ฉันเรียกใช้ 2 เครื่องที่แตกต่างกันโดยไม่มีการสลับ มันสมบูรณ์แบบมากถ้าคุณรู้ว่าจะใช้เครื่องจักรอย่างไร
spudone

6
ฉันสงสัยว่าไฟล์หน้าใน ramdrive เริ่มต้นจากลัทธิสินค้า "วิธีแก้ปัญหา" เนื่องจากซอฟต์แวร์บางตัวจะปฏิเสธที่จะเริ่มต้นหากตรวจพบว่าไม่มีไฟล์หน้า (ฉันได้รับแจ้งว่าเครื่องมือกราฟิก / วิดีโอของ Adobe ทำเช่นนี้)
Dan Neely

8
@DavidSchwartz ข้อมูลที่คุณให้นั้นถูกต้องทางเทคนิคและเป็นข้อมูลที่ดีที่ควรทราบ แต่ข้อสรุปที่คุณเข้ามาว่าคุณควรมีไฟล์หน้าอยู่เสมอไม่ว่า RAM ของคุณจะไม่ถูกต้องหรือไม่และฉันขอยืนยันว่านี่ไม่ใช่คำตอบที่ได้รับการยอมรับ
Jason Wheeler

5
ฉันไม่ชอบที่จะได้ยินว่า "pagefiles เป็นเวทมนต์ดังนั้นอย่าปิดพวกเขาหรือคุณจะเสียใจ" เมื่อฉันรู้ว่าภายใต้สถานการณ์ทั่วไปหลายอย่างที่คุณสามารถปิดพวกเขาและเห็นการปรับปรุงประสิทธิภาพได้อย่างปลอดภัยเพราะคุณ จะไม่เพิ่มดิสก์ I / O อีกต่อไป 100% หรือสูงกว่าเมื่อใดก็ตามที่ MMS ต้องการทำอะไร ทั้งหมดที่ฉันต้องการได้ยินจากคนในด้านอื่น ๆ ของการอภิปรายนี้คือ "ใช่มีสถานการณ์ที่คุณสามารถปิดพวกเขาและลดดิสก์ I / O ซึ่งอาจส่งผลในการฟาด" ฉันไม่ได้บอกว่าไฟล์หน้าเพจนั้นแย่เสมอไปบางทีคุณอาจบอกได้ว่ามันไม่จำเป็นเสมอไป
Fred Hamilton

5
ฉันรู้ว่าสิ่งที่ทำให้ฉันรำคาญเกี่ยวกับเรื่องนี้ก็คือด้านหนึ่งดูเหมือนว่าจะพูดว่า "pagefiles ไม่เคยทำอะไรเลยนอกจากดี" และอีกด้านหนึ่งคือ "pagefiles แย่มาก" จากนั้นผู้คนก็ยึดมั่นในด้านใดด้านหนึ่ง "ความจริง" คือในบางกรณีพวกเขามีประโยชน์มากและแม้กระทั่งการป้องกันการชนและในกรณีอื่น ๆ พวกเขาไม่ต้องการและอาจทำให้ประสิทธิภาพลดลง ฉันมีความสุขกับที่เป็นคำสั่งสุดท้ายของฉันโดยไม่คำนึงถึง มีอายุยืนยาวและรุ่งเรือง @David Schwartz
Fred Hamilton

32

คุณมีความถูกต้องทั้งหมดในสมมติฐานของคุณ

อัลกอริทึมการจัดการหน่วยความจำมีความซับซ้อนมากและไม่ว่าจะสมบูรณ์แบบใด ดังนั้นการแลกเปลี่ยนจึงเกิดขึ้นแม้ว่าจะมี RAM สำรองมากมาย ในบางระบบLinuxคุณสามารถควบคุมความเร็วได้อย่างที่ไม่สามารถทำได้ โดยการแลกเปลี่ยนข้อมูลเมื่อยังมี RAM อยู่จำนวนมากระบบในแบบของตัวเองจะเตรียมพร้อมสำหรับสถานการณ์เมื่อมันอาจจะหมด RAM

ดังนั้นการปิดใช้งานฟังก์ชั่นการสลับอาจทำให้คุณปรับปรุงประสิทธิภาพเนื่องจากคุณจะใช้ RAM ซึ่งเร็วกว่าที่คุณพูดไปแล้วเท่านั้น

สิ่งหนึ่งที่ควรพิจารณา (และคุณได้กล่าวถึงแล้ว) - คุณต้องมีRAM เพียงพอที่จะรองรับโปรแกรมทั้งหมดที่คุณกำลังเรียกใช้งานมิฉะนั้นคุณอาจเสี่ยงที่จะมีหน่วยความจำไม่เพียงพอ ในกรณีนี้ประสิทธิภาพจะลดลงกระบวนการบางอย่างอาจถูกยกเลิกโดยระบบปฏิบัติการและระบบอาจประสบกับความผิดพลาด / หยุด (อ่านเพิ่มเติมได้ที่นี่ )

ในบางเครื่องโดยเฉพาะอย่างยิ่งไฟล์ที่เก็บ swap บน HDD ไม่ใช่ SSD ผลกระทบจากการปิดใช้งานการสลับจะเห็นได้ชัดเจนมาก สำหรับคนอื่น ๆ มันไม่ชัดเจนนัก แต่ถึงแม้ว่าคุณจะไม่ได้รับการปรับปรุงที่ชัดเจนลองคิดอีกวิธีหนึ่งโดยการปิดใช้งานการสลับคุณจะประหยัดพื้นที่ดิสก์บางส่วนบน SSD ของคุณ

ด้วยการปิดการแลกเปลี่ยนคุณจะป้องกันอัลกอริทึมหน่วยความจำจากการดำเนินการที่ไม่จำเป็น - การย้ายข้อมูลจาก RAM ไปสู่การสลับและในทางกลับกัน - ในกรณีของ SSD สิ่งนี้จะป้องกันการสึกหรอมากเกินไป และในกรณีใด ๆ นี้จะปรับปรุงประสิทธิภาพโดยการกำจัดการดำเนินการที่ไม่จำเป็น

นอกจากนี้อ่าน:


2
@ChrisH นอกจากนี้คุณยังอาจจะไม่สามารถที่จะโหลดฐานข้อมูล SQL ลงในโปรแกรมประมวลผลคำตั้งแต่ผู้ที่ทำงานทั้งหมดในแรม :-)
TylerH

9
คำตอบนี้ไม่ถูกต้องและมีข้อมูลที่ผิดจำนวนมาก แต่วิธีง่ายๆในการดูว่าทำไมมันถึงผิดคือคนที่ออกแบบพฤติกรรมความจำของระบบปฏิบัติการของคุณน่าจะเป็นคนที่ฉลาดที่สุดในโลก ทำไมพวกเขาถึงออกแบบระบบที่ให้ตัวเลือกมากกว่านี้ (ตัวเลือกในการสลับถ้าและถ้าหากคิดว่าดีที่สุด) จะทำให้ประสิทธิภาพแย่ลง? มีเพียงคนโง่เท่านั้นที่จะออกแบบระบบเช่นนั้น
David Schwartz

17
@DavidSchwartz ฉันไม่เห็นว่าความจริงที่ว่าคนที่พัฒนาอัลกอริทึมการจัดการหน่วยความจำเป็นสมาร์ททำให้ความแตกต่างกับเรื่องเดิม OP ได้ถามว่าการปิดใช้งานการสลับสามารถปรับปรุงประสิทธิภาพและฉันได้อธิบายว่ามันสามารถภายใต้เงื่อนไขบางอย่างและสามารถนำไปสู่ปัญหาภายใต้เงื่อนไขอื่น ๆ ตอบคำถามของคุณเกี่ยวกับสาเหตุ (?) - ฉันสามารถพูดได้เนื่องจากอัลกอริธึมไม่สมบูรณ์และขึ้นอยู่กับผู้ใช้ในการปรับแต่ง นี่คือเหตุผลที่มีพารามิเตอร์ swappiness ใน Linux และนี่คือสาเหตุที่การปิดใช้งานการสลับเป็นไปได้ทั้งหมด
Art Gertner

11
@smc ไม่มีอะไรผิดปกติเกี่ยวกับกรณีการใช้ OP ความคิดที่ว่าระบบปฏิบัติการไม่ได้รับการปรับอย่างเหมาะสมสำหรับกรณีการใช้งานที่เป็นมาตรฐานนั้นเป็นเรื่องไร้สาระสมบูรณ์ (ดูคำตอบเพิ่มเติมเกี่ยวกับสาเหตุที่คุณไม่ต้องการทำเช่นนี้)
David Schwartz

4
การสันนิษฐานว่าอัลกอริทึมที่ได้รับจะทำให้การตัดสินใจที่พึงประสงค์สำหรับผู้ใช้นั้นเป็นเรื่องที่ไม่จริง พวกเขาตัดสินใจตามพารามิเตอร์ชุดที่โปรแกรมเมอร์ได้ตัดสินใจไว้ว่าสำคัญ นี่อาจเป็นการต่อรองโดยตรงกับสิ่งที่ผู้ใช้ต้องการจะเกิดขึ้น
Anaksunaman

14

คุณสามารถปิดการใช้งาน pagefile ได้อย่างปลอดภัยหรือไม่?

หากคุณมีหน่วยความจำไม่เพียงพอรวมถึงหน่วยความจำเสมือนระบบจะไม่สามารถรับประกันการทำงานที่กำหนดได้และสิ้นสุดลงเอง ก่อนที่จะเกิดขึ้นระบบปฏิบัติการจะทำสิ่งต่าง ๆ เช่นฆ่าโปรแกรมที่ใช้หน่วยความจำมากเกินไป สิ่งที่ฉันต้องการจะพูดคือหน่วยความจำมี จำกัด และทุกระบบปฏิบัติการสามารถจัดการกับสิ่งนี้ได้ ดังนั้นการ จำกัด หน่วยความจำที่มีอยู่ทั้งหมดให้เป็น 64 GB จะไม่เป็นอันตรายต่อ Windows - ระบบจำนวนมากไม่สามารถเกินกว่า 8 GB ได้แม้ว่าจะมี pagefile เนื่องจากมี RAM 1 หรือ 2 GB ไฟล์ pagefile มักจะมีขนาดเล็กกว่า 6 หรือ 7 GB ควรสังเกตว่าตราบใดที่คุณมี RAM ที่ไม่ได้ใช้มากเกินไปค่าใช้จ่ายของระบบปฏิบัติการที่ดูแลรักษาไฟล์เพจจะไม่สามารถวัดได้

มันเหมาะสมหรือไม่ที่จะวาง pagefile ไว้บน ramdisk?

เพื่อเพิ่มหน่วยความจำที่มีอยู่ส่วนใหญ่หากไม่ใช่ระบบปฏิบัติการขั้นสูงทั้งหมดใช้ไฟล์ swap บางประเภทที่ใช้หน่วยความจำบางส่วนที่อยู่ใน RAM และไม่ได้รับการเข้าถึงชั่วครู่หนึ่งเขียนหน่วยความจำลงในฮาร์ดดิสก์ (swapfile aka pagefile ) และ ลบหน่วยความจำออกจาก RAM เพื่อให้มีหน่วยความจำเร็วขึ้น swapfile ใช้เพื่อขยายขนาดสูงสุดของหน่วยความจำเกินขนาดของ RAM ที่มีอยู่

ดังนั้นการใช้ ramdisk (ซึ่งลดขนาดหน่วยความจำที่มีอยู่ตามขนาดของ ramdisk) เพื่อโฮสต์ swapfile (ซึ่งจะเพิ่มหน่วยความจำที่มีขนาดตามขนาดของ swapfile) จะทำงานได้ แต่มันจะไม่สมเหตุสมผล มันจะไม่ให้หน่วยความจำมากกว่าการปิดการใช้งาน pagefile แต่มันจะยังคงต้องใช้ระบบเพื่อเรียกใช้ขั้นตอนวิธีการเพจ


แต่ในกรณีที่ pagefile อยู่ในไดรฟ์ RAM เสมือนเวลาที่ใช้ในการคัดลอกเมกะไบต์จาก RAM ไปยังฮาร์ดไดรฟ์เสมือนหรือย้อนกลับจากนั้นจะลดลง และถ้าไฟล์เพจถูกปิดการใช้งานอย่างสมบูรณ์ก็ไม่ต้องเสียเวลากับไฟล์เลย ถูกต้องหรือไม่
user1306322

2
แก้ไข. การคัดลอกไบต์จาก RAM ไปยัง pagefile ที่อยู่บน ramdisk เป็นไฟล์เพจที่เร็วที่สุดที่เป็นไปได้ แต่การคัดลอกไม่ได้อย่างชาญฉลาด
ปีเตอร์

2
มี Swapfiles เพื่อชดเชยการขาด RAM หากมี RAM จำนวนมากไม่จำเป็นต้องชดเชย ระบบปฏิบัติการของคุณจะยังคงใช้ swapfile ได้ดังนั้นจึงเร็วกว่าที่จะปิดในกรณีนี้

6
@Mast นั่นคือการทำให้เข้าใจผิดโดยรวม Swapfiles ยังช่วยให้ใช้ RAM ได้อย่างมีประสิทธิภาพ
David Schwartz

1
@DavidSchwartz บางที แต่นั่นเป็นคำอธิบายที่อธิบายได้ดีที่สุดสำหรับฉัน ในกรณีส่วนใหญ่ swapfile จำนวนเล็กน้อยมักจะเป็นสิ่งที่มีคุณค่าเสมอโดยไม่มี swapfile อย่างไรก็ตามฉันไม่มีทรัพยากรในการสำรองข้อมูล

8

หากต้องการย้ำสิ่งที่คนอื่นพูดการย้าย swap ไปยังดิสก์ RAM แบบตรงนั้นไม่มีประโยชน์เลย มันประสบความสำเร็จในบางจุดเมื่อระบบไม่ได้รับหน่วยความจำว่างข้อมูลบางส่วนจะถูกย้ายจาก RAM ไปยัง RAM ด้วยวิธีที่ไม่มีประสิทธิภาพ

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

อย่างไรก็ตามดิสก์ RAM ที่ถูกบีบอัดในรูปแบบ swap driveซึ่งเป็นไดรฟ์ "ZSWAP" อาจมีประโยชน์ในกรณีที่มีขอบ (ซึ่งคุณอาจต้องการ RAM เพิ่มเติมอีกไม่กี่ MB เพื่อหลีกเลี่ยงการสลับเป็น HDD) โดยการปรับปรุงประสิทธิภาพพื้นที่ของ RAM เป็น ในระดับหนึ่ง


1
+1 สำหรับการกล่าวถึง ZSWAP โดยทั่วไปจะใช้ในบางแพลตฟอร์มมือถือเช่นเดียวกับที่ใช้ใน OS X 10.9 (แม้ว่าจะมีการสลับ)
James_pic

โปรดทราบว่า "ดิสก์ RAM ที่บีบอัดเป็นไดรฟ์สลับ" ยังคงมีปัญหาที่มันไม่ได้ทำสิ่งใดสำหรับ "แฟ้มเพจจิ้ง" ทั้งหมดนอกเหนือจากไฟล์เพจจริง
เจมี่ Hanrahan

5

หากคุณไม่มีไฟล์หน้าดังนั้นในกรณีของ BSOD (ขัดข้อง) Windows จะไม่สามารถเขียนไฟล์ความผิดพลาดได้ ซึ่งหมายความว่าคุณจะไม่สามารถวิเคราะห์ปัญหาโดยใช้เครื่องมือที่เหมาะสม

การมีไฟล์เพจใน RAM อยู่ถัดจากไร้ประโยชน์เนื่องจากอาจสูญหายไปในความผิดพลาด

สำหรับข้อมูลเพิ่มเติมโปรดดูที่บทความของ Microsoft ทำความเข้าใจเกี่ยวกับความผิดพลาดของการถ่ายโอนข้อมูลไฟล์


4

สำหรับ Windows จากปากม้า:

บางคนรู้สึกว่าไม่มีไฟล์เพจจิ้งจะมีประสิทธิภาพที่ดีขึ้น แต่โดยทั่วไปแล้วการมีเพจไฟล์หมายความว่า Windows สามารถเขียนเพจในรายการที่แก้ไข (ซึ่งแสดงถึงเพจที่ไม่ได้เข้าถึงอย่างแข็งขัน แต่ยังไม่ได้บันทึกลงดิสก์) ไฟล์เพจจิ้งทำให้หน่วยความจำนั้นพร้อมใช้งานเพื่อวัตถุประสงค์ที่มีประโยชน์มากขึ้น (กระบวนการหรือแคชไฟล์) ดังนั้นในขณะที่อาจมีเวิร์กโหลดบางอย่างที่ทำงานได้ดีขึ้นโดยไม่มีไฟล์เพจจิ้งโดยทั่วไปการมีหนึ่งจะหมายถึงหน่วยความจำที่ใช้งานได้มากกว่า * พร้อมใช้งานกับระบบ (ไม่ต้องกังวลว่า Windows จะไม่สามารถเขียนเคอร์เนล ใหญ่พอที่จะถือ)

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • หน่วยความจำที่ใช้งานได้ - แม้ว่าจะแนะนำให้มีหน่วยความจำเสมือน แต่ก็แนะนำว่าคุณต้องใช้ RAM จำนวนมากเพื่อให้แน่ใจว่าได้รับประโยชน์จากการไม่มีไฟล์หน้า / หน่วยความจำเสมือน ฉันมี 4GB RAM 128GB SSD ที่ไม่มีไฟล์หน้า แต่ฉันใช้สำหรับการท่องเว็บและพิมพ์ word docs

2
จากบทเรียนส่วนตัวที่ฉันได้เรียนรู้และสิ่งที่ฉันสั่งสอนให้กับพนักงานใหม่ทุกคน: มีเพียง 2 กฎเท่านั้น # 1: อย่าไว้ใจ Microsoft # 2 .. คุณไม่ได้ฟังกฎที่ 1 ดังนั้นจึงไม่มีกฏ 2
Nick

3

อย่าปิดการใช้งานไฟล์ swap มันไม่ได้มีไว้สำหรับเมื่อคุณมีหน่วยความจำไม่เพียงพอ ไม่มีการเพิ่มประสิทธิภาพโดยตรงในการปิด Windows จะอ่านจากมันเมื่อต้องการเท่านั้นมันจะเขียนลงไปตลอดเวลาเพื่อให้พร้อมเมื่อใดก็ตามที่จำเป็น

คุณสามารถลดขนาดหน่วยความจำลงได้ประมาณ 2 / 3rds หากคุณมีขนาดมากกว่า 4GB ประมาณ 4 GB เพราะจะเก็บภาพหน่วยความจำที่ถูกบีบอัด คุณสามารถวางลงบนฮาร์ดไดรฟ์ที่ช้ากว่าซึ่งไม่สามารถเข้าถึงได้โดยการเข้าถึงฮาร์ดดิสก์อื่น ๆ หากคุณไม่มีที่ว่างบน SSD แต่มันมีประโยชน์ที่จะมีที่ไหนสักแห่ง

ดูคำตอบนี้สำหรับข้อมูลเพิ่มเติมว่าทำไม https://superuser.com/a/286476/4236


3

ในทางทฤษฎีแล้วการวาง pagefile ไว้ใน RAM ไม่น่าจะเป็นไปได้เพราะคุณเพิ่งจะสูญเสียสิ่งที่คุณควรจะได้รับและ Windows ก็ถูกสร้างขึ้นบนสมมติฐานที่ว่า pagefile จะไม่ถูกใช้เพื่อวัตถุประสงค์ดังกล่าว

อย่างไรก็ตามในทางปฏิบัติการออกแบบและปรัชญาที่มีข้อบกพร่องสามารถทำให้เป็นแม้แต่เคอร์เนลของ Windows และการจัดการหน่วยความจำของ Microsoft ไม่จำเป็นต้องสมบูรณ์แบบ หลายคนพบว่าการวาง pagefile ลงใน Ramdisk นั้นส่งผลให้ประสิทธิภาพเพิ่มขึ้นตราบใดที่คุณมีหน่วยความจำเพียงพอ

ฉันรวบรวมโพสต์ซึ่งแสดงชุดของผู้ใช้ดังกล่าวจากกระทู้ของฟอรั่มเดียวที่พบว่าแม้จะมี RAM จำนวนมากฟรี pagefile ยังคงถูกใช้:

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589


ขอบคุณที่รวบรวมรายการนี้ ควรช่วยนำหลักฐานมาแสดงว่าทฤษฎีและการปฏิบัติแตกต่างกันในเรื่องนี้ Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.ใช่ราวกับว่า: p
user1306322

ข้อสรุปนี้มีข้อบกพร่อง ความจริงที่ว่าระบบปฏิบัติการเขียนสิ่งต่าง ๆ ไปยัง pagefile แม้ว่าจะเห็นได้ชัดว่ามี "RAM จำนวนมากฟรี" ไม่ได้พิสูจน์อะไรเกี่ยวกับ "การออกแบบที่ไม่สมบูรณ์และปรัชญา" หมายความว่าคุณไม่มีข้อมูลเพียงพอที่จะประเมินการตัดสินใจของระบบปฏิบัติการได้อย่างเหมาะสม สำหรับผู้เริ่มต้นให้พิจารณากรณีที่มีหน้าแก้ไขมากมาย พวกเขาถูกเขียนไปยัง pagefile และย้ายไปที่รายการสแตนด์บาย - ตอนนี้พวกเขาเป็นส่วนหนึ่งของ "ว่าง" คุณเข้าใจไหม? RAM พร้อมใช้งานเพราะเนื้อหาถูกเขียนไปยัง pagefile!
เจมี่ Hanrahan

@JamieHanrahan: นั่นไม่ได้อธิบายว่าทำไมคนยังคงมีปัญหาแม้จะไม่ค่อยใช้ RAM มากกว่าเศษเสี้ยว ความคิดเห็นในหัวข้อนั้นรวมถึง: "ฉันไม่เคยใช้มากกว่าครึ่งจริง ๆ ", "การใช้ไฟล์หน้าประมาณ 2.7GB โดยที่การใช้ RAM เท่ากับ 3.23GB จาก 16GB", "ฉันมีประสิทธิภาพเพิ่มขึ้นอย่างมากเมื่อใช้ Illustrator เมื่อ ฉันสร้างและย้าย pagefile ของฉันไปที่ RAMDisk "
Dan W

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

โดยเฉพาะอย่างยิ่งการอ้างสิทธิ์ "การใช้ไฟล์เพจ" ต้องการการพิสูจน์ การมีกิกะไบต์ของสิ่งต่าง ๆ ใน pagefile ไม่ได้พิสูจน์ว่า pagefile กำลังถูกใช้ในลักษณะที่ทำให้มันอยู่ในเส้นทางประสิทธิภาพที่สำคัญ ในการประเมินสิ่งนี้ให้แยก pagefile บนพาร์ติชันด้วยตัวเอง - หรืออย่างน้อยหนึ่งไฟล์ที่ไม่ได้ใช้งานอย่างอื่น - จากนั้นคุณสามารถใช้ PerfMon บน "โลจิคัลดิสก์" นั้นเพื่อตรวจสอบอัตรา IO ถ้า pagefile ไม่ได้ถูกอ่านบ่อย ๆ มันก็ไม่สำคัญว่ามันจะถูกเขียนไปมากแค่ไหน!
เจมี่ Hanrahan

2

การแปลงระบบปฏิบัติการที่ได้รับการออกแบบมาเป็นสิ่งที่สำคัญมากที่จะไม่ใช้ swap นั้นยากกว่าที่คิด

Mac สมัยใหม่มีพาร์ติชั่นการกู้คืนซึ่งเป็นส่วนหนึ่งของไดรฟ์หลักพร้อมระบบปฏิบัติการแบบแยกส่วนที่สามารถซ่อมแซมหรือกู้คืนระบบหลักได้ ในวันที่ติดตั้ง DVD พวกเขาใช้กระบวนการแบบกำหนดเองตอนนี้ระบบจะสร้าง RAMdisk สำหรับพาร์ติชัน swap เนื่องจากไม่สามารถรับประกันว่าโปรแกรมติดตั้งจะมีพื้นที่ดิสก์ที่ใช้งานได้ ระบบปฏิบัติการรวมถึงเฟรมเวิร์กที่จำเป็นเพื่อใช้งานซอฟต์แวร์บำรุงรักษาที่รวมอยู่ซึ่งเหมือนกับยูทิลิตี้ที่มีให้หลังจากการติดตั้ง ทำงานน้อยลงสำหรับทุกคน

การ จำกัด ระบบให้กับแอพพลิเคชั่นหนึ่งตัวในแต่ละครั้งนั้นหมายความว่า ramdisk-swap นั้นไม่เคยถูกใช้งานมาก่อน แต่ระบบปฏิบัติการคาดว่าจะอยู่ที่นั่น


2

หากคุณมีหน่วยความจำเพียงพอคำตอบคือใช่คุณสามารถปิดการสลับได้ Swap ถูกสร้างขึ้นเพื่อเอาชนะข้อ จำกัด ของ RAM และทำให้การใช้งานมีประสิทธิภาพมากขึ้น

คำถามตอนนี้คือ RAM มี RAM เพียงพอหรือไม่ ไม่มีคำตอบสากลสำหรับเรื่องนี้และโดยระบบธรรมชาติจะหิวในหน่วยความจำ ดังนั้นและหากคุณไม่ได้ทำงานในสภาพแวดล้อมที่เฉพาะเจาะจงและมีการควบคุมอย่าปิดการแลกเปลี่ยน

การแสดงความสามารถชนิดอื่น ๆ เช่นการใส่ swap บน RAM จะสร้างความซับซ้อนเพิ่มขึ้นอีกระดับและใช้หน่วยความจำที่สามารถนำมาใช้โดยตรง


2

ระบบของฉันมี RAM 24GB ด้วยเหตุนี้ฉันจึงปิดการใช้งาน pagefile เพื่อป้องกันการสึกหรอบน SSD โดยไม่มีปัญหาใด ๆ ฉันเพิ่งสร้าง RAM Disk โดยใช้หน่วยความจำ 4GB เพื่อจัดเก็บไฟล์แคช Google Chrome เพียงเพื่อดูว่าจะเพิ่มประสิทธิภาพของเกม Flash Player ออนไลน์และการท่องเว็บทั่วไปหรือไม่ ฉันเห็นประสิทธิภาพที่เพิ่มขึ้นอย่างเห็นได้ชัดจากการทดสอบนี้ เนื่องจากฉันมีพื้นที่ว่างบน RAM ดิสก์ของฉันฉันจึงเปิดใช้งาน pagefile ของฉันและตั้งค่าขั้นต่ำและขนาดสูงสุดไว้ที่ 1GB และย้ายไปยัง RAM Disk แม้ว่าฉันไม่สามารถพูดได้ว่ามีการเพิ่มประสิทธิภาพใด ๆ ดูเหมือนว่าระบบของฉันจะทำงานมีเสถียรภาพมากขึ้น


คุณจะดีขึ้นมากเพียงแค่วางไฟล์เพจบน SSD ของคุณ Windows จะไม่ใช้หากไม่จำเป็น การวาง pagefile บน RAMdisk นั้นไร้สาระ ใช่ข้อบกพร่องของหน้านั้น "ไฟล์" นั้นจะได้รับการแก้ไขเร็วกว่าถ้าอยู่บนดิสก์จริง แต่โดยการกำหนด RAM ให้กับ RAMdisk ในตอนแรกคุณจะเพิ่มจำนวนข้อบกพร่องของหน้า มันเหมือนกับการยืมเงินจากตัวเองชาร์จดอกเบี้ยและทิ้ง "ดอกเบี้ย" ออกไป มันไม่ผิดแม้แต่น้อย
เจมี่ Hanrahan

1

การย้าย pagefile ไปที่ RAM เป็นแนวคิดที่น่าขันเพียงปิดและ RAM เพิ่มเติม :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

การจัดการหน่วยความจำได้รับการจัดการโดย CPU และการเปิดหรือปิด pagefile นั้นสร้างความแตกต่างเพียงเล็กน้อยในการจัดการหน้าเว็บ มันโปร่งใสกับ Windows

ลำดับความสำคัญของหน้าไม่เปลี่ยนแปลงหน้าจะถูกยกเลิกเพียงเหมือนกัน CPU ที่ใช้ Pagefiles เป็นที่เก็บข้อมูลสำรองไม่ใช่ระบบปฏิบัติการ ไม่มีอะไรมากไปกว่าแคชระดับสองเมื่อระดับหนึ่ง (RAM) หมด

ตัวอย่างที่รวดเร็วและสกปรกมาก: เครื่องของฉันมี RAM ขนาด 16GB และไม่มีไฟล์เพจ 5 นาทีที่ผ่านมาพร้อมสแตนด์บาย 13GB และฟรีเพียง 2GB ฉันโหลด Fallout 4 หน้าเว็บที่มีลำดับความสำคัญต่ำถูกยกเลิกเมื่อโหลด Fallout

Btw จากบันทึกด้านข้าง, 2008 Technet Blog เกี่ยวกับการผลักดันขีด จำกัด หน่วยความจำของ Windows เป็นสิ่งที่ทำให้เข้าใจผิดมาก https://i.stack.imgur.com/wXkmi.png ฉันก็สงสัยเหมือนกันว่าแม้มาร์คจะเขียนมัน แต่ฉันหวังว่าจะไม่เพราะมันจะเปลี่ยนมุมมองของฉันที่มีต่อเขา .....

Fwiw มีช่องโหว่ในบทความที่ฉันเกี๊ยวไม่มีใครเลือกมาพิจารณาว่าบล็อกนั้นถูกอ้างอิงบ่อยเพียงใด

  • Windows pagefile และตำแหน่งถูกจัดการโดย Windows การดักจับการเข้าถึงหน่วยความจำไปยังตำแหน่งที่ถูกทำเพจออกไปยังดิสก์จะถูกจับโดย CPU แต่ส่งไปยังระบบปฏิบัติการเพื่อดึงหน้าจากดิสก์และโหลด

อย่างไรก็ตามนี่คือคำอธิบายที่คลุมเครือ:

Windows ไม่สามารถเข้าถึงที่อยู่สูงกว่า CPU - เป็นไปไม่ได้

ไม่ว่าระบบปฏิบัติการจะมีความสามารถยังคงถูก จำกัด โดยฮาร์ดแวร์ที่ทำงานอยู่ .. เพราะระบบปฏิบัติการเป็นซีพียูตัวจริง (ลงทะเบียนภายใน)

ตกลงดังนั้น pagefile เป็นพื้นที่บน HDD ที่ CPU ใช้สำหรับการขยายพื้นที่ที่อยู่ทางกายภาพเมื่อไม่สามารถใช้ RAM หรือหน่วยความจำได้จริง

ในสถาปัตยกรรม x86 32 บิตที่แบ่งกลุ่มเช่นมี RAM 2GB สองส่วน

หนึ่งถูกจัดสรรให้กับเคอร์เนล อีก 2GB สำหรับโหมดผู้ใช้ นั่นคือRAMทั้งหมดที่CPU สามารถใช้กับ 32 DRAM พินได้ แต่กระบวนการ 32 บิตมี 4GB ที่มีอยู่ดังนั้นจะทำอย่างไร โชคดีที่ CPU สามารถใช้หน่วยเก็บข้อมูลรอง AKA เป็นฮาร์ดไดรฟ์สำหรับจัดเก็บเพิ่มอีก 2GB หน้า เนื่องจากมีการลงทะเบียนภายใน
สถานที่ตั้งจริงที่เพจเสมือนที่อ้างอิงโดยกระบวนการไม่จำเป็นต้องเก็บไว้ใน RAM แต่พวกเขาจะถูกเก็บไว้ที่ใดที่หนึ่งโดย CPU

CPU ไม่สามารถมอบ RAM 4GB ทั้งหมดให้กับแอพได้ แต่สามารถให้ที่อยู่ 4GB ได้โดยใช้ HDD เป็นแคชสำรอง (ซึ่งเป็น HDD ทั้งหมดจริงๆ)

หน้าถูกย้ายเข้าและออกจาก RAM ผ่านกลไกการเลื่อนหน้าภายใน แต่นี่ไม่เหมือนกับ pagefile เพจจิ้งเกิดขึ้นเสมอ ....

บรรทัดล่างนั้นไม่ซับซ้อนจริงๆ ในช่วง 15 ปีที่ผ่านมาผู้ใช้จำนวนมากได้รับความประทับใจไฟล์เพจจึงเป็นส่วนสำคัญของระบบปฏิบัติการ มันไม่เคยมีมาก่อน ความเข้าใจผิดนี้เกิดจากบาง บริษัท เช่น Intel และ Microsoft

RAM เป็นอุปกรณ์จัดเก็บข้อมูลที่รวดเร็วฮาร์ดไดรฟ์เป็นอุปกรณ์จัดเก็บข้อมูลที่ช้ากว่าดังนั้น RAM โดยพื้นฐานคือแคชระดับ 1 ฮาร์ดไดรฟ์คือระดับ 2 (ไม่สนใจ CPU แคชสำหรับการเปรียบเทียบนี้) ซีพียูสามารถเข้าถึงได้ทั้งคู่

หาก RAM ไม่เพียงพอสำหรับซีพียูในการจัดเก็บหน้าที่จำเป็นต้องใช้ HDD นั้นสามารถใช้เป็นโอเวอร์โฟลว์ได้ หากมี RAM จำนวนมากแสดงว่า PF มีการซ้ำซ้อน

จนถึง Core 2 ตัวประมวลผล Intel มีบัส DRAM 32pin และผู้ลงทะเบียน 32 รายหมายถึง CPU มีการเข้าถึง RAM ขนาด 4GB และพื้นที่ HDD 4GB (pagefile) นี่เป็นข้อ จำกัด ด้านสถาปัตยกรรมฮาร์ดแวร์ไม่ใช่ข้อ จำกัด ของ Windows

จำนวนทั้งหมดที่มีสำหรับกระบวนการคือ 3.5GB เนื่องจากตารางหน้าใช้เวลา 512MB ขึ้นไป นี่คือเหตุผลที่ 3.5GB แสดงใน Windows ด้วย Intel CPU (จนถึง Core 2) เพิ่ม GPU และแม้แต่น้อยก็สามารถใช้ได้

Xeon สามารถเข้าถึง RAM ขนาด 32GB ทั้งหมดได้รวมเนื้อที่ทางกายภาพ 64GB พร้อม HDD (หน้าไฟล์อีกครั้ง) ( ^ นี้ครอบคลุม PAE - ยิ่งกว่านั้นมาพร้อมกับลิงก์ที่เพิ่ม )

ป้อนคำอธิบายรูปภาพที่นี่ http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

แหล่งที่มาของสกรีน ช็อตที่3: System V Application Binary Interface AMD64 Architecture Processor Supplement Draft เวอร์ชัน 0.99.7

ฉันตั้งใจจะปรับปรุงคำตอบนี้ต่อไปและเพิ่มเนื้อหาต้นฉบับและข้อมูลที่เกี่ยวข้อง ฉันต้องการสร้างความสมดุลระหว่างข้อมูลไม่เพียงพอกับข้อมูลทางเทคนิคมากเกินไป ยินดีรับข้อเสนอแนะ กรุณาอย่าลงคะแนนเพียงเพราะมันอาจไม่ได้เขียนได้ดี


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