หน่วยความจำเสมือนบน Linux ไม่ได้เพิ่มขึ้น?


4

ฉันดูที่ System Monitor บน Linux และสังเกตว่า Firefox ใช้หน่วยความจำ 441 MB และแอปพลิเคชันอื่น ๆ ใช้ 274, 257, 232 และอื่น ๆ (เพิ่มหน่วยความจำเสมือนมากถึง 3 GB) ดังนั้นฉันจึงสลับไปที่แท็บทรัพยากรและมีข้อความระบุว่าฉันใช้หน่วยความจำ 462 MB และไม่ได้แตะสลับ ฉันสับสน จำนวนหน่วยความจำเสมือนหมายถึงอะไรถ้าโปรแกรมไม่ได้ใช้งานจริง ฉันคิดว่าบางทีหน่วยความจำที่พวกเขาร้องขอ แต่ไม่ได้ใช้ แต่ OS จะรู้ได้อย่างไร ฉันไม่สามารถคิดถึงฟังก์ชั่น "ฉันอาจต้องการความทรงจำมากมายในอนาคต"


สินเชื่อพิเศษ การอ่าน และ ที่นี่ .
Dennis Williamson

ฉันรู้ว่าหน่วยความจำเสมือนทำงานอย่างไรคำถามของฉันคือทำไมขนาด "หน่วยความจำเสมือน" ที่แสดงจึงไม่เพิ่มขึ้น (ไม่ปิด) สมมติฐานของฉัน (ไร้เดียงสาชัดเจน) คือถ้าบอกว่าฉันใช้หน่วยความจำเสมือน 3 GB แล้วการรวมกันของการใช้หน่วยความจำและการใช้งาน swap ควรเพิ่มได้สูงสุด 3 GB ..
Brendan Long

"การใช้หน่วยความจำเสมือน" แสดงรายการไฟล์แคชหรือไม่
Brendan Long

คำตอบ:


1

ก่อนอื่นหน่วยความจำที่ใช้ร่วมกันจะนับไม่ถูกต้อง (?) ที่ด้านบนสุด ประการที่สองใช่โปรแกรมจะขอสิทธิ์ในหน่วยความจำจากนั้นจึงใช้ แต่อาจไม่เคยสัมผัสเลยและระบบปฏิบัติการรู้ว่า ไม่มีปัญหาเลยสำหรับทุกแอพที่จะจัดสรร ram และ swap ทั้งหมดตราบใดที่พวกเขาไม่ได้ลองใช้ :-D & gt; เราไม่ได้อยู่ในโลกของ Mac OS Classic (อันที่จริงแล้วนั่นคือการทำงานของ Ram Doubler แบบเก่าทำให้คุณสามารถใช้ความแตกต่างระหว่างการจัดสรรและการใช้งานได้)


คุณหมายถึงอะไรโดยการขอสิทธิ์หน่วยความจำและไม่เคยใช้มัน เช่นถ้าโปรแกรมใช้ malloc () แต่ไม่เคยเข้าถึงตัวชี้ระบบปฏิบัติการสามารถบอกได้หรือไม่
Brendan Long

1
เผง โปรแกรมอยู่ในพื้นที่ของผู้ใช้และไม่สามารถทำสิ่งใดโดยไม่ได้รับอนุญาต (นั่นคือสิ่งที่ pmmu ใช้สำหรับ) ดังนั้นใช่ระบบปฏิบัติการติดตามว่า ย้อนกลับไปในสมัยที่พวกเราส่วนใหญ่ไม่มีระบบที่ใช้แรมเป็นจำนวนมากมีแอพบางตัว (เช่นฐานข้อมูลวัตถุ) ที่จัดสรรพื้นที่ที่อยู่ 3GB แต่ใช้เพียงเล็กน้อยเท่านั้น
Ronald Pottol

0

คุณเคยลองยิง "vmstat" หรือไม่? iff ไม่ช่วยตัวเองและปลดมันจาก command line ดังนี้:

vmstat

และโปรด RTFM เพื่อลดหนี้ของคุณ ฉันเคยเห็นธงที่น่าสนใจสองสามเล่มในหน้าคน ... ซึ่งอาจช่วยให้คุณเข้าใจบวกถ้าคุณกังวลเกี่ยวกับการใช้หน่วยความจำ firefox จริงๆ .. จากนั้นลองดูวิธีการแก้ปัญหานี้ .. ที่นี่

http://unixbhaskar.blogspot.com/2009/10/firefox-saga-on-opensuse.html

และที่นี่

http://unixbhaskar.blogspot.com/2010/02/cleanup-firefox-clogging-by-pruning-its.html

และถ้าคุณสนใจรู้ลินุกซ์ภายในสำหรับการจัดสรรหน่วยความจำแบบไดนามิกอ่านได้ที่นี่

http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/index.html

และใช้หนึ่งไบนารีที่เรียกว่า "pmap" .. ใช้มันเหมือนกับ pmap นี้ (process-id) เพื่อรับทราบว่าแอปพลิเคชันนั้นโดยเฉพาะใช้หน่วยความจำภายในเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ "man pmap"

ฉันหวังว่าฉันจะให้ข้อมูลเชิงลึกกับคุณมากขึ้น

ไชโย!


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