如何查看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
相关产品推荐
相关产品推荐

