محمد شهبازی
محمد شهبازی
خواندن ۲ دقیقه·۱ سال پیش

خطای "No space left on device (28)" به چه معناست؟




برای ایجاد یک فایل در لینوکس، دو شرط ضرور است:

۱. فضای کافی برای نوشتن آن فایل.

۲. یک شماره شناسایی منحصر به فرد به نام "inode" (شبیه به کد ملی افراد).

بسیاری از مالکان سرور به بررسی و آزاد کردن فضای دیسک می‌پردازند تا این خطا را رفع کنند.

اما بسیاری از آنها نمی‌دانند که "محدودیت inode" نیز وجود دارد.

شما ممکن است بپرسید: "محدودیت inode" چیست؟ حالا به دقت گوش کنید.

لینوکس هر فایل را با یک "شماره inode" منحصر به فرد شناسایی می‌کند، مانند کد ملی. به هر فایل یک شماره inode اختصاص داده می‌شود.

اما هر سرور در هر دیسک دارای مجموعه محدودی از شماره‌های inode می باشد. هنگامی که تمام شماره‌های inode منحصر به فرد را در یک دیسک استفاده می‌کند، نمی‌تواند یک فایل جدید ایجاد کند.

به علت وجود شباهت زیاد خطای "No space left on device (28)" اکثرا مردم به دنبال مشکلات مصرف فضا می‌گردند.

حالا که می‌دانید منشا این مشکل از کجاست، بیایید نگاهی به نحوه رفع این مشکل بیندازیم.

لازم به ذکر است که این ایراد ممکن است بابت هر فایل tmp ایجاد شده باشد که باری متوجه شدن منشا اصلی آن باید به error_log سرور مراجعه نمایید.


رفع خطای MySQL Errcode: 28 - No space left on device

گاهی اوقات سرورهای MySQL وقتی کوئری‌های پیچیده‌ای را اجرا می‌کنند، با این خطا مواجه می‌شوند. مثالی از این خطا به صورت زیر است:

ERROR 3 (HY000) at line 1: Error writing file '/tmp/MY4Ei1vB' (Errcode: 28 - No space left on device)

هنگام اجرای کوئری‌های پیچیده که جداول مختلفی را با یکدیگر ادغام می‌کنند، MySQL جداول موقتی را در درایو /tmp ایجاد می‌کند.

اگر به هر دلیلی فضای موجود یا inode‌ها در این پوشه‌ها تمام شوند، MySQL با این خطا خارج می‌شود.

درایو موقت می‌تواند به سرعت با فایل‌های حافظه نهان، فایل‌های session یا سایر فایل‌های موقت پر شود.

برای رفع این مشکل و جلوگیری از تکرار آن، باید از برنامه‌های پاکسازی /tmp استفاده شود تا از تجمع فایل‌های اضافی جلوگیری نماید و هر بار که مصرف فضا به بالای 80٪ افزایش پیدا کند، اجرا می‌شوند.

ادامه دارد...

mysql
توسعه دهنده نرم افزار - در اینجا چالش هایی که باهاشون مواجه میشم رو مینویسم
شاید از این پست‌ها خوشتان بیاید