डिस्क लोड: iostat और iotop
कैसे पता करें कि मशीन डिस्क-बाउंड है, असल में कौन लिख रहा है, और इन आँकड़ों को अपने VPS टियर की स्पीड सीमा से कैसे जोड़ें।
23 अगस्त 2026 को अपडेट किया गया
डिस्क ही “सब कुछ धीमा है लेकिन CPU आइडल है” का सबसे आम कारण है। प्रोसेस I/O पर इंतज़ार करते रह जाते हैं, लोड एवरेज बढ़ता जाता है, फिर भी htop में लगभग शून्य CPU% दिखता है। आइए देखें कि इसे आंकड़ों में कैसे देखा जाए।
आपको कितना आवंटित है
नोड्स की डिस्क NVMe हैं, लेकिन गति टियर से सीमित रहती है: राइट — 60 MB/s प्रति कोर, पर 60 से कम नहीं और 400 MB/s से ज़्यादा नहीं; रीड राइट की दोगुनी गति से होती है। कैप से ऊपर, 30 सेकंड के लिए तीन गुना ज़्यादा बर्स्ट की अनुमति है — किसी आर्काइव को खोलने या प्रोजेक्ट बनाने के लिए काफ़ी, लेकिन लगातार एक टेराबाइट अपलोड करने के लिए नहीं।
| टियर | कोर | राइट, MB/s | रीड, MB/s |
|---|---|---|---|
| VDS-1 | 1 | 60 | 120 |
| VDS-2 | 2 | 120 | 240 |
| VDS-3 | 4 | 240 | 480 |
| VDS-4 | 6 | 360 | 720 |
| VDS-5 और VDS-6 | 8 और 10 | 400 | 800 |
अगर आपके माप ठीक इन्हीं आंकड़ों तक पहुँचते हैं, तो आप कैप पर पहुँच गए हैं — कुछ टूटा नहीं है। इससे आगे, सिर्फ़ ऊपर के टियर पर जाने से ही मदद मिलती है।
iostat: पूरी तस्वीर
apt install -y sysstat # Debian, Ubuntu
dnf install -y sysstat # AlmaLinux, CentOS Stream
iostat -xz 2
यह कमांड हर दो सेकंड में एक स्नैपशॉट प्रिंट करता है। पहला आउटपुट बूट के बाद का औसत होता है — उसे छोड़ दें। vda या sda लाइन देखें:
r/s,w/s— प्रति सेकंड रीड और राइट ऑपरेशन।rkB/s,wkB/s— मेगाबाइट, 1024 से भाग दें। ऊपर दी गई टेबल से तुलना करें।await— मिलीसेकंड में प्रति ऑपरेशन औसत इंतज़ार। एक अंक का होना सामान्य है; दहाई और सैकड़े का मतलब है कतार लगी है।%util— डिस्क कितनी व्यस्त है। लगातार 90–100 % का मतलब है कि आप दीवार से टकरा गए हैं।
vmstat 2 भी काम का है: wa कॉलम (io wait) प्रतिशत में दिखाता है कि CPU कितना समय सिर्फ़ डिस्क का इंतज़ार करने में बिता रहा है।
iotop: असल में कौन लिख रहा है
apt install -y iotop && iotop -oPa
-o सिर्फ़ सक्रिय प्रोसेस दिखाता है, -P थ्रेड्स की जगह प्रोसेस दिखाता है, -a लॉन्च के बाद से जमा हुआ वॉल्यूम दिखाता है। एक मिनट देखने के बाद आपको असली दोषी दिख जाएगा: आम तौर पर कोई डेटाबेस, लॉग कलेक्टर या बैकअप।
इंटरैक्टिव UI के बिना एक बार की जाँच:
iotop -boPan 3 | head -20
जो मिले उसका क्या करें
- जर्नल लिख रहा है। इसका आकार सीमित करें:
journalctl --vacuum-size=200Mऔर/etc/systemd/journald.confमेंSystemMaxUse=200M। ज़्यादा जानकारी के लिए systemd journals देखें। - डेटाबेस लिख रहा है। जाँचें कि कहीं मौजूदा इंडेक्स की कमी के कारण फ़ुल टेबल स्कैन तो नहीं चल रहा, और कहीं बफ़र इतना छोटा सेट तो नहीं कि सब कुछ डिस्क पर जा रहा हो।
- काम के घंटों में बैकअप या rsync। गति सीमित करें:
rsync --bwlimit=20M; आर्काइविंग के लिएionice -c3 nice -n19 tar ...इस्तेमाल करें ताकि टास्क पीछे हट जाए। - Swap। अगर डिस्क पेजिंग में व्यस्त है, तो समस्या डिस्क की नहीं बल्कि मेमोरी की है — Memory and swap पढ़ें।
आम गलतियाँ
dd और conv=fdatasync से गति मापना और एक ही रन से नतीजे निकाल लेना: शुरुआती सेकंड बर्स्ट पर चलते हैं और बढ़ा-चढ़ा परिणाम देते हैं। सही तरीका Benchmarking disk and network speed में है।
भरी हुई डिस्क भी “सब कुछ धीमा है” जैसी दिखती है: खाली जगह नहीं है, कोई सर्विस टेम्पररी फ़ाइल नहीं लिख पाती और हैंग हो जाती है। पहले
df -hजाँचें — इसमें एक सेकंड लगता है।