64 บิต Windows 8“ คำเตือนหน่วยความจำเหลือน้อย” มีข้อ จำกัด เช่นเดียวกับใน Windows 7 x64 หรือไม่? [ปิด]


1

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

ขีด จำกัด นั้นดูเหมือนจะเป็นเปอร์เซ็นต์ของ RAM ระบบทั้งหมด Windows 7 x64ขีด จำกัด จะกล่าวถึงที่นี่และวิธีการหลีกเลี่ยง "เตือนหน่วยความจำต่ำ" ถูกกล่าวถึงที่นี่

การปิดใช้งานคำเตือนหน่วยความจำเหลือน้อยมีข้อดี - คุณสามารถใช้ RAM ขนาด 600MB ได้มากกว่าบนเครื่อง 8GB) แต่มีข้อเสียร้ายแรง - เมื่อคุณไม่มีแรมโปรแกรมจะหยุดทำงาน

คุณสามารถจัดสรร RAM ได้เท่าใดใน 8GB Windows 8 x64 ก่อนที่คุณจะได้รับคำเตือนหน่วยความจำเหลือน้อย เป็นไปได้หรือไม่ที่จะปรับเกณฑ์การเตือน

แก้ไข : ฉันไม่สามารถตอบคำถามนี้ได้ด้วยตัวเองเนื่องจากถูกปิดเนื่องจากการโต้เถียงเพื่อเห็นแก่การโต้เถียง อย่างไรก็ตามฉันตอบได้ที่นี่: อะไรคือเกณฑ์ "การเตือนความจำต่ำ" กับ 16GB x64 windows?

กล่าวโดยสรุปคือใช่ว่า Windows 8.1 x64 จะทำงานในลักษณะเดียวกับที่ใช้ Windows 7 x64 หากคุณมีข้อ จำกัด ด้าน Commit ต่ำ - การเรียกเก็บเงินค่าคอมมิชชัน RAM ที่ค่อนข้างใหญ่จะยังคงมีอยู่ถ้าเป็นไปได้ สิ่งนี้ทำได้โดยการย้ายสิ่งต่าง ๆ เข้าสู่ pagefile

ขีด จำกัด "การเตือนหน่วยความจำต่ำ" กับ Windows 16 GB x 64 เป็นเท่าใด


5
คุณมีแหล่งที่มาสำหรับการเรียกร้อง 25% นี้หรือไม่? มันฟังดูบ้าเหลือเกินสำหรับฉันและฉันไม่สามารถค้นหาที่มาเพื่อสำรองข้อมูลนี้ได้โดยใช้คำค้นหาที่ชัดเจน
David Schwartz

@DavidSchwartz: ดูเหมือนว่าเขาจะหมายถึงระบบหน่วยความจำชนิดของหน่วยความจำระบบปฏิบัติการของตัวเองต้องการที่จะทำงาน ฉันสงสัยว่า windows8 จะให้ขึ้นแกะของบางสิ่งบางอย่างที่จะต้องหายใจ :)
akira

3
ชื่อฟังดูโง่สำหรับฉัน แอพสามารถใช้หน่วยความจำที่ติดตั้งทั้งหมดได้อย่างไร? ระบบปฏิบัติการจะไปไหน
Karan

เครื่อง Windows 7 ที่ฉันนั่งอยู่ข้างหน้าตอนนี้มี RAM จริง 8GB และฟรีเพียง 41MB ดังนั้นตอนนี้มีการใช้ RAM ประมาณ 99.5%
David Schwartz

1
@Barleyman: คำถามนั้นเกี่ยวกับกรณีที่ไม่มีไฟล์หน้า Windows ไม่สามารถทับ RAM จริงโดยไม่มีไฟล์หน้าได้ วิธีแก้ไขปัญหานั้นง่ายมาก - คุณต้องใช้ไฟล์เพจที่มีขนาดพอสมควร มิฉะนั้น Windows จะล้มเหลวอย่างน่ากลัวหากแอปพลิเคชันสกปรกหน้าไปจนถึงขีดจำกัดความรับผิดชอบ ปัญหาคือในขณะที่ RAM ไม่ได้ใช้งานในวินาทีนี้ Windows ได้ให้สัญญากับแอพพลิเคชั่นแล้ว หากไม่มีไฟล์หน้าเพื่อให้ครอบคลุมการตรวจสอบไฟล์จะไม่สามารถเขียนได้อีก (ระบบปฏิบัติการอื่นที่ไม่ใช่ windows มีปัญหาเดียวกันนี้มันมีอยู่ในการจัดการหน่วยความจำที่ทันสมัย)
David Schwartz

คำตอบ:


13

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

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

ตัวอย่างเช่นบนเครื่องเดสก์ท็อป Windows ของฉันเบราว์เซอร์ที่ฉันใช้พิมพ์คำตอบนี้ใช้ RAM ขนาด 207MB แต่ระบบปฏิบัติการได้สัญญาไว้แล้วว่าจะมีหน่วยความจำเสมือน 280MB ซึ่งหมายความว่าในทุกวินาทีเบราว์เซอร์สามารถใช้หน่วยความจำเสมือนขนาด 280MB โดยไม่ต้องขออนุญาตจากระบบปฏิบัติการเพียงเข้าถึงการแมปที่มีอยู่แล้ว ระบบปฏิบัติการอาจต้องจัดเตรียมกระบวนการกับหน่วยความจำนี้หรือต้องหยุดการทำงานอย่างรุนแรงโดยไม่สามารถปฏิบัติตามข้อผูกพันที่ได้ทำไปแล้ว

หากไม่มีหน่วยเก็บข้อมูลสำรองเลยเพียงแค่มี RAM จริงก็จะต้องจอง RAM เพิ่มเติม 73MB สำหรับแอปพลิเคชันนี้ แม้ว่าเบราว์เซอร์จะใช้ RAM ขนาด 207MB เท่านั้น แต่ก็สามารถเพิ่มบอลลูนเป็น 280MB ได้โดยใช้หน่วยความจำที่ได้จัดสรรไว้แล้วว่าระบบปฏิบัติการยังไม่ได้จัดสรรให้จริง (เพิ่งสงวนไว้)

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

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

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


1
แน่นอนว่าการเพิ่มขนาดไฟล์หน้าจะช่วยให้สามารถเพิ่มหน่วยความจำได้ แต่จะไม่เปลี่ยนเกณฑ์การเตือนหน่วยความจำเหลือน้อยหรือทำให้ W7 x64 ใช้ 25% สุดท้ายของ RAM สำหรับแอปพลิเคชัน ขนาดไฟล์หน้า WRT บน HDD 2GB มีจำนวนมากแล้ว 3GB นั้นไม่ได้ผลเลยหากเข้าถึงได้จริง "จำนวน 1.5x RAM" เป็นภูมิปัญญาโบราณจากยุค WfWG แทบจะไม่สามารถใช้งานได้ในปัจจุบัน บทความมาร์ค Russinovich ที่นี่กล่าวถึงว่า หมายเหตุยังแสดงความคิดเห็นของ Pavel VRT Vista ตัวเลือกการออกแบบหน่วยความจำเสมือน blogs.technet.com/b/markrussinovich/archive/2008/11/17/…
Barleyman

1
ขีด จำกัด การเตือนหน่วยความจำต่ำขึ้นอยู่กับหน่วยความจำเสมือนที่มีอยู่ ดังนั้นการเพิ่มพื้นที่ไฟล์หน้ามากขึ้นจะเปลี่ยนไปเมื่อมีคำเตือนหน่วยความจำเหลือน้อยปรากฏขึ้น และอย่างที่ฉันเขียนประเด็นก็คือว่า Windows จะไม่ใช้พื้นที่จริง ๆ แต่ Windows จะสามารถคอมมิทเพื่อหลีกเลี่ยง "การรันบนธนาคาร" ทำให้สามารถหลีกเลี่ยงการปฏิเสธการจัดสรรและใช้ RAM ที่มีประสิทธิภาพมากขึ้น . ด้วยการสำรองข้อมูลไม่เพียงพอคุณสามารถปิดท้ายด้วย RAM ที่มีอยู่จริงจำนวนมากและไม่สามารถใช้งานได้เพราะมันมุ่งมั่นกับแอปพลิเคชั่นที่จะไม่ใช้งานจริง
David Schwartz

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

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

1
@Barleyman การเปรียบเทียบนี้อาจช่วยได้: คุณมีเงินจำนวนมากในธนาคาร (RAM) แต่คุณมีเช็คมากมายที่ยังไม่ได้รับเงิน (การจัดสรรหน่วยความจำเสมือน) แม้ว่าคุณจะมีเงินจำนวนมากนั่งอยู่ในธนาคารโดยไม่ทำอะไรเลย (แรมฟรี) แต่คุณไม่สามารถเขียนเช็คได้อีกต่อไป (อนุญาตให้ทำการแมปที่อาจต้องมีร้านค้าสำรองในอนาคต) โดยไม่เสี่ยงต่อการตีกลับเช็ค ในอนาคต).
David Schwartz

6

จากMemory Limits สำหรับรุ่น Windows :

1
2
3

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

บิตที่ไฮไลต์ด้วยสีแดงน่าจะเป็นที่ที่คุณได้รับแนวคิดของการ จำกัด 25% จาก ใช่มีเพียง ~ 3 GB of RAM ที่ติดตั้ง 4 GB เท่านั้นที่ใช้ได้กับกระบวนการแบบ 32 บิตใน Windows รุ่น 32 บิตและสิ่งนี้ไม่ได้เปลี่ยนแปลงอย่างน่าอัศจรรย์กับ Windows 8 สำหรับสาเหตุที่เป็นเช่นนี้ฉันจะไม่ไป รำคาญที่จะต้องทำซ้ำบทความทั้งหมดบนอินเทอร์เน็ตที่ได้อธิบายไปแล้วในรายละเอียดรวมถึง Jeff Atwood's Dude, Where's 4 Gigabytes of RAM ของฉันอยู่ที่ไหน?


technet.microsoft.com/en-us/sysinternals/ff700229 เป็นเครื่องมือที่ดีในการดูว่ามีการใช้ RAM อย่างไร
akira

สิ่งเหล่านี้เป็นข้อ จำกัด เฉพาะสำหรับ 3GB / 4GB คำถามของเขาชัดเจนเกี่ยวกับขีด จำกัด 25% ที่ปรับตามจำนวน RAM ที่คุณมี ดังนั้นนี่จึงไม่ใช่สิ่งที่ OP ขอมา "นั่นเป็นสิ่งที่ดีเมื่อ Vista ได้รับการออกแบบเมื่อเครื่องมีหน่วยความจำรวม 1 GB แต่ก็ค่อนข้างแย่สำหรับเครื่อง 8 GB ในปัจจุบัน"
David Schwartz

@DavidSchwartz: จากนั้นเขาต้องระบุตำแหน่งที่เขาได้รับข้อมูลนี้ จากตามที่คุณระบุไว้ข้างต้น เป็นไปได้ทั้งหมดที่เขาอ่านอะไรบางอย่างจากนั้นประเมินโดยไม่มีหลักฐานที่ชัดเจนเกี่ยวกับข้อ จำกัด ของเครื่องจักรที่ทันสมัยที่มีเยอะแยะของ RAM
Karan

ฉันเห็นด้วย. เราสามารถเดาได้ว่า OP คิดอะไรอยู่ ไม่มีขีด จำกัด 25% มีข้อ จำกัด ของหน่วยความจำเสมือนที่ใช้กับกระบวนการแบบ 32 บิตและข้อ จำกัด หน่วยความจำทางกายภาพที่ใช้กับระบบปฏิบัติการแบบ 32 บิต (และอีกอันยากที่จะถูก จำกัด ในตารางด้านบน)
David Schwartz

@DavidSchwartz: ใช่คำอธิบายที่สมเหตุสมผลเพียงข้อเดียวที่ฉันจะได้รับสำหรับหมายเลขนั้นคือบิตที่ถูกเน้นด้านบน ~ 1 GB จาก 4 ที่ไม่สามารถใช้งานได้อาจหมายถึงมีข้อ จำกัด บางอย่างของรหัสที่ 25% สำหรับคนที่ไม่รู้เหตุผล
Karan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.