کنترل هزینه، کنترل هزینه

این صفحه نحوه تنظیم محدودیت‌های روزانه و نظارت بر زمان EECU در حال انجام را برای کمک به کنترل هزینه‌های محاسباتی در Earth Engine شرح می‌دهد.

محدود کردن زمان روزانه EECU

برای کمک به کنترل هزینه‌های Earth Engine خود، می‌توانید با به‌روزرسانی سهمیه ابری زیر، محدودیتی برای میزان زمان EECU که پروژه شما مجاز به مصرف آن در یک روز است، تعیین کنید:

  • Earth Engine compute time (EECU-time) per day in seconds : سهمیه‌ای در سطح پروژه که مجموع زمان EECU همه کاربران یک پروژه را محدود می‌کند.

برای اطلاعات بیشتر در مورد سهمیه‌های قابل تنظیم Earth Engine، به سهمیه‌های Earth Engine مراجعه کنید.

تعیین محدودیت روزانه

شما می‌توانید سهمیه‌ها را در صفحه سهمیه‌ها و محدودیت‌های سیستم در کنسول Google Cloud مشاهده و ویرایش کنید. وقتی سهمیه‌ای را تنظیم می‌کنید، تغییر ظرف چند دقیقه اعمال می‌شود. برای تنظیم یا به‌روزرسانی محدودیت روزانه، موارد زیر را انجام دهید:

  1. تأیید کنید که مجوزهای تغییر سهمیه پروژه را در پروژه انتخابی خود دارید.
  2. به صفحه سهمیه‌ها (Quotas) در کنسول گوگل کلود (Google Cloud console) بروید.
  3. از فیلتر Metric در کادر جستجوی Filter برای فیلتر کردن earthengine.googleapis.com/daily_eecu_usage_time استفاده کنید. اگر سهمیه Earth Engine compute time (EECU-time) per day in seconds نمی‌بینید، تأیید کنید که API Earth Engine را برای پروژه انتخاب شده فعال کرده‌اید.
  4. از منوی سه نقطه روی ویرایش سهمیه کلیک کنید.
  5. اگر گزینه نامحدود انتخاب شده است، آن را از حالت انتخاب خارج کنید.
  6. محدودیت مورد نظر خود را بر حسب EECU-seconds در فیلد New value وارد کنید. روی Submit Request کلیک کنید.

برای اطلاعات بیشتر در مورد مشاهده و مدیریت سهمیه‌ها، به بخش مشاهده و مدیریت سهمیه‌ها مراجعه کنید.

پیام‌های خطای برگشتی

بعد از اینکه محدودیت روزانه را تعیین کردید، Earth Engine وقتی از آن تجاوز کنید، پیام خطای زیر را برمی‌گرداند:

میزان مصرف شما از سهمیه‌ی سفارشی برای «earthengine.googleapis.com/daily_eecu_usage_time» فراتر رفته است، که توسط مدیر شما در کنسول Google Cloud قابل تنظیم است: https://console.cloud.google.com/quotas/?project=_.

به محض اینکه سهمیه از حد مجاز فراتر رود، درخواست‌های Earth Engine تا زمانی که سهمیه روز بعد مجدداً تنظیم شود یا محدودیت توسط مدیر افزایش یابد، با شکست مواجه می‌شوند.

نظارت و هشدار دقیق

اگر نیاز دارید که هزینه‌ها را با دقت بیشتری نسبت به محدودیت روزانه کنترل و نظارت کنید، دستورالعمل‌های زیر به تنظیمات بیشتری نیاز دارند، اما هشدار و لغو را در سطح workload_tag ​​و وظایف دسته‌ای فعال می‌کنند.

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

پیکربندی هشدارها

شما می‌توانید هشدارها را در Cloud Monitoring پیکربندی کنید تا وقتی یک معیار به آستانه خاصی می‌رسد، به شما هشدار دهند. سیستم هشدار Cloud Monitoring بسیار انعطاف‌پذیر است. ما چند دستور غذای مورد علاقه خود را در اینجا جمع‌آوری کرده‌ایم، اما می‌توانید با تنظیمات سفارشی که متناسب با نیازهای شما است، آشپزی کنید.

دستور پخت: اعلان چت برای استفاده workload_tag

این مثال نشان می‌دهد که چگونه می‌توان در صورت تجاوز میزان استفاده از محاسبات Earth Engine برای یک workload_tag ​​مشخص از یک آستانه، یک اعلان چت (مثلاً یک پیام Google Chat یا یک پیام Slack) ایجاد کرد. این می‌تواند در مواردی مفید باشد که مجموعه‌ای از وظایف خروجی دارید که برای سرویس تولید شما داده ایجاد می‌کنند و می‌خواهید در صورت مصرف بیش از مقدار مشخصی از زمان EECU توسط آنها، مطلع شوید.

  1. از صفحه هشدار در بخش نظارت بر ابر در کنسول ابر دیدن کنید.
  2. برای پیکربندی یک سیاست هشدار جدید، «ایجاد سیاست» را انتخاب کنید.
  3. معیار را انتخاب کنید:
    • ثانیه‌های EECU در حال انجام، تعداد ثانیه‌های محاسباتی در حال انتظار (که هنوز موفق نشده‌اند) را نشان می‌دهد.
    • برای دیدن معیار، ممکن است لازم باشد فیلتر «فعال» را از حالت انتخاب خارج کنید.
  4. اضافه کردن فیلتر:
    • برای فیلتر کردن یک تگ حجم کاری خاص، workload_tag == your_workload_tag_value استفاده کنید.
    • برای فیلتر کردن نوع خاصی از محاسبات، compute_type = batch یا compute_type = online استفاده کنید.
  5. یک مقدار مناسب برای «پنجره‌ی متحرک» انتخاب کنید. اگر مطمئن نیستید، 5 min استفاده کنید.
  6. از منوی «تابع پنجره‌ی غلتان» گزینه‌ی «جمع» را انتخاب کنید. پیکربندی یک معیار برای هشدار
  7. ماشه هشدار را انتخاب کنید و نامی به آن بدهید.
  8. کانال‌های اعلان را انتخاب کنید.
    • برای این دستورالعمل، ما از پنجره‌ی modal گزینه‌ی «مدیریت کانال‌های اعلان» (Manage Notification Channels) و سپس «افزودن مورد جدید» (Add New) را انتخاب می‌کنیم تا شناسه‌ی فضای چت گوگل شما را وارد کنیم. این شناسه را می‌توانید هنگام مشاهده‌ی چت در URL صفحه‌ی جیمیل یا چت پیدا کنید.
    • اگر از گوگل چت استفاده می‌کنید، باید عبارت @Google Cloud Monitoring تایپ کنید و برنامه را انتخاب کنید تا برنامه Alerting به فضای شما اضافه شود (در صورتی که سازمان شما اجازه دهد).
  9. برچسب‌های سیاست و شدت مربوطه را انتخاب کنید.
  10. یک قطعه مستند کوتاه بنویسید.
  11. سیاست جدید هشداردهی خود را منتشر کنید!

پس از تنظیم، هر زمان که از آستانه تعیین‌شده برای پروژه شما فراتر رود، در فضای چت خود هشدار دریافت خواهید کرد.

دستور پخت: برای کل زمان EECU در حال انجام، هشدارهای ایمیلی دریافت کنید

دستورالعمل اعلان‌های چت را دنبال کنید، اما دو تغییر ایجاد کنید:

  1. مرحله‌ی اضافه کردن فیلتر workload_tag ​​را رد کنید تا بتوانید تمام مقادیر را ببینید.
  2. هنگام انتخاب کانال اعلان، به جای پیکربندی کانال چت، آدرس ایمیل خود را اضافه کنید.

تأخیر و زمان‌بندی هشدار

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

لغو وظایف سنگین از نظر منابع

با توجه به محدودیت، می‌توان از API موتور زمین برای بررسی دوره‌ای لیست وظایف در حال تعلیق و درخواست لغو هر وظیفه در حال اجرا که از محدودیت EECU-seconds فراتر می‌رود، استفاده کرد.

دستور کار: اجرای یک قطعه کد در یک نوت‌بوک یا پوسته محلی پایتون

eecu_seconds_limit = 50 * 60 * 60  # 50 hours
print("Watching for operations to cancel...")
while(True):
  for op in ee.data.listOperations():
    if op['metadata']['state'] == 'RUNNING':
      if op['metadata'].get('batchEecuUsageSeconds', 0) > eecu_seconds_limit:
        print(f"Cancelling operation {op['name']}")
        ee.data.cancelOperation(op['name'])
  time.sleep(10)  # 10 seconds