Trang này mô tả cách đặt hạn mức hằng ngày và theo dõi thời gian EECU đang diễn ra để giúp kiểm soát chi phí tính toán trong Earth Engine.
Giới hạn thời gian sử dụng thiết bị hằng ngày
Để kiểm soát chi phí Earth Engine, bạn có thể đặt giới hạn về lượng thời gian EECU mà dự án của bạn được phép sử dụng trong một ngày bằng cách cập nhật Hạn mức trên đám mây sau đây:
Earth Engine compute time (EECU-time) per day in seconds
: Hạn mức ở cấp dự án giới hạn tổng thời gian EECU của tất cả người dùng trong một dự án.
Để biết thêm thông tin về hạn mức Earth Engine mà bạn có thể đặt, hãy xem bài viết Hạn mức Earth Engine.
Đặt giới hạn hằng ngày
Bạn có thể xem và chỉnh sửa hạn mức trong trang Hạn mức và giới hạn hệ thống của Google Cloud Console. Khi bạn điều chỉnh một hạn mức, thay đổi đó sẽ có hiệu lực sau vài phút. Để đặt hoặc cập nhật giới hạn hằng ngày, hãy làm như sau:
- Kiểm tra để đảm bảo bạn có Quyền thay đổi hạn mức dự án đối với dự án đã chọn.
- Chuyển đến trang Hạn mức của Google Cloud Console.
- Sử dụng bộ lọc Chỉ số trong hộp tìm kiếm Bộ lọc để lọc
earthengine.googleapis.com/daily_eecu_usage_time
. Nếu bạn không thấy hạn mứcEarth Engine compute time (EECU-time) per day in seconds
, hãy xác minh rằng bạn đã bật Earth Engine API cho dự án đã chọn. - Nhấp vào Chỉnh sửa hạn mức trong trình đơn có biểu tượng ba dấu chấm.
- Nếu bạn chọn hộp đánh dấu Không giới hạn, hãy bỏ chọn hộp này.
- Nhập giới hạn bạn muốn tính bằng EECU-giây vào trường Giá trị mới. Nhấp vào Gửi yêu cầu.
Để biết thêm thông tin về cách xem và quản lý hạn mức, hãy xem bài viết Xem và quản lý hạn mức.
Thông báo lỗi được trả về
Sau khi bạn đặt giới hạn hằng ngày, Earth Engine sẽ trả về thông báo lỗi sau đây khi bạn vượt quá giới hạn:
Mức sử dụng của bạn đã vượt quá hạn mức tuỳ chỉnh cho "earthengine.googleapis.com/daily_eecu_usage_time". Quản trị viên có thể điều chỉnh hạn mức này trong Google Cloud Console: https://console.cloud.google.com/quotas/?project=_.
Sau khi vượt quá hạn mức, các yêu cầu của Earth Engine sẽ không thành công cho đến khi hạn mức được đặt lại vào ngày hôm sau hoặc quản trị viên tăng hạn mức.
Giám sát và cảnh báo chi tiết
Nếu bạn cần kiểm soát và theo dõi chi phí ở mức độ chi tiết hơn so với giới hạn hằng ngày, thì các công thức sau đây cần thiết lập nhiều hơn nhưng cho phép cảnh báo và huỷ ở cấp workload_tag
và cấp tác vụ hàng loạt.
Các công thức này sử dụng tính năng giám sát thời gian EECU đang diễn ra, được hiển thị cho các yêu cầu đang chạy. Hãy xem hướng dẫn Giám sát mức sử dụng để biết thêm thông tin về báo cáo thời gian EECU đang diễn ra trong Cloud Monitoring.
Định cấu hình cảnh báo
Bạn có thể định cấu hình cảnh báo trong Cloud Monitoring để cảnh báo cho bạn khi một chỉ số đạt đến một ngưỡng nhất định. Hệ thống cảnh báo của Cloud Monitoring rất linh hoạt. Chúng tôi đã thu thập một số công thức nấu ăn yêu thích tại đây, nhưng bạn có thể thoải mái nấu ăn với các cấu hình tuỳ chỉnh phù hợp với nhu cầu của mình.
Công thức: Thông báo trò chuyện khi sử dụng workload_tag
Ví dụ này cho thấy cách thiết lập một thông báo trò chuyện (ví dụ: tin nhắn Google Chat hoặc tin nhắn Slack) nếu mức sử dụng điện toán Earth Engine cho một workload_tag
nhất định vượt quá một ngưỡng. Điều này có thể hữu ích trong trường hợp bạn có một nhóm các tác vụ xuất tạo dữ liệu cho dịch vụ sản xuất của mình và bạn muốn được thông báo nếu các tác vụ này cùng nhau tiêu thụ nhiều hơn một lượng thời gian EECU nhất định.
- Truy cập vào trang Cảnh báo trong phần Giám sát đám mây của Cloud Console.
- Chọn "Tạo chính sách" để thiết lập một chính sách cảnh báo mới.
- Chọn chỉ số:
- Số giây EECU đang xử lý là số giây tính toán đang chờ xử lý (chưa thành công).
- Bạn có thể cần bỏ chọn bộ lọc "Đang hoạt động" để xem chỉ số này.
- Thêm bộ lọc:
- Sử dụng
workload_tag == your_workload_tag_value
để lọc theo một thẻ tải cụ thể. - Sử dụng
compute_type = batch
hoặccompute_type = online
để lọc theo một loại phép tính cụ thể.
- Sử dụng
- Chọn giá trị "Khoảng thời gian tích luỹ" phù hợp. Nếu bạn không chắc chắn, hãy sử dụng
5 min
. - Chọn "Sum" (Tổng) trong trình đơn "Rolling window function" (Hàm cửa sổ trượt).
- Chọn trình kích hoạt cảnh báo và đặt tên cho trình kích hoạt đó.
- Chọn kênh thông báo.
- Đối với công thức này, chúng ta sẽ chọn "Quản lý kênh thông báo" trong cửa sổ phương thức, sau đó chọn "Thêm mới" để dán mã nhận dạng không gian của Google Chat. Bạn có thể tìm thấy mã nhận dạng này trong URL của trang Gmail hoặc Chat khi xem cuộc trò chuyện.
- Nếu đang dùng Google Chat, bạn cũng cần nhập
@Google Cloud Monitoring
rồi chọn ứng dụng để thêm ứng dụng Cảnh báo vào Không gian (nếu tổ chức của bạn cho phép).
- Chọn chính sách và nhãn mức độ nghiêm trọng có liên quan.
- Viết một đoạn trích ngắn cho tài liệu.
- Xuất bản chính sách cảnh báo mới!
Sau khi thiết lập, bạn sẽ nhận được cảnh báo trong không gian trò chuyện bất cứ khi nào dự án của bạn vượt quá ngưỡng.
Công thức: Nhận cảnh báo qua email về tổng thời gian EECU đang diễn ra
Làm theo hướng dẫn về thông báo trò chuyện, nhưng thực hiện 2 thay đổi:
- Bỏ qua bước thêm bộ lọc
workload_tag
để có thể xem tất cả các giá trị. - Khi chọn một kênh thông báo, thay vì định cấu hình kênh trò chuyện, hãy thêm địa chỉ email của bạn.
Độ trễ và thời gian cảnh báo
Xin lưu ý rằng có một chút chậm trễ trong việc truyền tải Báo cáo giám sát, vì vậy bạn không nên mong đợi nhận được thông báo ngay lập tức.
Huỷ các tác vụ tiêu tốn nhiều tài nguyên
Trong giới hạn cho phép, bạn có thể dùng Earth Engine API để định kỳ kiểm tra danh sách các tác vụ đang chờ xử lý và yêu cầu huỷ mọi tác vụ đang chạy vượt quá giới hạn EECU-giây.
Công thức: Chạy một đoạn mã trong sổ tay hoặc trình bao Python cục bộ
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