هشدارهای اپ
هنگامی که اپ شما دارای هشدار خاصی باشد، به این معناست که عملکردی غیرعادی در اپ وجود دارد و یا اتفاقی رخ داده که ممکن است در آینده عملکرد صحیح اپ شما را تحت تاثیر قرار دهد. در هشدار زیر از 93% دیسکِ اپ استفاده شده است و برای رفع آن باید اقدامی صورت گیرد.
هشدارهای دارکوب
در حال حاضر ۶ هشدار در دارکوب تعریف شدهاند که عبارتند از:
- بیلد ناموفق
- آماده نبودن اپ
- کمبود CPU
- کمبود حافظه
- ریستهای مکرر
- کمبود فضای دیسک
در صورت بروز هرکدام از این هشدارها، لازم است علت آن بررسی شده و مشکل برطرف شود. مطالعه مطلب عیبیابی اپها میتواند در پیدا کردن علت مسئله به شما کمک کند.
هشدار بیلد ناموفق
اگر بیلد و دیپلوی خودکار اپ گیتی را فعال کرده باشید، ممکن است گاهی بیلد شما به خطا بخورد و این هشدار را دریافت کنید. لاگ بیلد میتوانید علت مسئله را پیدا کنید.
هشدار آماده نبودن اپ
این هشدار زمانی فعال میشود که اپ اجرا شده، ولی Readiness Probe (HTTP) آن هنوز موفقیتآمیز نیست. ممکن است اپ روی پورت تعیینشده پاسخگو نباشد، یا مشکلی در لایهی اپلیکیشن یا خود Readiness Probe (HTTP) مانع درست کار کردن آن شود. خواندن لاگهای اپلیکیشن میتواند در عیبیابی و رفع مسئله کمک کند.
هشدار کمبود CPU
برای هر اپ موقع ساخت آن مقداری CPU در نظر گرفته میشود. در صورتی که مصرف CPU اپ به حداکثر مقدار ممکن برسد، جلوی مصرف بیشتر گرفته شده و اپ کند خواهد شد. به این جلوگیری CPU Throttling میگویند. این هشدار زمانی دیده میشود که اپ به دلیل CPU Throttling دچار افت سرعت شده باشد.
با افزایش CPU به میزانی بالاتر از میزان مصرف معمول اپ، میتوان این مشکل را رفع کرد. برای اطلاع از اینکه اپ شما در حالت معمول چقدر CPU مصرف میکند، در صفحه جزئیات اپ به قسمت مصرف منابع مراجعه کنید. نمودار CPU Throttling در همین صفحه نیز میتواند در پیدا کردن این که این اتفاق چه زمانی رخ داده، راهگشا باشد. در صورت لزوم، میتوانید با افزایش تعداد رپلیکاها و یا امکان مقیاسپذیری خودکار هم فشار وارد شده بر CPU را کاهش دهید.
هشدار کمبود حافظه
برای هر اپ موقع ساخت آن مقداری RAM در نظر گرفته میشود. اگر این مقدار برای اجرای اپ کافی نباشد، اپ با هربار رسیدن به سقف مصرف حافظه، ریست شده و دوباره اجرا میشود. به این اتفاق Out Of Memory Kill یا به اختصار OOMKilled میگویند، که هشدار کمبود حافظه را به همراه دارد.
برای رفع این هشدار، باید بررسی کرد که آیا مصرف RAM اپ به طور کلی بالاست، یا اینکه در بازه بخصوصی دچار این مشکل شده است. نمودار مصرف RAM در قسمت مصرف منابع جواب این سوال را مشخص میکند. اگر مصرف به طور کلی بالا باشد، با افزایش RAM در پلن منابع میتوان مسئله را به سادگی حل کرد. اگر صرفا در بازه خاصی مصرف RAM افزایش پیدا کرده، ممکن است اتفاقی در سطح اپلیکیشن باعث افزایش ناگهانی مصرف RAM شده باشد که با بررسی لاگها میتوان به دنبال علت مسئله گشت.
هشدار ریستهای مکرر
یک اپ فقط تا زمانی در حال اجراست که یک Process در حال اجرا در آن وجود داشته باشد. اگر چیزی باعث خاتمه یافتن این Process شود، اپ ریست خواهد شد. اگر این اتفاق مرتبا تکرار شود، تعداد ریستارتها هم زیاد میشود و این هشدار را میبینید.
برای رفع مشکل باید دید چیزی که باعث خاتمه یافتن Process میشود، چیست. ممکن است بروز یک خطای مدیریتنشده در سطح کد، عامل مسئله باشد. همچنین احتمال دارد ارتباط اپ با سرویسهای جانبی مثل دیتابیس، به درستی صورت نگرفته باشد، یا اینکه فضای داخلی پاد (Ephemeral) پر شده و منجر به ریست پاد گردد.
یک احتمال دیگر، این است که دستور اجرایی اپ (یا Entrypoint داکر ایمیج)، ذاتا یک Process درازمدت ایجاد نکند. به عنوان مثال، اگر دستور اجرای اپ را echo
بگذاریم، اجرای آن به سرعت به پایان خواهد رسید. در حالی که اگر یک سرور اجرا کنیم، Process ایجاد شده تا زمانی که به خطا نخورد، ادامه خواهد داشت. بنابراین تغییر دستور اجرایی نیز میتواند مسئله را برطرف کند.
استفاده از ابزارهای سنتری ، جمعآوری لاگ ، و مانیتورینگ نیز میتواند در پیدا کردن علت مشکل و رفع آن کمککننده باشد.
هشدار کمبود فضای دیسک
این هشدار برای اپهای دیسکدار دیده میشود. زمانی که دیسک اپ از حدی بیشتر پر شده باشد، این هشدار شما را از مسئله مطلع میکند تا قبل از بروز هرگونه مشکلی در اجرای اپ، بتوانید فضای خالی دیسک را افزایش دهید.
برای رسیدن به این هدف میتوانید فایلهای بلااستفاده (مثلا لاگهای قدیمی) را پاک کرده، و یا در بخش مدیریت منابع اپ، حجم دیسک را افزایش دهید.