کاور مقاله Inode در هاست چیست و چرا ممکن است قبل از پر شدن فضا محدود شوید؟

پاسخ کوتاه: Inode چیست؟

در فایل‌سیستم‌های رایج لینوکس، inode ساختاری برای نگهداری metadata یک فایل یا دایرکتوری است. در زبان ساده هاستینگ، وقتی پنل از File Usage یا Inode Usage حرف می‌زند، منظور تعداد فایل‌ها و پوشه‌هایی است که حساب شما مصرف کرده است.

ممکن است ۲۰ گیگابایت فضای خالی داشته باشید ولی به سقف تعداد فایل برسید؛ چون «حجم» و «تعداد فایل» دو محدودیت متفاوت‌اند.

cPanel File Usage چه چیزی نشان می‌دهد؟

cPanel می‌تواند تعداد فایل‌ها و دایرکتوری‌های حساب را در Statistics به‌صورت File Usage نمایش دهد، البته اگر میزبان این قابلیت را فعال کرده باشد. مستندات cPanel این مقدار را inode count معرفی می‌کند.

چه چیزهایی Inode زیادی مصرف می‌کنند؟

  • Cache فایل با هزاران شیء کوچک
  • Sessionهای PHP یا اپلیکیشن
  • Mailbox با تعداد زیاد پیام
  • Thumbnailهای متعدد وردپرس
  • Backupهای Extract‌شده
  • node_modules یا vendor در پروژه‌های توسعه‌ای
  • Logهای Split شده و فایل‌های موقت
  • Staging و Cloneهای فراموش‌شده

چرا فایل کوچک هم یک شمارنده مصرف می‌کند؟

محدودیت File Usage بر تعداد اشیای فایل‌سیستم تمرکز دارد، نه اندازه آن‌ها. صد هزار فایل ۴ کیلوبایتی ممکن است فضای زیادی نگیرند، اما تعداد بالایی inode مصرف کنند. برعکس یک فایل ویدیویی چند گیگابایتی می‌تواند فقط یک فایل باشد.

نشانه‌های رسیدن به محدودیت File Usage

بسته به پیکربندی میزبان، رسیدن به Limit می‌تواند باعث شکست ساخت فایل جدید، مشکل Upload، Cache، Session، Email یا Backup شود. ممکن است Disk Usage هنوز پایین به نظر برسد؛ به همین دلیل باید File Usage را جدا بررسی کرد.

در وردپرس کدام بخش‌ها را بررسی کنیم؟

  1. wp-content/cache و Cacheهای قدیمی
  2. wp-content/uploads و Thumbnailها
  3. دایرکتوری Backup افزونه‌ها
  4. Logهای Debug و Security
  5. Staging یا نسخه Clone
  6. Pluginهایی که Session یا فایل موقت زیاد تولید می‌کنند

قبل از حذف، منبع فایل‌ها را مشخص کنید تا با پاک‌کردن Cache یا Backup فعال به سایت آسیب نزنید.

ایمیل و Inode؛ رابطه‌ای که نادیده گرفته می‌شود

هر پیام Maildir معمولاً به‌صورت فایل جدا ذخیره می‌شود؛ بنابراین Mailbox با ده‌ها هزار پیام می‌تواند File Usage زیادی ایجاد کند، حتی اگر حجم کل چند گیگابایت باشد. سیاست Archive و نگهداری ایمیل در اینجا اهمیت دارد.

آیا پاک‌کردن فایل‌ها فوراً مشکل را حل می‌کند؟

معمولاً کاهش تعداد فایل به آزادشدن File Usage کمک می‌کند، اما گزارش پنل ممکن است با تأخیر به‌روزرسانی شود. همچنین حذف فایل از داخل Trash یا نگهداری Backup در مسیر دیگر ممکن است مصرف را همچنان حفظ کند. بعد از Cleanup دوباره Usage را اندازه بگیرید.

Inode، Disk Quota و Database سه گزارش متفاوت‌اند

محدودیتچه چیزی را می‌سنجد؟مثال مشکل
Disk Spaceحجم دادهپرشدن 25GB
File Usage/Inodeتعداد فایل و دایرکتوریصدها هزار فایل کوچک
Database Sizeحجم DBLog و جدول بزرگ

چطور مصرف Inode را کاهش دهیم؟

  • Cacheهای منقضی و رهاشده را از طریق ابزار صحیح پاک کنید.
  • Backupهای قدیمی را به مقصد Backup منتقل کنید.
  • Log Rotation داشته باشید.
  • Thumbnailهای بلااستفاده را فقط با ابزار امن مدیریت کنید.
  • Mailboxهای قدیمی را Archive کنید.
  • پروژه‌های Staging و Deploy قدیمی را حذف کنید.
  • Dependencyهای توسعه‌ای غیرضروری را روی Production نگه ندارید.

چه سقفی برای Inode خوب است؟

عدد واحدی برای همه سایت‌ها وجود ندارد. نیاز یک وبلاگ کوچک با فروشگاه، Mailbox سنگین یا پروژه Node.js متفاوت است. مهم‌تر از عدد خام، شفافیت Limit، امکان مشاهده Usage و مسیر ارتقاست. اگر سایت فعلی شما File Usage بالایی دارد، قبل از مهاجرت عدد واقعی را استخراج کنید.

چک‌لیست پیش از خرید

  • File Usage Limit پلن چقدر است؟
  • Soft Limit و Hard Limit تفاوت دارند؟
  • Usage در cPanel قابل مشاهده است؟
  • Email در همان شمارش قرار می‌گیرد؟
  • Backup محلی روی File Usage اثر دارد؟
  • در صورت رسیدن به Limit چه سرویسی متوقف می‌شود؟
  • ارتقا بدون مهاجرت ممکن است؟

چرا Cache می‌تواند ناگهان File Usage را منفجر کند؟

برخی Cacheها برای هر URL، Device Variant، زبان یا Query String فایل جدا ایجاد می‌کنند. اگر Crawl Bot میلیون‌ها URL پارامتری بسازد یا Purge درست کار نکند، تعداد فایل Cache می‌تواند در مدت کوتاهی رشد کند. در این وضعیت پاک‌کردن Cache فقط درمان موقت است؛ باید علت تولید کلیدهای زیاد را اصلاح کنید.

Session و فایل‌های موقت

اپلیکیشن‌هایی که Session را روی File System ذخیره می‌کنند ممکن است برای هر Session فایل بسازند. اگر Garbage Collection درست اجرا نشود، فایل‌های منقضی باقی می‌مانند. همین الگو برای Temporary Fileهای Upload، Queue و Build نیز ممکن است رخ دهد.

Composer و Node.js چه اثری دارند؟

پروژه PHP مدرن می‌تواند هزاران فایل داخل vendor داشته باشد و node_modules نیز معمولاً تعداد بسیار زیادی فایل کوچک ایجاد می‌کند. در Production بهتر است Dependencyهای لازم Deploy شوند و Artifactهای توسعه‌ای غیرضروری، Test Fixture و Cache ابزار Build روی حساب باقی نمانند.

آیا Database Row یک inode است؟

خیر. هر رکورد دیتابیس به‌صورت یک inode مستقل در File System شمارش نمی‌شود. Database Engine داده‌ها را داخل مجموعه فایل‌های Table، Tablespace و Log مدیریت می‌کند. بااین‌حال تعداد Table بسیار زیاد می‌تواند فایل‌های بیشتری ایجاد کند، مخصوصاً بسته به Storage Engine و تنظیمات.

چطور دایرکتوری پرمصرف را پیدا کنیم؟

اگر SSH دارید می‌توان با ابزارهای استاندارد تعداد فایل هر مسیر را بررسی کرد؛ در محیط مدیریت‌شده بهتر است از File Usage Report یا پشتیبانی بخواهید مسیرهای پرتعداد را اعلام کند. هدف فقط پیدا کردن بزرگ‌ترین دایرکتوری از نظر Byte نیست؛ باید تعداد Objectها نیز شمرده شود.

Cleanup امن چه مراحلی دارد؟

  1. قبل از حذف Snapshot یا Backup سالم داشته باشید.
  2. مسیر و تولیدکننده فایل را شناسایی کنید.
  3. از ابزار خود Plugin برای Purge استفاده کنید اگر وجود دارد.
  4. Batch حذف کنید تا فشار I/O ناگهانی ایجاد نشود.
  5. پس از Cleanup سایت، Cron و Mail را تست کنید.
  6. برای جلوگیری از بازگشت، Retention یا Garbage Collection را اصلاح کنید.

فایل‌های Log چگونه بدون جلب توجه رشد می‌کنند؟

گاهی Log Rotation به‌درستی تنظیم نشده و اپلیکیشن برای هر Request یا هر روز فایل جدید تولید می‌کند. اگر Compression و Retention نداشته باشید، هم حجم و هم تعداد فایل بالا می‌رود. Log باید برای عیب‌یابی کافی باشد اما نگهداری بی‌نهایت روی حساب Production منطقی نیست.

آیا افزایش Inode Limit همیشه راه‌حل است؟

اگر رشد File Usage ناشی از معماری طبیعی پروژه است، Limit بالاتر می‌تواند لازم باشد. اما اگر Cache Loop، Session Leak یا Backupهای رهاشده باعث رشد شده‌اند، ارتقا فقط زمان را عقب می‌اندازد. ابتدا نمودار رشد را بررسی و علت را طبقه‌بندی کنید: مصرف مشروع، تنظیم اشتباه یا فایل زائد.

Inode هنگام مهاجرت چه اهمیتی دارد؟

سایتی با ۵ گیگابایت حجم اما ۶۰۰ هزار فایل ممکن است از سایتی با ۳۰ گیگابایت و ۲۰ هزار فایل سخت‌تر منتقل شود، چون Create/Stat هزاران فایل زمان و I/O زیادی می‌گیرد. هنگام Migration علاوه بر حجم، File Count را به تیم مقصد اعلام کنید تا زمان انتقال و Backup درست برآورد شود.

جمع‌بندی

Inode یا File Usage مکمل Disk Space است. برای سایت‌هایی با Cache، Email، Thumbnail یا فایل‌های کوچک زیاد، این عدد می‌تواند زودتر از حجم دیسک به سقف برسد. هنگام خرید هاست هر دو را بررسی کنید.

برای درک سایر محدودیت‌ها، مقاله CPU، RAM، I/O و Entry Process را نیز بخوانید.

منابع تکمیلی