แล็ปท็อป Ubuntu ของฉันแลกเปลี่ยนแคชกับดิสก์เพื่อหยุดระบบของฉัน


2

แล็ปท็อปของฉันคือ Thinkpad x220, 4G ram, ฮาร์ดดิสก์คือ 7200rpm, ติดตั้งกับ Ubuntu 12.04, โดยใช้ Unity desktop

เมื่อฉันเปิดคราสและโครเมียมพวกมันกินหน่วยความจำประมาณ 2G ที่นี่คือ free -m ผล:

             total       used       free     shared    buffers     cached
Mem:          3841       3301        540          0         10        956
-/+ buffers/cache:       2334       1507
Swap:         8187        306       7881

และ top ผล:

 Mem:   3934188k total,  3540508k used,   393680k free,    45680k buffers
 Swap:  8384508k total,   313512k used,  8070996k free,  1078888k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                       
 5552 martin    20   0 4249m 388m 6560 S    0 10.1   2:46.28 java                                                                       
 3369 martin    20   0 2548m 182m  32m R    1  4.7  29:19.64 chrome                                                                     
 3406 martin    20   0 1000m 155m  16m S    0  4.1   4:18.97 chrome                                                                     
 2736 martin    20   0 1582m 106m  29m S    1  2.8  13:10.27 compiz                                                                     
 3704 martin    20   0  945m  85m 8396 S    0  2.2   0:15.60 chrome                                                                     
11047 martin    20   0  926m  82m  23m S    0  2.2   0:06.52 chrome                                                                     
11443 martin    20   0  915m  72m  21m S    0  1.9   0:46.08 chrome                                                                     
 4280 martin    20   0  822m  66m  12m S    4  1.7  14:59.41 chrome

หลังจากผ่านไประยะเวลาประมาณ 10 นาทีฉันมีหน่วยความจำเพียง 100M + จากนั้นระบบจะเริ่มสลับหน่วยความจำไปยังดิสก์ซึ่งทำให้คอมพิวเตอร์ของฉันค้างโดยสิ้นเชิงมันจะกู้คืนหลังจากการสลับเสร็จสิ้น

ฉันมีแล้ว vm.swappiness = 10

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

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

การลดหน่วยความจำแคช?


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

ฉันกำลังประสบกับสถานการณ์เดียวกัน - ใช้งานแล็ปท็อป Dell Precision M4500 พร้อมหน่วยความจำ 4GB หลังจากเปิดตัว Eclipse, MySQL Server, 4 tabs in Chrome, Skype and Tomcat with GWT application เหลือเพียงประมาณ 300 MB เมื่อฉันเรียกใช้ free -m. เมื่อฉันเริ่มสร้างแอปพลิเคชัน GWT ใหม่ (ใช้เวลา RAM สูงสุด 1 GB เมื่อมี RAM เพียงพอ) ระบบหยุดทำงาน (ไม่มีการเคลื่อนที่ของเมาส์ ฯลฯ ) และไม่สามารถกู้คืนได้ฉันต้องรีสตาร์ทแล็ปท็อปของฉัน อย่างไรก็ตามเมื่อฉันว่าง RAM เพียงพอแอปสร้างใหม่ผ่านดี @ David คุณช่วยกรุณาแนะนำฉันจะตรวจสอบปัญหาได้อย่างไร? ขอบคุณล่วงหน้า
Yura

@ David หรือดีกว่าที่จะถามคำถามแยกต่างหาก
Yura

@Yura: ฉันขอแนะนำให้คุณสร้างคำถามของคุณเอง
David Schwartz

หากใครบางคนมีความคิดโปรดดูปัญหาที่คล้ายกันนี้: superuser.com/questions/615453/...
Yura

คำตอบ:


0

หากคุณต้องการหน่วยความจำเพิ่มเติมฟรีคุณสามารถรับได้โดยการตั้งค่า vm.min_free_kbytes. ตัวอย่างเช่นหากคุณต้องการให้ระบบสูญเสียหน่วยความจำ 256MB ให้ใช้คำสั่งนี้:

sysctl -w vm.min_free_kbytes=262144

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

แต่ฉันคิดว่าคุณขาดจุดสำคัญ - หน่วยความจำว่างไม่ดีไปกว่าหน่วยความจำที่ไม่ได้ติดตั้งในคอมพิวเตอร์ ไม่ช่วยให้คอมพิวเตอร์ทำงานได้ดีขึ้น

คุณควรคืนค่าการตั้งค่าทั้งหมดเป็นค่าเริ่มต้นและแก้ไขปัญหาที่เกิดขึ้นจริง - คอมพิวเตอร์ของคุณหยุดทำงาน

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