डिस्क उपयोग भ्रम: एसएसडी पर लिनक्स होम विभाजन पर 10 जी गायब


15

लिनक्स टकसाल मुझे बताता है, मेरे पास केवल 622 एमबी मुक्त डिस्क स्थान है लेकिन कुछ गीगाबाइट बचे होने चाहिए।

विभाजन को देखते हुए मुझे बताया गया है कि लगभग दस गीगाबाइट अप्रयुक्त हैं। मैंने इस समस्या को हल किया और कोई हल नहीं खोजा, लेकिन मुझे संकेत मिला कि मुझे डिस्क उपयोग की जांच करनी चाहिए df -h

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

उत्पादन मेरे लिए कोई मतलब नहीं है: के बीच का अंतर Sizeऔर Usedहै 11GB, लेकिन यह केवल शो 622Mउपलब्ध के रूप में।

SSD पुराना नहीं है, इसलिए मुझे ऐसी विसंगति की उम्मीद नहीं होगी।

मुझे क्या करना चाहिए?


3
जैसा कि @ कुसलानंद ने टिप्पणी की, आपको सिर्फ यह सवाल नहीं करना चाहिए कि आपको वे 10 जीबी क्यों नहीं मिलते हैं (जो मुझे आशा है कि मैंने अपने उत्तर में सही तरीके से संबोधित किया है), लेकिन यह भी कि आप अधिकांश स्थान का उपयोग घर में क्यों कर रहे हैं। यदि आप जानते हैं कि क्यों (उदाहरण: बहुत सारी मीडिया फ़ाइलों को संग्रहीत करें आदि) तो यह ठीक है, यदि आप नहीं करते हैं, तो आपको इसके बारे में चिंता करनी चाहिए, संभावित सफाई के साथ 10 जीबी से अधिक की अंतरिक्ष बचत देनी चाहिए। तो यह क्या होगा?
एबी

"विभाजन को देखते हुए मुझे बताया गया है कि लगभग दस गीगाबाइट अप्रयुक्त हैं।" - आपको यह कहाँ बताया गया था?
बजे ctrl-alt-delor

2
@ ctrl-alt-delor df's आउटपुट - साइज़: 189G, प्रयुक्त: 178G
billyjmc

@ ctrl-alt delor, मुझे gparted से आंकड़ा 10GB मिला है - और बाद में df के आउटपुट से 11G, क्योंकि billyjmc सही ढंग से अनुमान लगाया गया है।
तबोर्नोटोबी

जवाबों:


22

यदि फाइलसिस्टम ext4 है, तो आरक्षित ब्लॉक हैं, जो कि अधिकतर हैंडलिंग से बचने में मदद करते हैं और केवल रूट उपयोगकर्ता के लिए उपलब्ध हैं। इस सेटिंग के लिए, इसे ट्यून 2 एफ़ का उपयोग करके लाइव बदला जा सकता है (सभी सेटिंग्स को इस तरह से नहीं संभाला जा सकता है जब फाइलसिस्टम आरोहित होता है):

-म आरक्षित-ब्लॉक-प्रतिशत

फाइलसिस्टम का प्रतिशत निर्धारित करें जो केवल विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा आवंटित किया जा सकता है। विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा उपयोग के लिए फाइलसिस्टम ब्लॉक की कुछ संख्या का निर्धारण करना फाइलसिस्टम विखंडन से बचने के लिए किया जाता है, और सिस्टम डेमोंस, जैसे कि सिसोग्लड (8) को अनुमति देने के लिए, गैर-विशेषाधिकार प्राप्त प्रक्रियाओं को सही ढंग से कार्य करने के लिए जारी रखने के बाद फाइल सिस्टम पर लिखने से रोका जाता है। आम तौर पर, आरक्षित ब्लॉकों का डिफ़ॉल्ट प्रतिशत 5% है।

इसलिए यदि आप आरक्षण को 1% (~ 2GB) तक कम करना चाहते हैं तो इस प्रकार ~ 8GB का कोई और आरक्षित स्थान नहीं है, तो आप यह कर सकते हैं:

sudo tune2fs -m 1 /dev/nvme0n1p8

नोट: -mविकल्प वास्तव में एक दशमलव संख्या को पैरामीटर के रूप में स्वीकार करता है। आप -m 0.1केवल ~ 200MB के बारे में आरक्षित करने के लिए उपयोग कर सकते हैं (और उन पहले से उपलब्ध 10GB में से अधिकांश का उपयोग कर सकते हैं)। आप -rसीधे ब्लॉक द्वारा आरक्षित करने के बजाय विकल्प का उपयोग कर सकते हैं । संभवतः 0 आरक्षित ब्लॉक रखने की सलाह नहीं दी गई है।


3
उपयोगकर्ता 8 जीबी "वापस" नहीं ले रहा है। खर्च करने के लिए 8 जीबी अधिक मिल रहे हैं। यह बेहतर होगा कि सभी डिस्क स्थान का उपयोग करने के लिए नीचे ट्रैक करें और फिर संभवतया उस की सफाई करें, यदि उचित हो, या अन्यथा इसे कहीं और स्थानांतरित करें, या विभाजन बढ़ाएं।
Kusalananda

1
@ कुसलानंद मैं शब्दावली बदलूंगा। उपयोग के लिए, मुझे ओपी की प्रतिक्रिया की आवश्यकता होगी। यह प्रश्न कभी संकेत नहीं देता है कि अज्ञात उच्च उपयोग था, केवल 10GB गायब था।
एबी

1
बहुत अच्छा और मददगार जवाब, धन्यवाद। 5% लापता 10 गीगाबाइट से बहुत स्पष्ट रूप से मेल खाता है। मैं समग्र रूप से इतने डिस्क स्थान का उपयोग करने के बारे में चिंतित नहीं हूं, और मैं अभी भी अपना विभाजन बढ़ा सकता हूं। :)
तोबोर्नोटोबी

4
आपका उत्तर निश्चित रूप से सही है, लेकिन यह ध्यान देने योग्य हो सकता है कि इस मामले में रूट-आरक्षित स्थान का मूल्य बहुत बड़ा नहीं है। यह है /home, और रूट के लिए जगह को जमा करना उतना महत्वपूर्ण नहीं है जितना कि फ़ाइल सिस्टम के अन्य भागों के लिए है (उदाहरण के लिए सिस्टम लॉग को अभी भी लिखा जा सकता है)। इसके अलावा, जैसा कि यह एक एसएसडी है, विखंडन को रोकना प्राथमिकता नहीं हो सकती है क्योंकि यह धातु के डिस्क को कताई पर करता है।
मार्सेल

@marcelm कि मुझे समझ में आता है। लेकिन क्या यह अभी भी एक एसएसडी पर / होम विभाजन पर उपयोगी है या यह सिर्फ अंतरिक्ष की बर्बादी है? क्या आप मूल आरक्षित स्थान को 1% तक कम करने की सलाह देंगे?
टोबोर्नोटोबाय

8

हटाए गए फ़ाइलें "लापता स्थान" में भी योगदान कर सकते हैं

lsof | grep deleted | grep /home

मेरे लिए यह आउटपुट देता है

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

जो दिखाता है कि PID 11181 के रूप में चल रहे Chrome ने उस BrowserMetrics फ़ाइल को खोला और फिर उसे हटा दिया, और अभी भी फ़ाइलहैंडल खुला है। इसका मतलब है कि निर्देशिका निर्देशिका में फ़ाइल अदृश्य है, लेकिन अभी भी डिस्क स्थान ले रही है।

कार्यक्रम ऐसा क्यों करते हैं? जब रनिंग बाइनरी समाप्त हो जाती है, तो ओएस खुले फ़ाइल हैंडल को जारी करेगा और डिस्क पर फ़ाइल चली जाएगी, बिना बासी टेम्प-फ़ाइल को छोड़ने का जोखिम।

मैं नहीं देख सकता कि फ़ाइल का डिस्क उपयोग कितना बड़ा है।


2
अधिकांश अच्छी तरह से लिखे गए कार्यक्रमों को ऐसा नहीं करना चाहिए। यह एक बग है, और रिपोर्ट किया जाना चाहिए, यह सिर्फ इतना है कि इन अस्पष्ट बगों में से अधिकांश वास्तव में तब तक दिखाई नहीं देते हैं जब तक आप एक अनुकूलन चरण में नहीं होते हैं, और यदि यह बंद है तो यह वास्तव में परीक्षण के दौरान बिल्कुल भी पता नहीं लगाया जा सकता है। ध्यान दें कि एक विशिष्ट कारण हो सकता है कि वे ऐसा क्यों कर रहे हैं, एक तर्क हो सकता है मुझे इस बारे में पता नहीं है कि इस हैंडल को लंबे समय तक खुला रखने के लिए।
शराबी कोड बंदर

4
@DrunkenCodeMonkey दोस्त - इसके क्रोम ... आप पूरी तरह से सही हैं।
क्रिग्गी

4
@DrunkenCodeMonkey, कई बेहतरीन लिखित कार्यक्रम ऐसा करते हैं। * निक्स पर अस्थायी फ़ाइलें बनाने के लिए खुला-डिलीट-क्लोज़ पैटर्न लगभग सार्वभौमिक है, क्योंकि यह गारंटी देता है कि प्रोग्राम से बाहर निकलते समय फ़ाइल को हटा दिया जाएगा, भले ही यह कैसे बाहर निकल जाए: सामान्य समाप्ति, दुर्घटनाग्रस्त, स्मृति से बाहर चलाकर मारा गया, मारा गया बिजली की विफलता से, आदि
मार्क

3
@DrunkenCodeMonkey तो, क्या होगा अगर प्रोग्राम इसके साथ कभी नहीं किया जाता है?
लेफ्टरनैबाउट

3
@DrunkenCodeMonkey: पैटर्न ओपन- डिलीट - वर्क -क्लो है। यदि प्रोग्राम अभी भी अस्थायी फ़ाइल की सामग्री के साथ कुछ कर रहा है (जैसे ऑन-डिस्क कैश के रूप में इसका उपयोग कर रहा है, या इसमें टेलीमेट्री डेटा लॉग कर रहा है), तो निश्चित रूप से इसे खुला रखना चाहिए। (बेशक, यह भी संभव है कि यह वास्तव में एक बासी न की गई फ़ाइल हैंडल है जिसे प्रोग्राम को बंद कर दिया जाना चाहिए लेकिन नहीं। लेकिन यह देखते हुए कि ऐसी केवल एक फ़ाइल है, और यह कि रिसोर्स लीक के कोई अन्य स्पष्ट संकेत नहीं हैं, मैं इस धारणा के साथ शुरू करूंगा कि फ़ाइल को शायद उद्देश्य के लिए खुला रखा जा रहा है।)
इल्मरी करोनें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.