python - 如何查看 Lambda /tmp 存储大小的大小?
问题描述
如何查看 AWS Lamdba 函数使用的存储空间大小?
例如,像这样可以检查文件是否存在:
import os
os.path.isfile('/tmp/' + filename)
但是,我需要知道何时达到 512 MB 限制。
解决方案
由于 Lambda 函数只是在 linux 环境中的容器上运行,我们可以使用操作系统来告诉我们在临时文件系统上还剩下多少空间。
from subprocess import check_output
out = str(check_output(["df", '-k']))
print(out)
result = re.search(r"(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\%\s+\/tmp", out)
size, used, available, used_pct = (int(g) for g in result.groups())
print(size, used, available, used_pct) # 538424 440 526148 1
这就是这里发生的事情。首先,我们使用该subprocess.check_output
函数运行命令:df -k
它显示有关磁盘空间使用信息的字符串(以 KB 为单位)。这是 lambda 函数的输出示例:
Filesystem 1K-blocks Used Available Use% Mounted on\n/dev/root 6127168 4978732 1132052 82% /\n/dev/vdb 1965904 45296 1904224 3% /dev\n/dev/loop0 538424 440 526148 1% /tmp\n
您可以看到在字符串的末尾是/tmp
分区所在的位置。因此,我们获取输出并使用正则表达式模式进行搜索:(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\%\s+\/tmp
它将相关字段分成 4 组,我们可以将它们设置为它们自己的变量,这些变量代表size
:总分区大小(以 KB 为单位)used
,:当前正在使用的空间量(以 KB 为单位)available
,:分区上仍然可用的空间量(以 KB 为单位),以及used_pct
:正在使用的分区空间的百分比。
这是获取可用空间的一种非常简单的方法,如果需要精确测量或猜测是否可以将新文件写入磁盘,我不会使用它。但是,如果您只是将其记录在执行以进行调试,那应该很好。
推荐阅读
- javascript - 通过 load() 加载内容后如何更改或附加到 URL
- acumatica - 行选择异常
- c - 回车时在多种显示记录格式之间切换
- java - Android 开发 - 编译正常,运行时崩溃
- html - CSS同级选择器不适用于过渡
- javascript - 不存在的 Smarty 错误?
- react-router - browserHistory 在 React-router 中不起作用
- java - 数组内的数组未按预期工作
- odbc - 使用 ODBC 数据源管理员在 Management Studio 中创建与 SAGE 50 US 数据库的链接服务器
- node.js - 无法在 express 中设置响应标头