บนระบบที่เริ่มต้นใหม่free
รายงานเกี่ยวกับ RAM ที่ใช้ 1.5G (RAM 8G ทั้งหมด, Ubuntu 12.04 พร้อม lightdm และพลาสมาเดสก์ท็อป, หนึ่งหน้าต่าง konsole เริ่มขึ้น) เมื่อใช้แอพที่ฉันใช้อยู่จะยังคงใช้งานได้ไม่เกิน 2G อย่างไรก็ตามการที่ระบบใช้งานได้สองสามวันแรมฟรีของฉันก็หายไปเรื่อย ๆ - โดยไม่แสดงในรายการแอพที่ใช้: ในขณะที่smem --pie=name
รายงานใช้น้อยกว่า 20% (และมี 80% ที่ใช้งานได้) ต่างกัน free -m
เช่นรายงานเกี่ยวกับวันที่ 7:
total used free shared buffers cached
Mem: 7459 7013 446 0 178 997
-/+ buffers/cache: 5836 1623
Swap: 9536 296 9240
(เพื่อให้คุณสามารถมองเห็นมันไม่ใช่บัฟเฟอร์หรือแคช) วันนี้ในที่สุดก็จบลงด้วยระบบล้มเหลวอย่างสมบูรณ์: ตัวจัดการ windows หายไปแอพ "ห้อยอยู่ในอากาศ" (ไร้กรอบ) - และป๊อปอัพแจ้งเตือนฉันเกี่ยวกับ "ไฟล์ที่เปิดมากเกินไป" รายงาน Syslog:
kernel: [856738.020829] VFS: file-max limit 752838 reached
ดังนั้นฉันจึงปิดแอปพลิเคชันเหล่านั้นฉันสามารถปิดและฆ่า X โดยใช้ Ctrl-Alt-backspace X พยายามขึ้นมาอีกครั้งหลังจากนั้นด้วย failafeX แต่ไม่สามารถทำได้เนื่องจากไม่สามารถตรวจจับการกำหนดค่าได้อีกต่อไป ดังนั้นฉันจึงเปลี่ยนไปใช้คอนโซลโดยใช้ Ctrl-Alt-F2 บันทึกข้อมูลทั้งหมดที่ฉันนึกได้ (vmstat, ฟรี, smem proc/meminfo
, lsof, ps aux
) และรีบูตในที่สุด X กลับมาพร้อมกับ failafeX อีกครั้ง ครั้งนี้ฉันบอกให้ "กู้คืนจากการตั้งค่าการสำรองข้อมูลของฉัน" จากนั้นเปลี่ยนไปใช้คอนโซลและใช้startx
เพื่อแสดงสภาพแวดล้อมแบบกราฟิกขึ้นมา
ฉันไม่มีเงื่อนงำที่แท้จริงว่าอะไรเป็นสาเหตุของปัญหานี้ - แม้ว่ามันจะต้องเกี่ยวข้องกับ X เองหรือด้วยกระบวนการผู้ใช้บางอย่างที่ทำงานบน X - หลังจากฆ่า X แต่free -m
ผลลัพธ์ดูเหมือนว่า:
total used free shared buffers cached
Mem: 7459 2677 4781 0 62 419
-/+ buffers/cache: 2195 5263
Swap: 9536 59 9477
(~ 3.5GB เป็นอิสระ) - เพื่อเปรียบเทียบกับเอาต์พุตหลังจากเริ่มต้นใหม่:
total used free shared buffers cached
Mem: 7459 1483 5975 0 63 730
-/+ buffers/cache: 689 6769
Swap: 9536 0 9536
มีเอาต์พุตที่เป็นประโยชน์เพิ่มเติมสองmemstat -u
รายการ ไม่นานก่อนเกิดความผิดพลาด:
User Count Swap USS PSS RSS
mail 1 0 200 207 616
whoopsie 1 764 740 817 2300
colord 1 3200 836 894 2156
root 62 70404 352996 382260 569920
izzy 80 177508 1465416 1519266 1851840
หลังจากฆ่า X แล้ว:
User Count Swap USS PSS RSS
mail 1 0 184 188 356
izzy 1 1400 708 739 1080
whoopsie 1 848 668 826 1772
colord 1 3204 804 888 1728
root 62 54876 131708 149950 267860
และหลังจากรีสตาร์ทให้กลับมาใน X:
User Count Swap USS PSS RSS
mail 1 0 212 217 628
whoopsie 1 0 1536 1880 5096
colord 1 0 3740 4217 7936
root 54 0 148668 180911 345132
izzy 47 0 370928 437562 915056
แก้ไข: เพิ่งเพิ่มสองกราฟจากระบบตรวจสอบของฉัน น่าสนใจที่จะดู: ทุกครั้งที่มี "การกระโดด" ในการใช้หน่วยความจำ CPU จะมีค่าสูงสุด เพิ่งพบสิ่งนี้ในตอนนี้ - และมันทำให้ฉันนึกถึงตัวบ่งชี้อื่นที่ชี้ไปที่ตัว X: บ่อยครั้งเมื่อกลับไปที่เครื่องของฉันและปลดล็อกหน้าจอฉันพบสิ่งที่ทำงานหนักบน CPU ของฉัน ตรวจสอบกับมันก็จะกลายเป็นtop
/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
ดังนั้นหลังจากคำอธิบายที่ยาวนานนี้ในที่สุดคำถามของฉัน:
- อะไรคือสาเหตุที่เป็นไปได้?
- ฉันจะระบุกระบวนการ / แอพพลิเคชั่นที่เกี่ยวข้องได้ดีขึ้นอย่างไร
- ขั้นตอนใดที่สามารถดำเนินการเพื่อหลีกเลี่ยงพฤติกรรมนี้ - ไม่สามารถทำการรีบูตเครื่องได้ทุกวัน
ฉันใช้งาน 8.04 (Hardy) เป็นเวลาประมาณ 5 ปีในเครื่องเก่าของฉันไม่เคยมีประสบการณ์เช่นนี้ (มักจะใช้เวลามากกว่า 100 วันก่อนที่จะรีบูตเครื่องเช่นอัพเดตเคอร์เนล) ตอนนี้เป็นเครื่องใหม่พร้อมติดตั้งใหม่ของ 12.04 ในกรณีที่มีความสำคัญรายละเอียดบางอย่าง:
AMD A4-3400 APU พร้อมกราฟิก Radeon (tm) HD โดยใช้ไดร์เวอร์ ati / radeon แบบโอเพ่นซอร์ส (ดังนั้นจึงไม่มีการติดตั้ง fglrx), RAM 8GB, WDC WD1002FAEX-0 hdd (1TB), Asus F1A75-V Evo Ubuntu 12.04 64- บิตพร้อม KDE4 / พลาสมา โดยปกติแล้วแอปจะเปิดมากหรือน้อยอย่างถาวร ได้แก่ Evolution, Firefox, konsole (โดยมี Midnight Commander ทำงานอยู่ภายใน, ประมาณ 4 แท็บ), และ LibreOffice - บวก Caliber, Gimp และ Moneyplex (ซอฟต์แวร์ธนาคารที่ฉันใช้มาเกือบ 20 ปีแล้ว) ในเวอร์ชันที่ทำได้ดีกับ Hardy)
แก้ไข:
วันนี้ฉันพบหนึ่งใน "คนชั่ว": KDE4s plasma-desktop ใช้หน่วยความจำได้อีกครั้งถึง 5GB killall plasma-desktop && plasma-desktop
เมื่อฉันได้ สิ่งนี้ปลดปล่อย RAM 1.3GB! ps
พูดว่า:
RSS SIZE VSZ
plasma usage before restart 120988 526472 1300816
plasma usage after restart 92352 495972 1263632
ดังนั้น 1.3GB เหล่านั้นอยู่ที่ไหน ความแตกต่างระหว่างค่าเหล่านั้นหากรวมกันจำนวน 96MB - ไม่ใช่ 1.3GB
และนี่สามารถเป็นส่วนเดียวเท่านั้นเนื่องจากยังใช้งาน 3.7GB อยู่ (ควรน้อยกว่า 2GB) ฉันตรวจสอบสิ่งนี้ในช่วง 6 วันที่ผ่านมาโดยใช้เครื่องมือหลายอย่าง: หน่วยความจำที่ใช้ (ไม่ได้พูดถึงแคชและบัฟเฟอร์) เพิ่มขึ้นอย่างช้าๆ แต่มั่นคง แม้ว่าฉันจะไม่ได้อยู่ที่โต๊ะเพื่อทำงานอะไรก็ตาม ...
ในการตรวจสอบกระบวนการด้วยไฟล์ที่เปิดฉันใช้ 1-liner ต่อไปนี้ (ฉันชอบเชลล์และโดยเฉพาะอย่างยิ่งทุบตี) เพื่อรับ top-5:
echo "$(for pid in $(ls -a /proc|egrep '^([0-9])*$'|sort -n 2>/dev/null); do \
if [ -e /proc/$pid/fd ]; then FHC=$(ls -l /proc/$pid/fd|wc -l); \
if [ $FHC -gt 0 ]; then PNAME="$(cat /proc/$pid/comm)"; \
echo "$FHC files opened by $pid ($PNAME)"; fi; fi; done)"|sort -r -n|head -n5
สั่งที่นี่เป็น 4 บรรทัดเพื่อให้อ่านง่ายขึ้น ยังไม่มีอะไรมากนอกจากนั้น Skype ไม่ชอบการเชื่อมต่ออินเทอร์เน็ตที่ขาด การตัดการเชื่อมต่อแต่ละครั้งจะทำให้ไฟล์ที่เปิดอยู่เพิ่มขึ้นเล็กน้อย ในทางกลับกันดูเหมือนว่าพลาสม่าก็เป็นผู้รับผิดชอบเช่นกัน:
เห็นการลดลงของการจัดการไฟล์ในตอนท้าย? นั่นคือการเริ่มพลาสมาใหม่
free
ดูการส่งออกของ ในความเป็นจริงการเปลี่ยนไปใช้ DE อื่นฉันได้พิจารณาแล้ว หาก KDE3.5 พร้อมใช้งานฉันไม่ได้ลงเอยด้วยพลาสมา นี่อาจเป็นเพียงชั่วคราวเพื่อดูว่ามีส่วนเกี่ยวข้องกับพลาสมาหรือไม่
sudo bash -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
ล้างแกะพิเศษ? คุณสามารถดูไฟล์ที่เปิดอยู่ของโปรแกรมโดยใช้lsof