ডিস্ক স্পেস: কোথায় যায়
ডিস্ক কী ভরেছে কীভাবে খুঁজবেন, ডিলিট করা কিন্তু খোলা ফাইল কেন বিপজ্জনক, কী নিরাপদে পরিষ্কার করা যায় এবং কেন প্যানেলের ব্যবহারের রিং ভুল দেখাতে পারে।
আপডেট: ২৩ আগস্ট, ২০২৬
জায়গা শেষ হয়ে যাওয়া এমন এক আউটেজ, যেটা যেকোনো রূপে ধরা দেয়: ডেটাবেস লিখতে পারে না, সাইট এরর দেয়, কন্টেইনার রিস্টার্ট হয়। VDS ডিস্ক এন্ট্রি টিয়ারে ৪০ GB থেকে শুরু করে টপ টিয়ারে ২৫০ GB পর্যন্ত হয়, আর এটা প্রায় সবসময় একই জিনিস দিয়ে ভরে যায়।
প্রথম কমান্ড
df -h
df -i
sudo du -x -h -d1 / | sort -h | tail -15
df -i বাদ দেবেন না: জায়গা থাকলেও ইনোড শেষ হয়ে যেতে পারে — তখন ফাঁকা গিগাবাইট থাকা সত্ত্বেও “disk full” দেখায়। এর পেছনে সাধারণত লাখ লাখ ছোট ক্যাশ ফাইল থাকে।
এরপর সবচেয়ে বড় ডিরেক্টরিতে ঢুকে দেখুন:
sudo du -x -h -d1 /var | sort -h | tail
sudo du -x -h -d1 /var/lib | sort -h | tail
-x ফ্ল্যাগ কাউন্টকে একটিমাত্র ফাইলসিস্টেমের ভেতরে রাখে এবং মাউন্ট করা ডিরেক্টরিতে ছড়িয়ে পড়তে দেয় না।
সাধারণ কারণ
| কী | কীভাবে দেখবেন | কী করবেন |
|---|---|---|
| কন্টেইনার লগ | du -sh /var/lib/docker/containers/*/*-json.log | সাইজ সীমিত করুন, দেখুন logs |
| ইমেজ ও বিল্ড ক্যাশ | docker system df | docker image prune, docker builder prune |
| সিস্টেম জার্নাল | journalctl --disk-usage | journalctl --vacuum-size=200M |
/boot-এ পুরনো কার্নেল | df -h /boot | apt autoremove --purge |
| প্যাকেজ ক্যাশ | du -sh /var/cache/apt | apt clean |
| জায়গায় পড়ে থাকা কপি | du -sh /backup | অফসাইটে সরান, দেখুন অন্য লোকেশন |
| ইউজার আপলোড | du -sh /var/www/uploads | বাইরের স্টোরেজ বা বড় ডিস্ক |
ডিলিট করা ফাইল, যা এখনও জায়গা নিচ্ছে
ক্লাসিক ধাঁধা: du দেখায় ৫ GB, df দেখায় ৩০ GB ব্যবহৃত। এর মানে ফাইলটি ডিলিট হয়েছে, কিন্তু একটি প্রসেস এখনও সেটি খোলা রেখেছে, আর রিস্টার্ট না করা পর্যন্ত জায়গা মুক্ত হবে না।
sudo lsof +L1 | head -20
আউটপুটে প্রসেস ও সাইজ দেখা যাবে। সমাধান হলো দোষী প্রসেসটি রিস্টার্ট করা:
sudo systemctl restart <service>
docker compose restart <service>
ব্যবহৃত অবস্থায় থাকা লগ ফাইলে
rmদিয়ে কখনও জায়গা খালি করবেন না। সঠিক উপায় হলো এটি ট্রাঙ্কেট করা:sudo truncate -s 0 /var/log/big.log। ডিলিট করলে জায়গা দখল হয়ে থাকবে এবং লগটিও হারাবেন।
প্যানেলে ব্যবহারের রিং
“Overview” ট্যাবে ডিস্ক ব্যবহারের একটি রিং থাকে। এটি গেস্ট এজেন্ট qemu-guest-agent দিয়ে হিসাব করা হয়। এজেন্ট সরিয়ে ফেলা হলে বা চালু না থাকলে ডেটা আপডেট হবে না — প্যানেল ইনস্টল কমান্ড দেখাবে। মেশিনের ভেতরে দেখতে:
systemctl status qemu-guest-agent
এজেন্টের পাঠানো মান ও df -h মিলে যাওয়া উচিত। অমিল হলে বেশিরভাগ ক্ষেত্রেই বোঝায় আলাদা করে মাউন্ট করা পার্টিশনে কিছু জায়গা দখল হয়ে আছে — দেখুন পার্টিশন ও ফাইলসিস্টেম।
প্রতিরোধ
ক্লিনআপ ও অ্যালার্টসহ একটি নির্ধারিত টাস্ক সেট করুন:
#!/bin/bash
USED=$(df --output=pcent / | tail -1 | tr -dc '0-9')
if [ "$USED" -gt 85 ]; then
journalctl --vacuum-size=200M
apt clean
docker image prune -f
echo "Disk is ${USED}% full" | mail -s "VDS: low disk space" you@example.com
fi
৮৫% থ্রেশহোল্ড আপনাকে প্রতিক্রিয়া জানানোর সুযোগ দেয়। ১০০% পর্যন্ত অপেক্ষা করা যাবে না: ডিস্ক ভরে গেলে কিছু সার্ভিস কী ঘটেছে তা লগেও লিখতে পারবে না।
একেবারেই জায়গা না থাকলে
- দ্রুত ব্যবস্থায় কয়েক গিগাবাইট খালি করুন:
journalctl --vacuum-size=100M,apt clean,docker builder prune -f। - উপরের কমান্ডগুলো দিয়ে আসল কারণ খুঁজে বের করুন — নইলে এক সপ্তাহ পরেই সব আবার হবে।
- ডেটা সত্যিই বেড়ে গেলে উচ্চতর টিয়ারে গিয়ে ডিস্ক বাড়াতে হবে। ডাউনগ্রেড করা যায় না: ডিস্ক ছোট করা সম্ভব নয়।