منابع و مقیاس
در گردو اندازهٔ سرور انتخاب نمیکنید. هر سرویس با منابع کم شروع میشود و وقتی مصرفش بالا میرود، CPU و RAM بیشتری میگیرد، تا سقفی که پلن شما برای هر سرویس تعیین کرده است. هزینه بر اساس مصرف واقعی دقیقهبهدقیقه حساب میشود، نه بر اساس سقف.
سقف CPU و RAM هر سرویس در هر پلن در صفحهٔ تعرفهها آمده است.
رپلیکا
«تعداد رپلیکا» در زبانهٔ تنظیمات سرویس (بخش «شبکه و مقیاس») تعیین میکند چند نسخه از برنامه همزمان اجرا شود. ترافیک بین نسخهها پخش میشود و اگر یکی از کار بیفتد، بقیه جواب میدهند.
- هر رپلیکا جداگانه منابع مصرف میکند و هزینه دارد.
- برنامه باید بیحالت باشد: نشست کاربر، فایل آپلودی و کش را در دیتابیس، Redis یا فضای ذخیرهسازی مشترک نگه دارید، نه در حافظه یا دیسک همان نسخه.
- سرویسی که دیسک ماندگار دارد فقط یک رپلیکا میتواند داشته باشد، چون هر دیسک فقط به یک نسخه وصل میشود.
وقتی مصرف از سقف پلن بیشتر میشود
برای اینکه یک اوج ناگهانی سرویس را از کار نیندازد، CPU میتواند موقتاً از سقف پلن بالاتر برود. RAM نمیتواند؛ سقف RAM همیشه همان سقف پلن است.
اگر مصرف CPU بیشتر از ۱۰ دقیقه بالای سقف بماند:
- بالای صفحهٔ سرویس پیام «مصرف سرویس از سقف پلن بیشتر شده است» میآید و ایمیل هم دریافت میکنید.
- ۴۸ ساعت وقت دارید پلن را ارتقا دهید. در این مدت سرویس کار میکند.
- اگر ارتقا ندهید، سرویس متوقف میشود («سرویس پس از پایان مهلت ارتقای پلن متوقف شده است»).
بعد از توقف دو راه دارید:
- ارتقای پلن به پلنی که مصرف را پوشش بدهد؛ سرویس خودکار دوباره راهاندازی میشود.
- «شروع با سقف پلن فعلی»: سرویس دوباره روشن میشود ولی نمیتواند از سقف بالاتر برود، پس ممکن است زیر بار کند شود.
بعد از ۲۴ ساعت مصرف زیر سقف (یا ارتقای پلن)، امکان مصرف موقت بیشتر از سقف دوباره فعال میشود.
کمبود حافظه
اگر برنامه بیشتر از سقف RAM بخواهد، سیستمعامل آن را میکشد و سرویس دوباره راهاندازی میشود. اگر این در استقرار اتفاق بیفتد، این پیام را میبینید:
استقرار سرویس ناموفق بود؛ کانتینر احتمالاً بهدلیل کمبود حافظه متوقف شد (سقف حافظه: …)راهها:
- پلن را به پلنی با سقف RAM بیشتر ارتقا دهید.
- مصرف حافظه را کم کنید. برای Node.js
NODE_OPTIONS=--max-old-space-size=…را کمتر از سقف بگذارید؛ برای جاوا-Xmx؛ برای Python تعداد workerهای gunicorn را کم کنید. - کارهای سنگین (پردازش تصویر، ساخت گزارشهای بزرگ) را به یک سرویس یا کار زمانبندیشدهٔ جدا ببرید.
خاموش و روشن کردن
سرویسها همیشه روشناند و با نیامدن درخواست خاموش نمیشوند. اگر سرویسی را موقتاً لازم ندارید، از صفحهاش «توقف» را بزنید؛ تا روشن کردن دوباره هزینهٔ CPU و RAM ندارد (هزینهٔ فضای دیسک ادامه دارد). درخواستی که به سرویس متوقف برسد آن را روشن نمیکند؛ باید خودتان «شروع» را بزنید.
مالک یا ادمین اپلیکیشن میتواند کل اپلیکیشن یا یک محیط را هم یکجا متوقف کند. اعضا و نقشها
پلنها فقط سقف منابع هر سرویس را تعیین میکنند. تعداد اپلیکیشن، سرویس، دامنه، دیسک و کار زمانبندیشده در همهٔ پلنها نامحدود است و فقط مصرف حساب میشود.