डिस्क स्थान से बाहर, स्रोत क्या है?


17
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             220G  220G     0 100% /
none                  1.9G  168K  1.9G   1% /dev
none                  1.9G     0  1.9G   0% /dev/shm
none                  1.9G   52K  1.9G   1% /var/run
none                  1.9G     0  1.9G   0% /var/lock
none                  1.9G     0  1.9G   0% /lib/init/rw
none                  220G  220G     0 100% /var/lib/ureadahead/debugfs

जब उम्र कम हो जाती है तो उपयोग के बाद उत्तर की खोज करते हुए घबराहट होती है

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             220G  9.3G  200G   5% /
none                  1.9G  168K  1.9G   1% /dev
none                  1.9G     0  1.9G   0% /dev/shm
none                  1.9G   52K  1.9G   1% /var/run
none                  1.9G     0  1.9G   0% /var/lock
none                  1.9G     0  1.9G   0% /lib/init/rw
none                  220G  9.3G  200G   5% /var/lib/ureadahead/debugfs

मैंने अब तक कुछ भी नहीं हटाया है और अब मैं इसे वापस लिख रहा हूं

/dev/sda1             220G   12G  197G   6% /

क्या हुआ?? मैं कारण की जांच कैसे कर सकता हूं और चीजों को सेट कर सकता हूं इसलिए ऐसा दोबारा नहीं होता है मैं इसे फिर से होने से रोकता हूं

मालिश के उपयोग के समय में मैंने पाया कि / var फ़ोल्डर का आकार 1.8 gigs पर स्थिर था, लेकिन मैं सभी फ़ोल्डरों की जांच करने में सक्षम नहीं था

तक संपादित किया गया

/dev/sda1             220G   18G  192G   9% /

* अद्यतन 2 * यह फिर से ऊपर जा रहा है

ubuntu /: df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             220G   43G  167G  21% /
none                  1.9G  168K  1.9G   1% /dev
none                  1.9G     0  1.9G   0% /dev/shm
none                  1.9G   52K  1.9G   1% /var/run
none                  1.9G     0  1.9G   0% /var/lock
none                  1.9G     0  1.9G   0% /lib/init/rw
none                  220G   43G  167G  21% /var/lib/ureadahead/debugfs

और मुझे जो कमांड दिया गया था, उसकी जाँच करना

ubuntu /: du -h --max-depth=1 /
31M     /boot
4.0K    /selinux
8.0K    /srv
7.4M    /bin
du: cannot access `/proc/9993/task/9993/fd/4': No such file or directory
du: cannot access `/proc/9993/task/9993/fdinfo/4': No such file or directory
du: cannot access `/proc/9993/fd/4': No such file or directory
du: cannot access `/proc/9993/fdinfo/4': No such file or directory
0       /proc
12K     /tmp
2.4G    /var
0       /sys
100K    /root
4.0K    /media
575M    /usr
4.0K    /opt
16K     /lost+found
4.5M    /home
270M    /lib
168K    /dev
4.0K    /mnt
6.7M    /sbin
6.1M    /etc
4.0K    /cdrom
3.3G    /

के लिए 3.3G नोट करें /

जवाबों:


16

मुझे लगता है कि आपके पास एक ऐसी फाइल के लिए कुछ लिखना है जिसे ड्राइव से हटा दिया गया है लेकिन अभी तक एप्लिकेशन / सर्वर द्वारा बंद नहीं किया गया है, इसलिए स्पेस डिस्क पर आवंटित रहता है लेकिन duफाइल सिस्टम से फाइल को हटाने के बाद नहीं देखा जा सकता है । lsofकार्यक्रम सूचियों प्रक्रियाओं है कि फ़ाइलों को खोलने के। यदि आपके पास अधिक फाइल सिस्टम माउंट किए गए थे और संख्या में बहुत अधिक उतार-चढ़ाव नहीं हुआ था, तो मैंने सुझाव दिया होगा कि आपके पास एक निर्देशिका के ऊपर एक फाइलसिस्टम घुड़सवार था जो खाली नहीं था (हालांकि आप कोशिश कर सकते हैं umount /var/lib/ureadahead/debugfsऔर सुनिश्चित कर सकते हैं कि निर्देशिका खाली है वहाँ नहीं है कि उस माउंटपॉइंट के नीचे छिपी निर्देशिका को लिखे गए कबाड़ का एक गुच्छा)।

यदि यह मामला है, तो आपको आसानी से इनका पता लगाना चाहिए sudo lsof | grep deleted। अंतिम कॉलम में lsofशामिल (deleted)है यदि कोई फ़ाइल हटा दी गई है जबकि एक प्रक्रिया अभी भी खुली है। पहला कॉलम कमांड का नाम है, दूसरा कॉलम PID है। आप psउदाहरण के लिए ps auxww | grep PID, या ps auxwwf | less -S"फ़ॉरेस्ट" मोड में प्रक्रिया सूची को देखने के लिए कमांड पर अधिक विस्तृत जानकारी प्राप्त कर सकते हैं ताकि आप देख सकें कि पीआईडी ​​किस प्रक्रिया से आई है। एक बार जब आप इस प्रक्रिया को ट्रैक कर लेते हैं (तों) जो खुली विशाल फ़ाइलों को पकड़ रही हैं, तो आप इसे ड्राइव स्पेस को खाली करने के लिए रोक सकते हैं, फिर यह पता लगा सकते हैं कि फ़ाइल को ठीक से बंद करने के लिए इसे कैसे ठीक करें। इसका सामान्य कारण एक लॉग-इन स्क्रिप्ट है जो लॉग फ़ाइलों का नाम बदल / हटाता है लेकिन उस एप्लिकेशन को सूचित नहीं करता है जो उसने ऐसा किया है (या तो एक उपयुक्त संकेत के माध्यम से)kill या एप्लिकेशन को पुनरारंभ करके), इसलिए एप्लिकेशन पुरानी लॉग फ़ाइल को खुला रखना जारी रखता है।


धन्यवाद। मैंने भाग लिया lsof | grep deletedऔर एक लॉग फ़ाइल देखी 33GB! प्रक्रिया को मार दिया और डिस्क स्थान वापस आ गया।
इकावास

धन्यवाद! समय के दौरान मैंने कुछ मोंगोडब डेटाबेस हटा दिए लेकिन मोंगोडब ने इसे जारी नहीं किया। मैंने अभी-अभी मोंगोडब को फिर से शुरू किया है और अब मेरे पास 35GB अधिक है।
i

7

Daud

du -h --max-depth=1 /

और इसे एक स्पष्ट तस्वीर देनी चाहिए। यदि इसका आना और जाना ऐसा लगता है कि अस्थायी फ़ाइलों को बनाया जा रहा है और तब तक एक बार डिलीट नहीं किया जाता है, जब तक कि जो भी प्रक्रिया क्रैश हो रही है। यह सर्वर रनिंग ओएस क्या है और क्या यह विशेष रूप से कुछ भी चला रहा है?


यह ubuntu LAMP चल रहा है और बहुत ज्यादा नहीं
Moak

5

ऐसा लग रहा है कि समस्या है /var/lib/ureadahead/debugfs। ऐसा प्रतीत होता है कि यह एक ज्ञात समस्या है, यहाँ और अधिक जानकारी के साथ ubuntuforums के लिए एक लिंक है http://ubuntuguide.net/howto-fix-ureadahead-problem-after-upgrading-to-ubuntu-10-04 । Tl; ड्र को अपडेट और अपग्रेड किया जा रहा है sudo mv /etc/init.d/ureadahead.conf /etc/init.d/ureadahead.conf.disabled, फिर रिबूट किया गया है। बेशक, मैं मान रहा हूं कि आप 10.04 चल रहे हैं।


हाँ, मैं
लुसीद

इसे पढ़ने के बाद यह सिर्फ एक अच्छा विचार नहीं लगता है कि इस सुविधा को हटा दें। क्या यह आकार बढ़ता है इसे सीमित करने का एक तरीका है?
मोआक

थोड़ी और खोज करने के बाद, मैंने इसे कहीं कहीं पाया ।.com/ ? p= 1370, जो यहां के एक ज्ञात और निश्चित बग का संदर्भ देता है, यहां बग्सलांचपडॉटनेट / बुंटू /+source/mountall/ +bug/ 736512 है
स्ललीबरी

3

मेरा अनुमान है लॉग फाइलें; मेरे पास एक देव सर्वर पर मेरे अपाचे लॉग में कई PHP 5.3 "पदावनत" चेतावनियाँ थीं जो मैं वास्तव में इस बात पर ध्यान नहीं दे रहा था कि यह मेरे var विभाजन पर सभी 8GB स्थान को चबा गया था (समस्या के लिए साइडबार के रूप में: आपको हमेशा चाहिए एक अलग विभाजन पर रखा / var कि अंतरिक्ष से बाहर के रूप में अपने रूट विभाजन प्रणाली अस्थिरता मुद्दों का कारण बन सकता है)।


3

यदि अंतरिक्ष बहुत जल्दी (उम्र में नहीं) भस्म हो गया था, तो शायद यह सिर्फ फ़ाइल आवंटन है।

इसका कारण कुछ एप्लिकेशन के लिए बड़ी स्वैप या अस्थायी फाइलें हो सकती हैं, जो इसकी प्रक्रिया के बाद खाली हो जाती हैं।

एक है du --max-length=1जब अंतरिक्ष एक बहुत सेवन किया जाता है।

अगर आपको लगता है कि आपका रूट फोल्डर बहुत अधिक (3.3 GB) ले रहा है तो ll -a / try करें और परिणाम पोस्ट करें।


1
वास्तव में मूल उन फ़ोल्डरों का एक योग है
Moak

1

ऐसा लगता है कि यह /var/lib/ureadahead/debugfsएक रेड-हेरिंग हो सकता है। यहाँ पर क्यों...

जबकि /var/lib/ureadahead/debugfsइसमें मौजूद है /etc/mtab, यह इसमें नहीं है /proc/mounts:

$ mount | grep debug
none on /sys/kernel/debug type debugfs (rw)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)

$ cat /proc/mounts | grep debug
none /sys/kernel/debug debugfs rw,relatime 0 0

dfआदेश के लिए बिल्कुल वही बात रिपोर्टिंग किया जा रहा है /var/lib/ureadahead/debugfsऔर/

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10321208   1681128   8115792  18% /
none                    830388       120    830268   1% /dev
none                    880752         0    880752   0% /dev/shm
none                    880752        60    880692   1% /var/run
none                    880752         0    880752   0% /var/lock
none                    880752         0    880752   0% /lib/init/rw
none                  10321208   1681128   8115792  18% /var/lib/ureadahead/debugfs
/dev/sdb             153899044    192068 145889352   1% /mnt

इसमें 1GB फ़ाइल बनाना /tmp:

$ dd if=/dev/zero of=/tmp/carypjunk.out bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 52.7234 s, 20.4 MB/s

दोनों स्थानों में सूचित आकार दिखाता है:

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             10321208   2730216   7066704  28% /
none                    830388       120    830268   1% /dev
none                    880752         0    880752   0% /dev/shm
none                    880752        60    880692   1% /var/run
none                    880752         0    880752   0% /var/lock
none                    880752         0    880752   0% /lib/init/rw
none                  10321208   2730216   7066704  28% /var/lib/ureadahead/debugfs
/dev/sdb             153899044    192068 145889352   1% /mnt

तो, ऐसा लगता है जैसे /var/lib/ureadahead/debugfsडिवाइस एक रेड-हेरिंग है क्योंकि यह केवल आँकड़ों को प्रतिबिंबित कर रहा है /। यदि आप अंतरिक्ष से बाहर भाग रहे हैं, तो यह आपके रूट फाइलसिस्टम को भरने वाली किसी चीज के कारण है। मैं पहले आपकी / var / लॉग की जाँच करूँगा।


आह, बिलकुल सही। मैं सहसंबंध से चूक गया! बहुत बुरा मैंने उदाहरणों को समाप्त कर दिया, इसलिए मैं यह जांच नहीं कर सकता कि बहुत तेज़ी से क्या बढ़ रहा था।
एरॉन जिब्राल्टर

0

हर मिनट में php CLI कमांड निष्पादित करने वाले क्रोन कार्य द्वारा समस्या शुरू की जा रही थी। PHP कोड पकड़ा त्रुटियों के कुछ प्रकार के पागलपन पाश में फंस गया है और प्रोसेसर की गति से बड़े पैमाने पर डिबग डेटा बढ़ रहा है।

चूंकि php कोड निष्पादित होने में एक मिनट से अधिक समय लगता है, इसलिए यह काम नहीं करता है, यह बार-बार निष्पादित होता रहता है और फिर से (अस्थायी?) डेटा की वृद्धि की गति बढ़ाता है।

एक ही कार्य बिना किसी समस्या के करीब एक महीने से चल रहा है, इसलिए यह एक कारण के रूप में मेरे दिमाग में नहीं था।

अजीब बात यह है कि php स्क्रिप्ट मैन्युअल रूप से अधिकतम निष्पादन समय निर्धारित करता है

मैंने सुराग के लिए php.ini की जाँच की

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpect$
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60

यह कहता है कि सीएलआई के लिए मूल्यों को असीमित रूप से हार्डकोड किया गया है! o_O

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.