เหตุใดแคชในหน่วยความจำของฉันจึงเต็มเสมอ


13

ฉันมีหน่วยความจำ 6GB, i5 2.4GHZ Processor ที่ใช้ Ubuntu 11.10 ฉันแบ่งพาร์ติชัน HD ของฉันเพื่อให้ฉันมีการแลกเปลี่ยน 8GB

เมื่อสตรีมมิ่งออนไลน์หรือเปิดหลายแท็บใน Chromium ในไม่ช้าฉันจะมีหน่วยความจำ 4GB ในแคช และฉันคิดว่านี่ทำให้โน้ตบุ๊คของฉันช้า เมื่อสตรีมวิดีโอหลังจากนั้นไม่กี่นาทีมันจะช้าลงและทำให้สะดุด / กระตุก

ปัญหานี้จะเป็นอย่างไร ฉันจะแก้ปัญหานี้ได้อย่างไร

PS: เริ่มแรกฉันมี 4GB และอัปเกรดเป็น 6GB เมื่อเร็ว ๆ นี้ แต่ฉันไม่พบการเปลี่ยนแปลงที่สำคัญ

PPS: free -gในเครื่องจะพิมพ์สิ่งนี้:

               total       used       free     shared    buffers     cached
Mem:             5          2          3          0          0          0
-/+ buffers/cache:          1          4
Swap:            8          0          8

"แคชแรม" หมายความว่าอย่างไรและคุณบอกได้อย่างไรว่ามันเต็ม
Sergey

คุณช่วยกรุณาเรียกใช้free -g(ใน terminal) เมื่อคุณพบปัญหาและรวมเอาท์พุทของคำสั่งในคำถามของคุณ
Portablejim

ที่แผงด้านบนของฉันฉันมีแอปเพล็ตที่ระบุการใช้งาน RAM และ CPU อย่างชัดเจน เมื่อฉันคลิกมันจะบอกฉันว่า: "Mem: 2GB Cache 4GB"
Tobias

1
free -gบอกว่าคุณมี RAM 3GB ฟรี หน่วยความจำไม่ใช่ปัญหาของคุณ!
ams

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

คำตอบ:


13

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

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

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

อย่างไรก็ตามคุณควรเห็นจากการใช้หน่วยความจำไม่ว่าจะเป็นการสลับหรือไม่ ถ้าเป็นเช่นนั้นแสดงว่าเป็นปัญหาซอฟต์แวร์และสามารถแก้ไขได้ :)


ฉันใช้เพียง 1,8% ของ SWAP การระบายความร้อนไม่ใช่ปัญหาเพราะฉันมีแผ่นทำความเย็นพร้อมพัดลมสองตัว ฉันรู้ว่าวิดีโอเป็นตัวประมวลผลที่เข้มข้น แต่ i5 quad core 2,4GH และ RAM 6GB ควรจะเพียงพอสำหรับการสตรีมที่ราบรื่น
โทเบียส

1.8% ของการแลกเปลี่ยนแนะนำให้ฉันรู้ว่าปัญหาของคุณไม่ใช่ว่าคุณหมด RAM ฉันเห็นด้วยตราบใดที่ตัวประมวลผลของคุณยังไม่ได้รับการควบคุมก็ควรจะสามารถทำงานได้
ams

ตกลงกว่าบางทีมันเป็นเบราว์เซอร์ตัวเอง?
โทเบียส

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

11

ฉันมีปัญหาเดียวกันดูเหมือนว่าแคชจะไม่ถูกปล่อยออกมา ... ตัวอย่างหนึ่งคือเมื่อฉันเช็กเอาต์ที่เก็บและจบลงด้วยแคชขนาด 4GB

ตัวอย่าง:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       7425        523          0        112       4433
-/+ buffers/cache:       2879       5069
Swap:         7627          2       7625

สิ่งที่ฉันทำคือการเรียกใช้รหัสตะโกน (ความเห็นเป็นเพียงเพื่อให้คุณรู้ว่าเกิดอะไรขึ้น) คุณอาจสร้างสคริปต์เพื่อให้คุณสามารถเรียกใช้เมื่อคุณต้องการ:

# To free pagecache:
#         echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#         echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
#         echo 3 > /proc/sys/vm/drop_caches
sudo sync && sudo sysctl -w vm.drop_caches=3

หลังจากฉันรันโค้ดด้านบน:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       2820       5129          0          2        407
-/+ buffers/cache:       2409       5539
Swap:         7627          2       7625

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

5
อาจเป็นเช่นนั้น แต่ในกรณีนั้นอัลกอริทึมไม่ดี ทำไมฉันถึงมีแคชมากกว่า 4GB และเริ่มใช้ swap?
คาร์โล

ในหัวข้อนี้ฉันชอบบทความนี้: link
Carlo

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

ฉันเคยสนใจในการพัฒนาเคอร์เนล .. ค่อนข้างแน่ใจว่านี่ยัง "ตามการออกแบบ" หากเคอร์เนลคิดว่าส่วนหนึ่งของไฟล์มีแนวโน้มที่จะเข้าถึงได้เร็วกว่าข้อมูลที่ไม่ระบุชื่อบางส่วนมันจะสลับข้อมูลอานนท์และเก็บแคชของหน้า ไม่ว่าจะเป็นการตัดสินใจที่ถูกต้องเป็นคำถามที่แตกต่างกันแน่นอน :)
สตีฟดี

0

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

PS ตกลงฉันเข้าใจแล้ว ฉันเดิมพัน 'คอนเทนเนอร์ปลั๊กอิน' ที่เพิ่มขึ้นตามเวลาเนื่องจากวิธีการใช้หน่วยความจำ ฉันเดาว่ามันเป็นพอร์ตจากระบบ Gill Bates;) การฆ่ามันจะไม่ช่วย (โดยการฆ่าคุณจะทำให้ภาพเคลื่อนไหวทั้งหมดในแต่ละหน้าส่วนใหญ่เป็นโฆษณา แต่ก็รวมถึงวิดีโอ Youtube ด้วย) นอกจากนี้ Chromium ชอบที่จะขยายเวลาดังนั้นวิธีเดียวที่จะจัดการกับมันน่าจะเป็นการเริ่มต้นใหม่เป็นครั้งคราว ดูว่ามันช่วย ...


เมื่อฉันรีสตาร์ทเบราว์เซอร์การสตรีมจะทำงานอย่างราบรื่นอีกครั้งอย่างไรก็ตามเป็นเวลา 10 นาที จากนั้นฉันต้องรีสตาร์ทเบราว์เซอร์อีกครั้ง
โทเบียส

กระบวนการที่ใช้: Chromium 250MB Chromium 214 MB Chromium 150Mb, compiz 119 MB, zeitgeist-daemon 111 MB, Chromium 70Mb, exe 24% ของ CPU และ 60MB, Rhythmbox 50MB, ubuntuone-syndaemon 26MB เป็นต้น ..
Tobias

ฉันกลัวว่าปัญหาของคุณอาจเกิดจากเบราว์เซอร์เอง พิจารณาเปลี่ยนเป็น Firefox หรือตัวเลือกใด ๆ ของคุณความคิดเห็นของผู้ใช้บนเว็บว่า Chromium ใช้หน่วยความจำประมาณ 3 เท่ากว่าเบราว์เซอร์ 'บรรทัดบนสุด' อื่น ๆ ให้มันลอง. ติดตั้งเปิดแท็บจำนวนเดียวกันและเปรียบเทียบ ...
Adam Kroczyk

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