−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS
شروع کنید

صورت‌حساب ثانیه‌ای به زبان ساده: چرا یک سندباکس ۲۰ ثانیه‌ای ‎$0.00055 هزینه دارد

18 مهر 1405 · 5 دقیقه مطالعه · EQVPS Team

«محاسبه بر اساس ثانیه» از آن عبارت‌هایی است که کامل به نظر می‌رسد ولی نیست. پشت آن چند تصمیم هست که مبلغ پرداختی شما را تغییر می‌دهد: چه چیزی اندازه‌گیری می‌شود، شمارش کی شروع و کی متوقف می‌شود، آیا حداقلی وجود دارد، کسرهای سنت چطور مدیریت می‌شوند، و پول دقیقاً کی از موجودی‌تان کم می‌شود.

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

واحد: vCPU و RAM رزروشده

قیمت سندباکس، قیمت منابعی است که تعرفهٔ آن رزرو می‌کند:

  • ‏$0.040 برای هر vCPU-ساعت
  • ‏$0.013 برای هر GiB رم در ساعت

بنابراین تعرفهٔ small ‏(0.5 vCPU، 1 GB) ساعتی 0.5 × 0.040 + 1 × 0.013 = ‎$0.033 هزینه دارد، یعنی حدود ‎$0.0000092 در ثانیه. بزرگ‌ترین تعرفه، max ‏(8 vCPU، 16 GB)، ساعتی ‎$0.528 است.

ما رزرو را اندازه می‌گیریم، نه مصرف را. سندباکسی که منتظر دستور بعدی است به‌ازای هر ثانیه همان‌قدر هزینه دارد که سندباکسی که پروژه‌ای را کامپایل می‌کند. اندازه‌گیری CPU واقعی روی کاغذ منصفانه‌تر به نظر می‌رسید، اما دانستن قیمت از پیش را غیرممکن می‌کرد، و ظرفیت در هر حال برای شما نگه داشته می‌شود. ترافیک خروجی هزینه ندارد.

شمارش: از ساخت تا حذف

سندباکس موقت از لحظهٔ ساخت تا لحظهٔ حذف هزینه دارد. این شامل زمانی هم می‌شود که بیکار می‌ماند تا مهلت بیکاری آن را حذف کند؛ این مهلت به‌طور پیش‌فرض ۳۰۰ ثانیه است.

بیشتر غافلگیری‌ها از همین‌جا می‌آید. اسکریپتی دو دقیقه‌ای، در سندباکسی که کسی حذفش نمی‌کند، هفت دقیقه هزینه دارد: دو دقیقه کار و پنج دقیقه انتظار برای مهلت. راه‌حل کسل‌کننده است: وقتی کارتان تمام شد سندباکس را حذف کنید (بلوک with در SDK این کار را برایتان انجام می‌دهد) یا مهلت بیکاری را کم کنید.

حداقل: ۶۰ ثانیه برای هر سندباکس

هر سندباکس موقت دست‌کم برای ۶۰ ثانیه از عمرش هزینه دارد. راه‌اندازی یک microVM، وصل کردن دیسک و شبکهٔ آن و دوباره جمع کردن همه‌چیز، هزینهٔ یکسانی دارد، چه کد داخلش یک ثانیه اجرا شود چه پنجاه ثانیه.

عمرتعرفهمحاسبه‌شدههزینه
۲۰ ثsmall۶۰ ث$0.00055
۶۱ ثsmall۶۱ ث$0.00056
۱۰ دsmall۶۰۰ ث$0.0055
۳ سstandard۱۰٬۸۰۰ ث$0.198

حداقل فقط یک بار اعمال می‌شود، وقتی سندباکس تمام می‌شود، و فقط اگر کل عمرش کمتر از ۶۰ ثانیه بوده باشد. هیچ حداقل اضافه‌ای به‌ازای ساعت یا دستور وجود ندارد.

انباشت و کسر: میکرودلار و سنت کامل

این بخشی است که «ثانیه‌ای» معمولاً به شما نمی‌گوید. میزبان سندباکس‌ها مصرف را در بازه‌های ساعتی ثبت می‌کند، یکی برای هر سندباکس. کار صورت‌حساب هر دقیقه یک بار بازه‌های بسته‌شده را جمع می‌کند، قیمت‌گذاری می‌کند و از موجودی کسر می‌کند.

قیمت‌گذاری به یک‌میلیونیم دلار انجام می‌شود و کسر به سنت کامل. هرچه کمتر از یک سنت بماند در حساب شما باقی می‌ماند و به کسر بعدی اضافه می‌شود؛ نه به‌ازای سندباکس گرد می‌شود و نه به‌ازای ساعت.

در مقیاس کوچک این مهم است. صد سندباکس ۲۰ ثانیه‌ای ‎100 × $0.00055 = $0.055 انباشته می‌کنند. پنج سنت از شما کسر می‌شود و نیم سنت منتظر دستهٔ بعدی می‌ماند. اگر هر سندباکس به یک سنت گرد می‌شد، همین کار یک دلار هزینه داشت.

دو ویژگی دیگر هم ارزش دانستن دارد:

  • هر بازه دقیقاً یک بار هزینه می‌شود. رکورد مصرف و کسر در یک تراکنش پایگاه داده نوشته می‌شوند، با کلید سندباکس و ساعت. اجرای دوباره یا تأیید گم‌شده نمی‌تواند دو بار هزینه کم کند.
  • قطعی‌ها کسر را عقب می‌اندازند، نه گم می‌کنند و نه تکرار. اگر بخش صورت‌حساب نتواند به میزبان سندباکس‌ها برسد، چیزی تأیید نمی‌شود، بازه‌ها منتظر می‌مانند و وقتی اتصال برگشت هزینه می‌شوند.

نتیجه این است که داشبورد ممکن است تا یک ساعت از عدد زنده عقب باشد. برای عدد زنده، GET /sandboxes/{id}/usage مقدار billed_usd و estimated_total_usd آن سندباکس را تا این لحظه برمی‌گرداند.

سندباکس‌های persistent: به‌ازای هر ساعت آغازشده، با سقف

سندباکس‌های persistent دیسک خود را بین نشست‌ها نگه می‌دارند، تا ۳۰ روز. هزینهٔ آن‌ها به‌ازای هر ساعت آغازشده است: ۶۱ دقیقه یعنی دو ساعت. در عوض، یک ماه تقویمی (UTC) هرگز بیشتر از ۷۳۰ ساعت منهای ۲۵٪ هزینه ندارد.

برای تعرفهٔ standard این سقف به‌جای ‎$48.18 ماهانه ‎$36.14 است. وقتی سندباکس persistent متوقف (pause) است، اصلاً هزینه‌ای ندارد.

وقتی موجودی تمام می‌شود

موجودی هرگز زیر صفر نمی‌رود. سندباکس‌های جدید با 402 insufficient_balance رد می‌شوند. سندباکس‌های موقتی که در حال اجرا هستند در مهلت بیکاری یا TTL خود تمام می‌شوند. سندباکس‌های persistent پس از ۲۴ ساعت بدون شارژ متوقف می‌شوند و وقتی موجودی اضافه کنید خودشان ادامه می‌دهند. اسنپ‌شات‌های متوقف ۱۴ روز نگه داشته می‌شوند. پس از آن سندباکس حذف می‌شود و شناسه‌اش 410 sandbox_deleted برمی‌گرداند.

اگر یک عامل هوش مصنوعی برایتان سندباکس می‌سازد، سقف روزانه و ماهانه تعیین کنید. رسیدن به سقف 429 budget_exceeded را همراه با زمان بازنشانی برمی‌گرداند، چیزی که یک برنامه می‌تواند بر اساس آن عمل کند.

صورت‌حساب ثانیه‌ای کجا می‌بازد

صورت‌حساب ثانیه‌ای برای کاری که با ثانیه و دقیقه سنجیده می‌شود عالی است. هرچه کار طولانی‌تر شود، بدتر می‌شود.

بار کاریسندباکس ثانیه‌ایجایگزین
تست ۲ دقیقه‌ای‎$0.0011 ‏(small)ماشینی که ساعتی حساب می‌شود کل ساعت را می‌گیرد
کار دسته‌ای ۳ ساعته‎$0.198 ‏(standard)تقریباً همان
سرویس ۲۴/۷ماهانه ‎$36.14 ‏(standard، سقف persistent)VPS ‏AI agent: ‏4 vCPU، 4 GB، ماهانه ‎$10

نقطهٔ تلاقی تقریباً جایی است که بار کاری بیش از چند ساعت در روز اجرا شود. از آن به بعد برای انعطافی پول می‌دهید که از آن استفاده نمی‌کنید، و سروری که ماهانه اجاره شده به‌ازای هر ساعت به‌مراتب ارزان‌تر است. نگاه منصفانه به صورت‌حساب ثانیه‌ای این است که آن را بهای برنامه‌ریزی نکردن ظرفیت بدانیم، نه تخفیف.

روشی سریع برای برآورد

قیمت ساعتی تعرفه × تعداد ثانیه‌هایی که سندباکس وجود خواهد داشت ÷ ۳۶۰۰، با کف ۶۰ ثانیه. اگر خودتان حذفش نمی‌کنید، مهلت بیکاری را اضافه کنید. برای سندباکس‌های persistent هر نشست را به ساعت کامل گرد کنید و در سقف ماهانه متوقف شوید.

همهٔ قوانین، سهمیه‌ها و API بودجه در محدودیت‌ها و صورت‌حساب سندباکس‌ها است؛ فراخوانی‌های بالا در مرجع SDK. اگر می‌خواهید بدانید به‌ازای هر ثانیه دقیقاً چه چیزی اجاره می‌کنید، Firecracker microVM به زبان ساده توضیحش می‌دهد، و عامل‌های هوش مصنوعی واقعاً چه چیزی از زیرساخت لازم دارند نشان می‌دهد چرا وقتی ماشین‌ها را نرم‌افزار می‌سازد و نه انسان، مدل صورت‌حساب این‌قدر مهم است.

سؤالات متداول

برای CPU که واقعاً مصرف می‌کنم پول می‌دهم یا برای آنچه رزرو می‌کنم؟

برای آنچه تعرفه رزرو می‌کند: vCPU و RAM آن، برای هر ثانیه‌ای که سندباکس وجود دارد. سندباکس بیکار به‌ازای هر ثانیه همان‌قدر هزینه دارد که سندباکس پرمشغله. به همین دلیل قیمت پیش از اجرای هر چیزی قابل پیش‌بینی است.

چرا حداقل ۶۰ ثانیه وجود دارد؟

ساختن و از بین بردن یک microVM هزینهٔ ثابتی دارد، چه کد داخل آن یک ثانیه اجرا شود چه پنجاه ثانیه. حداقل هزینه همین را پوشش می‌دهد. سندباکسی که ۲۰ ثانیه عمر کند ۶۰ ثانیه حساب می‌شود؛ سندباکسی که ۶۱ ثانیه عمر کند ۶۱ ثانیه.

کسرهای سنت چطور حساب می‌شوند؟

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

آیا تکرار صورت‌حساب ممکن است دو بار از من پول کم کند؟

خیر. هر ساعت از هر سندباکس فقط یک بار ثبت و در همان تراکنش پایگاه داده کسر می‌شود. اگر کار صورت‌حساب دوباره اجرا شود یا تأییدی گم شود، مورد تکراری رد می‌شود.

سرور ماهانه کی از صورت‌حساب ثانیه‌ای ارزان‌تر است؟

وقتی بار کاری بیشتر ساعات روز اجرا شود. یک سندباکس standard که تمام ماه روشن بماند، حتی با تخفیف persistent، ‎$36.14 هزینه دارد؛ یک VPS با منابع بیشتر کمتر از نصف این مبلغ است.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.