Arch Linux คิดว่าฉันมี ram ประมาณ 16 กิ๊กเมื่อฉันมีเพียง 8


10

ฉันได้ทำการค้นหาหลายครั้งและฉันไม่พบสิ่งใดบน Google เกี่ยวกับเหตุผลว่าทำไม arch ได้จัดสรร 7.7 กิ๊กเป็น ram และ 7.9 เพื่อแลกเปลี่ยน

  • ฉันมีแค่ 8 กิ๊กส์ ram

  • มันจัดสรร ram มากกว่าให้สลับมากกว่าปกติ

ฉันจะเปลี่ยนการจัดสรรได้อย่างไร

ผลลัพธ์ของcat /proc/meminfo: MemTotal: 8091960 kB MemFree: 4925736 kB MemAvailable: 6131188 kB Buffers: 268936 kB Cached: 1219460 kB SwapCached: 0 kB Active: 1527516 kB Inactive: 1301140 kB Active(anon): 768904 kB Inactive(anon): 711440 kB Active(file): 758612 kB Inactive(file): 589700 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8300540 kB SwapFree: 8300540 kB Dirty: 1960 kB Writeback: 0 kB AnonPages: 1306968 kB Mapped: 382800 kB Shmem: 140100 kB Slab: 197964 kB SReclaimable: 163104 kB SUnreclaim: 34860 kB KernelStack: 6864 kB PageTables: 29200 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 12346520 kB Committed_AS: 3927808 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 186368 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 584316 kB DirectMap2M: 7716864 kB DirectMap1G: 0 kB


21
swapคือตามคำนิยามไม่ได้ใช้ RAM
user4556274

1
การสลับที่เหมือนกัน (หรือมากกว่านั้น) จากนั้นคุณได้รับ RAM เป็นการเริ่มต้นที่ดี ... และโปรดจำไว้ว่าการสลับพื้นที่อาจใช้ถ้าคุณจำศีล (ใส่ RAM ลงในดิสก์) ในสมัยก่อนมีใครพูดถึงการแลกเปลี่ยนสองเท่าของ RAM - แต่สำหรับ Linux นั่น "กฎ" จะใช้เฉพาะเมื่อคุณมี 512MB หรือน้อยกว่า (หรือเป็น 256MB) อย่างไรก็ตามมีระบบ Unix (อย่างน้อยหนึ่งระบบ) ที่การออกแบบเป็นเช่นนั้นคุณจะต้องมีจำนวนการแลกเปลี่ยนอย่างน้อยสองเท่า ลินุกซ์ยุคแรกมีข้อ จำกัด เกี่ยวกับจำนวนการแลกเปลี่ยนต่อพาร์ติชั่นจำนวนการสลับพาร์ติชั่นและ / หรือการแลกเปลี่ยนทั้งหมด TBC
Baard Kopperud

2
ดำเนินการต่อ ... ในการตัดสินใจว่าต้องการแลกเปลี่ยนเท่าใดคุณควรตรวจสอบอย่างรอบคอบถึงจำนวนหน่วยความจำที่กระบวนการที่คุณ (และผู้ใช้ของคุณ) เรียกใช้จริง ๆ ต้องใช้ แต่จำไว้ว่าการแลกเปลี่ยนนั้นไม่ได้ใช้แทน RAM น้อยเกินไป ที่กล่าว - จากผู้ที่มี RAM 2GB (ไม่ใช่ "เท่านั้น" 8GB เช่นคุณ) - ระบบส่วนใหญ่จะสามารถเก็บกระบวนการทั้งหมดไว้ใน RAM ได้ อย่างไรก็ตามพวกเขาไม่จำเป็นต้องทำการสลับเพื่อเก็บหน่วยความจำ "เพจที่ไม่ได้ใช้" ของกระบวนการ - และบางครั้งกระบวนการ "ไม่ได้ใช้" ทั้งหมด - ดังนั้นจึงเป็นการเพิ่ม RAM ... RAM "ไม่ได้ใช้" นี้จะถูกใช้เป็นบัฟเฟอร์และ แคชเพื่อเพิ่มความเร็วของสิ่งต่าง ๆ
Baard Kopperud

2
หมายเลข 7.7GB อาจมาจากฟิสิคัลแรมที่มีการจัดสรรให้กับเคอร์เนล ~ 300MB อย่างถาวร RAM นั้นยังคงมีอยู่ แต่ไม่สามารถใช้สำหรับโปรแกรมทั่วไป
zwol

1
อะไรทำให้คุณเชื่อว่า "Arch คิดว่าคุณมี RAM 16GB"
marcelm

คำตอบ:


26

สิ่งนี้จะบอกคุณว่าคุณมี 16GB ของหน่วยความจำเสมือน

หน่วยความจำเสมือนคือจำนวน RAM จริงและการสลับพื้นที่ที่เพิ่มขึ้น

นี่เป็นวิธีที่ทำให้ระบบของคุณใช้งานโปรแกรมได้มากกว่าที่มันมีพื้นที่ว่างสำหรับร่างกาย

จำนวนการแลกเปลี่ยนที่ควรจัดสรรให้กับเครื่องเป็นคำถามที่ซับซ้อนและให้ความเห็น ถามคน 2 คนและรับคำตอบ 3 ข้อ :-)

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


5
" หน่วยความจำเสมือนคือจำนวน RAM จริงทั้งหมดและพื้นที่สว็อปเพิ่มขึ้น " ไม่มันไม่ใช่ ตัวอย่างเช่นบนเครื่อง 64 บิตที่มี RAM 4GB และ swap 4 GB ฉันสามารถแมปหน่วยความจำไฟล์ 64GB ได้ นั่นคือ 64GB ของหน่วยความจำเสมือนแม้ว่า RAM และการสลับจะเพิ่มได้สูงสุด 8GB
David Schwartz

1
@DavidSchwartz ถูกต้อง มันเหมาะสมกว่าที่จะบอกว่าหน่วยความจำเสมือนเป็นสิ่งที่สามารถแก้ไขได้ในฐานะหน่วยความจำโดยเฉพาะอย่างยิ่งสิ่งที่สำรองไว้ สิ่งนั้นอาจเป็นได้ทั้งชิป RAM, พอร์ต I / O บางส่วน, พาร์ติชัน swap, ไฟล์ swap บนดิสก์หรือไฟล์ปกติที่ไม่มีความหมายพิเศษกับระบบปฏิบัติการหรือตัวจัดการหน่วยความจำ นอกจากนี้ยังไม่จำเป็นต้องทำงานในลักษณะที่ถ้าคุณเขียนอะไรแล้วอ่านทันทีคุณอ่านสิ่งที่คุณเขียน (ตัวอย่างเช่น I / O บางตัวทำหน้าที่ลงทะเบียนด้วยวิธีนี้)
CVn

1
มันเป็น "Unix 101 รุ่นเริ่มต้น" ฉันยังไม่ได้กล่าวถึงวิธีการเพิ่มหน้าปฏิบัติการได้เป็นหน้าอ่านอย่างเดียวไปยังแผนที่หน่วยความจำและสิ่งที่สนุกอื่น ๆ เช่นโดยรวม อย่างไรก็ตามในระดับแรกนั้นการประมาณ VM = RAM + swap นั้นใกล้พอและคำถามทั้งหมดนี้เกี่ยวกับ
สตีเฟ่นแฮร์ริส

"สิ่งนี้กำลังบอกคุณว่าคุณมีหน่วยความจำเสมือนจริง 16GB" - ไม่มีทางที่จะรู้ว่าเนื่องจาก OP ไม่เคยอธิบายว่าทำไมเขาถึงคิดว่า Arch บอกว่าเขามี 16GB
marcelm

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