एक नई शुरुआत प्रणाली में, free
1.5G इस्तेमाल की गई रैम (8G RAM पूरी तरह से, Ubuntu 12.04 के साथ lightdm और प्लाज्मा डेस्कटॉप, एक कोनसोल विंडो शुरू हुई) के बारे में रिपोर्ट दी गई है। मेरे द्वारा उपयोग किए जा रहे एप्लिकेशन होने के बाद भी यह 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
(इसलिए आप देख सकते हैं, यह बफ़र्स या कैश नहीं है)। आज यह अंत में सिस्टम पूरी तरह से दुर्घटनाग्रस्त हो गया: विंडोज़ मैनेजर चला गया, ऐप "हवा में लटका हुआ" (फ्रेमलेस) - और एक पॉपअप "बहुत सारी खुली फाइलों" के बारे में मुझे सूचित कर रहा है। Syslog रिपोर्ट:
kernel: [856738.020829] VFS: file-max limit 752838 reached
इसलिए मैंने उन एप्लिकेशन को बंद कर दिया जिन्हें मैं बंद करने में सक्षम था, और Ctrl-Alt-backspace का उपयोग करके एक्स को मार दिया। X ने इसके बाद फिर से आने की कोशिश की, लेकिन असफल कैफे से, लेकिन ऐसा करने में असमर्थ था क्योंकि यह अब इसके कॉन्फ़िगरेशन का पता नहीं लगा सकता था। इसलिए मैंने Ctrl-Alt-F2 का उपयोग करके एक कंसोल पर स्विच किया, मैंने (vmstat, free, smem proc/meminfo
,, lsof, ps aux
), और अंत में रिबूट की जाने वाली सभी जानकारी पर कब्जा कर लिया । एक्स फिर से असफल कैफे के साथ आया; इस बार मैंने इसे "मेरे बैक-अप कॉन्फ़िगरेशन से उबरने" के लिए कहा, फिर एक कंसोल पर स्विच किया और startx
ग्राफिकल वातावरण को लाने के लिए सफलतापूर्वक उपयोग किया ।
मुझे इस बात का कोई वास्तविक सुराग नहीं है कि इस समस्या का कारण क्या है - हालाँकि इसे या तो एक्स के साथ ही करना होगा, या एक्स पर चलने वाली कुछ उपयोगकर्ता प्रक्रियाओं के साथ - जैसे एक्स को मारने के बाद, free -m
आउटपुट इस तरह दिखता है:
total used free shared buffers cached
Mem: 7459 2677 4781 0 62 419
-/+ buffers/cache: 2195 5263
Swap: 9536 59 9477
(~ 3.5 जीबी मुक्त किया जा रहा है) - एक नई शुरुआत के बाद आउटपुट के साथ तुलना करने के लिए:
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
संपादित करें: मेरी निगरानी प्रणाली से बस दो रेखांकन जोड़े। देखने के लिए दिलचस्प है: हर बार जब मेमोरी की खपत में "कूद" होता है, तो सीपीयू भी चोटियों पर पहुंच जाता है। अभी यह सही पाया गया है - और यह मुझे X को इंगित करने वाले एक अन्य संकेतक की याद दिलाता है: अक्सर जब मेरी मशीन पर लौटते हैं और स्क्रीन को अनलॉक करते हैं, तो मुझे अपने सीपीयू पर भारी काम करते हुए पाया। के साथ जाँच top
, यह हमेशा निकला /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
।
तो इस लंबे स्पष्टीकरण के बाद, आखिरकार मेरे सवाल:
- संभावित कारण क्या हो सकते हैं?
- मैं शामिल प्रक्रियाओं / अनुप्रयोगों की बेहतर पहचान कैसे कर सकता हूं?
- इस व्यवहार से बचने के लिए क्या कदम उठाए जा सकते हैं - मशीन को सभी एक्स दिनों में रिबूट करने से कम?
मैं अपनी पुरानी मशीन पर लगभग ५ साल से on.०४ (हार्डी) चला रहा था, ऐसा कभी अनुभव नहीं किया (हमेशा १०० दिन से अधिक समय तक, जैसे कर्नेल अपडेट के लिए रिबूट करने से पहले)। यह अब 12.04 की एक नई स्थापना के साथ एक पूरी नई मशीन है । मामले में यह मायने रखता है, कुछ चश्मा:
Radeon (tm) HD ग्राफिक्स के साथ AMD A4-3400 APU, ओपन-सोर्स ati / radeon ड्राइवर (इसलिए कोई fglrx इंस्टॉल नहीं), 8GB RAM, WDC WD1002FAEX-0 hdd (1BB), Asus F1A75-V Evo मेनबोर्ड का उपयोग कर। Ubuntu 12.04 64-बिट KDE4 / प्लाज्मा के साथ। एप्लिकेशन आमतौर पर अधिक या कम स्थायी रूप से खुलते हैं, जिसमें इवोल्यूशन, फ़ायरफ़ॉक्स, कोनोलास (मिडनाइट कमांडर के साथ अंदर, लगभग 4 टैब), और लिबरऑफिस शामिल हैं - और कभी-कभी कैलिबर, जिम्प और मनीप्लेक्स (बैंकिंग सॉफ़्टवेयर जो मैं पहले से ही लगभग 20 वर्षों से उपयोग कर रहा हूं) एक संस्करण में जिसने हार्डी पर अच्छा प्रदर्शन किया)।
संपादित करें:
आज मुझे "बुरे लोगों" में से एक मिला: KDE4s प्लाज्मा-डेस्कटॉप। उपयोग की गई मेमोरी फिर से 5GB तक थी, जब मैंने ए killall plasma-desktop && plasma-desktop
। यह 1.3 जीबी रैम से मुक्त हो गया! 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 दिनों के दौरान कई उपकरणों का उपयोग करके इसकी निगरानी की: मेमोरी का उपयोग किया (कैश और बफ़र्स के बारे में बात नहीं करना) धीरे-धीरे लेकिन लगातार बढ़ता है। भले ही मैं कुछ भी चलाने के लिए अपने डेस्क पर नहीं हूं ...
खुली फ़ाइलों के साथ प्रक्रियाओं की निगरानी के रूप में, मैं वर्तमान में शीर्ष 5 प्राप्त करने के लिए निम्नलिखित 1-लाइनर (आई लव शेल और विशेष रूप से बैश) का उपयोग करता हूं:
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 लाइनों में यहाँ कमांड करें। वहाँ से अभी तक कुछ भी नहीं - सिवाय इसके कि स्काइप को पसंद नहीं है कि इंटरनेट कनेक्शन टूट गया है। प्रत्येक डिस्कनेक्ट इसकी खुली फ़ाइलों की थोड़ी वृद्धि का कारण बनता है, लेकिन नाटकीय कुछ भी नहीं। दूसरी ओर ऐसा लगता है कि प्लाज्मा भी इसके लिए जिम्मेदार है:
अंत में फ़ाइल हैंडल की बूंद देखें? वह प्लाज्मा रीस्टार्ट था।
free
। एक अलग डे पर स्विच करना मुझे वास्तव में माना जाता है; यदि KDE3.5 उपलब्ध था, तो मैं प्लाज्मा के साथ समाप्त नहीं हुआ था। यह केवल देखने के लिए अस्थायी हो सकता है कि क्या प्लाज्मा शामिल है।
sudo bash -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
अतिरिक्त राम को साफ करता है ? आप प्रोग्रामों की खुली फाइलों का उपयोग करके देख सकते हैंlsof