You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Google Cloud Function运行时的剩余内存(Python环境)

解决方案

步骤1:添加依赖

在你的Cloud Function目录下创建requirements.txt文件,添加内存监控依赖:

psutil>=5.9.0

步骤2:编写Python代码

在函数代码中,利用psutil获取内存状态,计算依赖加载后的剩余内存,并通过标准日志模块输出到GCP日志资源管理器:

import logging
import psutil

# 全局区域:依赖加载完成后立即执行内存检测
def get_memory_stats():
    mem = psutil.virtual_memory()
    total_mb = mem.total / (1024 ** 2)
    used_mb = mem.used / (1024 ** 2)
    available_mb = mem.available / (1024 ** 2)
    return {
        "total_memory_mb": round(total_mb, 2),
        "used_memory_mb": round(used_mb, 2),
        "available_memory_mb": round(available_mb, 2)
    }

# 输出依赖加载完成后的内存日志
mem_stats = get_memory_stats()
logging.info(f"依赖加载完成后内存状态:总内存{mem_stats['total_memory_mb']}MB,已使用{mem_stats['used_memory_mb']}MB,剩余可用{mem_stats['available_memory_mb']}MB")

def your_cloud_function(request):
    # 可选:在数据处理前后分别记录内存,对比变化
    pre_process_mem = get_memory_stats()
    logging.info(f"处理数据前内存:已使用{pre_process_mem['used_memory_mb']}MB,剩余{pre_process_mem['available_memory_mb']}MB")
    
    # 这里编写你的数据处理逻辑(比如处理12MB数据)
    # ...
    
    post_process_mem = get_memory_stats()
    logging.info(f"处理数据后内存:已使用{post_process_mem['used_memory_mb']}MB,剩余{post_process_mem['available_memory_mb']}MB")
    
    return "处理完成"

关键说明

  • 内存指标解读:
    • total:对应你配置的Cloud Function总内存(512MB左右,系统会占用少量,实际显示略低于配置值)
    • used:已使用内存,包含依赖库、系统进程、当前函数进程的总占用
    • available:系统当前可分配的剩余内存,是判断是否能支撑后续数据处理的核心指标
  • 日志查看:使用Python标准logging模块输出的日志会自动同步到GCP日志资源管理器,可通过函数名称、日志级别(INFO)过滤检索
  • 检测时机:全局区域的内存检测会在依赖加载完成后立即执行,能精准反映依赖占用后的剩余内存;函数内的检测可对比数据处理前后的内存变化,排查内存峰值或泄漏问题

内容的提问来源于stack exchange,提问作者baxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:12:11