我启动了一个 Amazon SageMaker 人工智能 Notebook 实例来训练模型或加载大型数据集,但 Notebook 实例似乎被冻结了。我无法查看我的 SageMaker 人工智能实例资源使用情况。
解决方法
当您的 SageMaker 浏览器或 Notebook 实例出现无响应时,运行 Amazon Linux 命令或检查 Amazon CloudWatch 指标以查看您的资源分配。
运行 Linux 命令以查看 SageMaker 人工智能资源利用率
完成以下步骤:
- 打开 SageMaker 人工智能控制台。
- 在导航窗格中,选择 Notebook instances(Notebook 实例)。
- 在 SageMaker 人工智能 Notebook 实例旁边,打开 Jupyter 或 JupyterLab。
- 打开终端。
- 运行以下命令以查看您的资源分配。
可用系统内存和处理器负载:
top
正在运行的任务和处理器负载:
ps -ax
磁盘空间利用率和可用性:
df -h
RAM 利用率和可用性:
free -m
使用 CloudWatch 指标查看 SageMaker 人工智能资源利用率
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
使用生命周期脚本。例如,publish-instance-metrics 脚本将系统级指标从 Notebook 实例发布到 CloudWatch。有关详细信息,请参阅 GitHub 网站上的 publish-instance-metrics / on-start.sh。
**注意:**要向 CloudWatch 发送实例指标,实例必须代入 AWS Identity and Access Management (IAM) 执行角色。将 cloudwatch:PutMetricData 权限添加到附加到执行角色的 IAM 策略中。
策略示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect":
"Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": "*"
}
]
}
当您为生命周期配置启用 CloudWatch Logs 时,请使用具有以下权限的 SageMaker 角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect":
"Allow",
"Action": [
"logs:CreateLogDelivery",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DeleteLogDelivery",
"logs:Describe*",
"logs:GetLogDelivery",
"logs:GetLogEvents",
"logs:ListLogDeliveries",
"logs:PutLogEvents",
"logs:PutResourcePolicy",
"logs:UpdateLogDelivery"
],
"Resource": "*"
}
]
}
确保 Notebook 实例具有互联网连接以获取 amazon-cloudwatch-agent.json 配置文件,以免脚本失败。如果 Notebook 上无法访问互联网,请手动将 .json 文件从 GitHub 下载到本地计算机。将文件上传到 Amazon Simple Storage Service (Amazon S3) 存储桶,然后修改 bash 代码以从 S3 存储桶中复制配置文件。在 on-start.sh LLC 脚本中,运行 wget 命令以删除使用 wget 命令的行。然后,添加 s3 cp AWS CLI 命令以将 .json 文件从 S3 存储桶复制到一个目录中。最佳做法是将 CloudWatch 代理文件放在一个目录中,然后运行以下命令启动代理:
``/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a \
append-config -m ec2 -c file://$(pwd)/amazon-cloudwatch-agent.json
确保创建接口虚拟私有云 (VPC) 端点,以便您可以访问其他 AWS 服务,例如 Amazon S3 和 CloudWatch。
配置 SageMaker 人工智能 Notebook 以查看 CloudWatch 指标
完成以下步骤:
-
打开 SageMaker 人工智能控制台。
-
在导航窗格中,选择 Notebook instances(Notebook 实例)。
-
在 SageMaker Notebook 旁边,打开 Jupyter 或 Jupyterlab。
-
打开终端。
-
运行以下命令打开 amazon-cloudwatch-agent-config-wizard:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
-
按照向导中的步骤进行操作,然后在出现提示时完成以下步骤:
选择 On-premises host(本地主机)。
对于 StatsD Daemon(StatsD 守护程序),选择 no(否)。
对于 CollectD,选择 no(否)。
-
运行以下命令以在服务器上启动 CloudWatch 代理,并添加向导创建的 config.json 文件:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:///opt/aws/amazon-cloudwatch-agent/bin/config.json -s
-
打开 CloudWatch 控制台。
-
选择 Metrics(指标),然后选择 CWAgent 以查看您的 SageMaker 人工智能指标。
要查看其他适用于 SageMaker 人工智能 Notebook 的 AWS 生命周期配置脚本示例,请参阅 GitHub 网站上的 amazon-sagemaker-notebook-instance-lifecycle-config-samples。
相关信息
使用 Amazon CloudWatch 监控 Amazon SageMaker 人工智能的指标
CloudWatch 代理收集的指标
用于监控使用 Amazon SageMaker 人工智能时预置的 AWS 资源的工具
JupyterLab 网站上的 Terminals