আমার ডিস্কের জায়গাটি কী খাচ্ছে?


13

আমি লিনাক্স মিন্ট 14 নাদিয়া চালাচ্ছি। লিনাক্স পার্টিশনের 10G রয়েছে। সিস্টেমটি শুরু হয়ে গেলে, du80% ব্যবহারের প্রতিবেদন করে। তারপরে ব্যবহার ধীরে ধীরে বৃদ্ধি পায় যতক্ষণ না এটি 100% এ পৌঁছায় এবং সিস্টেমটি অকেজো হয়ে যায়। (এটি দিন বা সপ্তাহের ক্রম অনুসারে ঘটতে পারে)। রিবুট করার পরে ব্যবহারটি 80% এ পুনরায় সেট হয়।

সব থেকে আশ্চর্যের বিষয় এটি duকোনও পরিবর্তন দেখায় না।

এই কমান্ডগুলির আউটপুট এখানে রয়েছে (উইন্ডোজ এবং বহিরাগত ড্রাইভ পার্টিশনগুলি এলিডযুক্ত):

# --- Just after reboot ---

$ df -h     
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  7.3G  2.0G  80% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            428M  292K  428M   1% /dev
tmpfs            88M  1.3M   87M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            437M  288K  437M   1% /run/shm
none            100M   12K  100M   1% /run/user

$ sudo du -x   -d1 -h /
186M    /opt
512M    /var
11M /sbin
556K    /root
1.3G    /home
613M    /lib
8.0K    /media
4.6G    /usr
16K /lost+found
111M    /boot
39M /etc
4.0K    /mnt
60K /tmp
9.1M    /bin
4.0K    /srv
7.3G    /            # <-- note this


# --- After some time ---

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  9.1G  199M  98% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            428M  292K  428M   1% /dev
tmpfs            88M  1.3M   87M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            437M   27M  411M   7% /run/shm
none            100M   28K  100M   1% /run/user

$  sudo du -x   -d1 -h /
186M    /opt
511M    /var
11M /sbin
556K    /root
1.4G    /home
613M    /lib
8.0K    /media
4.6G    /usr
16K /lost+found
111M    /boot
39M /etc
4.0K    /mnt
520K    /tmp
9.1M    /bin
4.0K    /srv
7.3G    /              # <-- note this

(দ্রষ্টব্য: আমি হাইবারনেশন ব্যবহার করি hi হাইবারনেশনের পরে, ব্যবহারটি একই থাকে এবং পুনরায় বুট করার পরে এটি আবার 80% এ পুনরায় সেট হয়))

কীভাবে স্থান খায় আমি ট্র্যাক করব?

আমি এই প্রশ্নটি পড়েছি । আমি এখনও অন্ধকারে আছি। কোন প্রোগ্রামটি এই আচরণের জন্য দায়ী তা আমি কীভাবে আবিষ্কার করব?

সম্পাদনার পরে : এটি খুঁজে পেয়েছি। স্থানটি কার্নেল লগ দ্বারা দাবী করা হয়, যা এটি দ্বারা দেখা হয় dmesg। এটি পূরণ হয় কারণ আমার মেশিনটি 5 সেকেন্ডের হারে ত্রুটি উত্পন্ন করে। (এটি এই বাগের সাথে সম্পর্কিত )) ভবিষ্যতের পাঠকদের একই ধরণের সমস্যা - ধীরে ধীরে পূরণ করা ডিস্কের স্থান অদেখা du- dmesgকারণ অনুসন্ধানে চেষ্টা করতে ভুলবেন না ।


1
আমি বড় ফাইল | ডিরেক্টরি সন্ধানের জন্য ncduসরল চেয়ে বেশি পছন্দ করি du। আপনাকে কিছু করার আগে এটি পুরো ডিরেক্টরি ট্রিটিকে স্ক্যান করে; আপনি এটিকে একটি নির্দিষ্ট পথটি (যেমন ncdu /varবা কেবলমাত্র ncdu ~) পাস করতে চাইতে পারেন
ব্ল্যাকলাইট

ইতিমধ্যে এই সাইটে বেশ কয়েকটি শালীন উত্তর
স্পারহাক

উত্তর:


15

পুনরায় মৃত্যুদণ্ড কার্যকর করা

sudo du -x   -d1 -h /

(ডিরেক্টরি গাছের নিচে) আপনাকে কোথায় স্থানটি ব্যয় করা হবে তা বলা উচিত। এটি সম্ভবত আরও তদন্ত ছাড়াই ব্যাখ্যা করেছে যে কোন অ্যাপ্লিকেশনটি এর ফলে ঘটছে।

অদৃশ্য ফাইল

যদি duএই ফাইলগুলি না দেখায় তবে সম্ভাব্যতার একটি হ'ল ফাইলগুলি মুছে ফেলা হয়। একটি ফাইল (বা এর পরিবর্তে: এর নাম অর্থাত্ একটি ডিরেক্টরিতে এটিতে প্রবেশ) ফাইলটি এখনও ব্যবহারের সময় মুছে ফেলা যায়। এই ফাইলটিতে একটি বৈধ ফাইল বর্ণনাকারী নির্দেশ করে যতক্ষণ না এটি ভলিউমের স্থান কভার করে (যদি এটি খালি ফাইল না হয় ...)।

cat >file &
ls -l file
rm file
ls -l file
# PID of cat is 19834
ls -l /proc/19834/fd
lrwx------ 1 hl hauke 64 11. Feb 19:16 0 -> /dev/pts/0
l-wx------ 1 hl hauke 64 11. Feb 19:16 1 -> /crypto/home/hl/tmp/file (deleted)
lrwx------ 1 hl hauke 64 11. Feb 19:15 2 -> /dev/pts/0

আপনি এই ফাইলগুলি এর সাথে খুঁজে পেতে পারেন find:

find /proc/ -mindepth 3 -maxdepth 3 \
-regex '/proc/[1-9][0-9]*/fd/[1-9][0-9]*' -type l -lname '*(deleted)' \
-printf '%p\n     %l\n' 2>/dev/null

এটি একটি একক বিশাল ফাইল বা আরও ছোট ছোট ফাইল হতে পারে যা আপনার সমস্যার কারণ হতে পারে। আমার সিস্টেমে এখন প্রায় 30 টির মতো ফাইল রয়েছে (কেবল পাঁচটি প্রক্রিয়ার সাথে সম্পর্কিত)। ls -lএই ফাইলগুলির আকার দেখায় তবে এই মানটি পাওয়া সম্ভব হবে বলে মনে হয় না find

প্রক্রিয়াটি হত্যার পরে স্থানটি ফাইল সিস্টেমে ( dfআবার) উপলব্ধ হয়।


এটি আমার প্রশ্নের সমাধান করে না। duগ্রাসিত স্থানের কোনও পরিবর্তনের খবর দেয়: শুরুতে 7.3 জি এবং সময় কেটে যাওয়ার পরে 7.3 জি। dfসময় হিসাবে 7.3G নিখরচায় এবং 10G অবধি প্রতিবেদন করে। আমি সমস্যাটি খুঁজে পাচ্ছি না du
Arry

@ অ্যারি, আমি খুব দ্রুত পড়ি
হউক লেগেইং

8

এর মতো কিছু ব্যবহার করুন

lsof -s | grep deleted | sort -k 8

কোন প্রক্রিয়াগুলি মুছে ফেলা ফাইলগুলি উন্মুক্ত রাখছে তা দেখতে। গুরুত্বপূর্ণ ক্ষেত্রগুলি হ'ল দ্বিতীয় (পিআইডি) এবং অষ্টম (শেষ থেকে তৃতীয়; ফাইলের আকার)।

(সদৃশ লাইনগুলিতে মনোযোগ দিন, এগুলি দু'বার গণনা করবেন না। পিআইডি এবং ফাইলের পাথ (শেষ ক্ষেত্র) বা ইনোড নম্বর (দ্বিতীয় থেকে শেষ ক্ষেত্র) পরীক্ষা করুন))

এর পরে, আপনি যদি এমন কোনও প্রক্রিয়া খুঁজে পান যা সম্ভবত অপরাধী হয় তবে আমরা কীভাবে এটি ঠিক করব তা আমরা দেখতে পারি।


ভাল পরামর্শ, কিন্তু আমার মেশিনে এই কমান্ডটি 2k আকারের 2 টি ওপেন মুছে ফেলা ফাইলের প্রতিবেদন করে, যা কিছু পথভ্রষ্ট প্রক্রিয়া দ্বারা সময়ের সাথে সাথে গ্রহন করা 2.7G থেকে দূরে সরে যায়।
Arry

এটি একটি দুর্দান্ত পরামর্শ ছিল এবং এটি সত্যই আমাকে পিতামাতার প্রশ্নের অনুরূপ সমস্যা সমাধানে সহায়তা করেছে। Df এবং du কমান্ডের মধ্যে আমার একটি বিশাল তাত্পর্য ছিল। আমার নির্দিষ্ট ক্ষেত্রে, আমার কাছে ঘোরানো লগ এবং একটি পরিষেবা রয়েছে যা লগগুলি ফরোয়ার্ড করে (এই উদাহরণে লগস্ট্যাশ)। মোছার পরেও লগস্ট্যাশ পরিষেবাটি ঘোরানো লগগুলি উন্মুক্ত রাখছিল keeping এটি du এবং df এর মধ্যে বৈষম্য সৃষ্টি করছিল। লগস্ট্যাশ পরিষেবাটি পুনরায় চালু হওয়ার পরে ডিস্কের স্থানটি সঠিকভাবে প্রদর্শিত হয়েছিল।
এ্যামুস

আমার একটি অ্যাপেন্ড-কেবল-ফাইল লেখার একটি প্রক্রিয়া ছিল যা অনির্দিষ্টকালের জন্য বৃদ্ধি পেয়েছিল এবং শেষ পর্যন্ত আমার ডিস্কটি পূরণ করে। তারপরে আমি সেই ফাইলটি আরএম করার সিদ্ধান্ত নিয়েছি কিন্তু প্রক্রিয়াটি তার ফাইল বর্ণনাকারীটিকে বন্ধ করে দেয় না, সুতরাং এটি কোনওভাবে এখনও ব্যবহৃত হচ্ছে। প্রক্রিয়াটি পুনরায় আরম্ভ এবং এওএফ আকার সীমাবদ্ধ করা আমার সমস্যার সমাধান করে।
এভিগিগিয়ানো

একটি নোট মূল্যবান যে এর জন্য মূল অধিকার প্রয়োজন। এছাড়াও, আমি sudo lsof -s | grep deleted | sort -hk7একটি সংখ্যার বাছাই পেতে ব্যবহৃত । -H ছাড়া, বাছাইয়ের সাথে সংখ্যা সহ মজাদার লেজিকাল জিনিসগুলি করা হয়।
ডেরেক

এটি আশ্চর্যজনক জিনিস। আপ-ভোট দিয়েছেন
টেকি

4
find / -size +10000k -print0 | xargs -0 ls -l -h

যাও recursively কি থেকে চেয়ে 10MB + আরও ভর্তি করা হয় এটি ব্যবহার করুন /(রুট), এবং প্রচুর বিস্তারিত প্রদর্শন ls -lমধ্যে xargs। আপনি যদি 1000000 (2 অতিরিক্ত শূন্য) লিখেন তবে উদাহরণস্বরূপ আপনি 1GB + পেতে পারেন।

du / -h --max-depth=1 | sort -h

আপনি ডু ব্যবহার করতে পারেন এবং এটি নিজে নিজে খনন করতে পারেন।


1

যখনই এটি ঘটে আমি সর্বদা নির্দিষ্ট সাব-ডিরেক্টরিতে আমার ফোকাস শুরু করি। বেশিরভাগ লিনাক্সের যে এফএইচএস কাঠামো মেনে চলা যায় তা এই বিষয়টি মাথায় রেখেই রাখা হয়েছে।

প্রথমে ভিতরে তাকান /var, তারপরে অনুসরণ করুন /home

$ sudo du -x -d1 -h /var  | sort -hr`

$ sudo du -x -d1 -h /home | sort -hr`

আপনি সেই স্থানগুলির মধ্যে যে কোনও একটির মধ্যে সাব-ডিরেক্টরিতে আপনার ফোকাসকে সংকুচিত করতে পারেন। একবার আপনি সেখানে দেখার ক্লান্ত হয়ে গেলে, আমি সাধারণত চলে যাই /rootএবং শেষ অবধি অবশিষ্ট সাব ডিরেক্টরিগুলি /

যদি এটি একটি রেড হ্যাট ভিত্তিক ক্যাশে ডিস্ট্রো করে yumআপডেটগুলি করতে ব্যবহার করে তবে এটি প্রচুর পরিমাণে স্থান গ্রহণ করতে পারে। আপনি এটিকে সাফ করার জন্য এই আদেশটি ব্যবহার করতে পারেন:

$ yum clean packages

অন্যান্য ডিস্ট্রোস যা ব্যবহার করে তেমন aptকিছু করতে পারে apt-get clean,।

আমি আপনার /ডিরেক্টরিতে শীর্ষস্থানীয় এই কমান্ডটিও চালাতাম , এই অবস্থানটি কখনও কখনও বিপথগামী লগ ফাইলের উত্স হয়ে উঠতে পারে।

$ ls -la /

ডট ফাইলগুলিতে বিশেষ মনোযোগ দিন! .blahউদাহরণস্বরূপ জিনিসগুলি ।



0

আমি প্রায় একই পরিস্থিতি পেয়েছি।

আমার ক্ষেত্রে, কারণটি ছিল ভিএমওয়্যার। একই মেশিনের অন্য একটি ভিএমওয়্যার, এটি ডিস্কের স্পেস গ্রাস করেছে। এজন্য আমার ডিস্ক স্পেসের ব্যবহার ছিল 100%।

প্রতিবেশীর ভিএমওয়্যার থেকে বড় ফাইল মুছে ফেলার পরে, এটি সঠিকভাবে কাজ করছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.