跳至内容

如何检查我的 SageMaker 人工智能 Notebook 实例的资源利用率?

2 分钟阅读
0

我启动了一个 Amazon SageMaker 人工智能 Notebook 实例来训练模型或加载大型数据集,但 Notebook 实例似乎被冻结了。我无法查看我的 SageMaker 人工智能实例资源使用情况。

解决方法

当您的 SageMaker 浏览器或 Notebook 实例出现无响应时,运行 Amazon Linux 命令或检查 Amazon CloudWatch 指标以查看您的资源分配。

运行 Linux 命令以查看 SageMaker 人工智能资源利用率

完成以下步骤:

  1. 打开 SageMaker 人工智能控制台
  2. 在导航窗格中,选择 Notebook instances(Notebook 实例)。
  3. 在 SageMaker 人工智能 Notebook 实例旁边,打开 JupyterJupyterLab
  4. 打开终端。
  5. 运行以下命令以查看您的资源分配。
    可用系统内存和处理器负载:
    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 指标

完成以下步骤:

  1. 打开 SageMaker 人工智能控制台

  2. 在导航窗格中,选择 Notebook instances(Notebook 实例)。

  3. 在 SageMaker Notebook 旁边,打开 JupyterJupyterlab

  4. 打开终端。

  5. 运行以下命令打开 amazon-cloudwatch-agent-config-wizard

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  6. 按照向导中的步骤进行操作,然后在出现提示时完成以下步骤:
    选择 On-premises host(本地主机)。
    对于 StatsD Daemon(StatsD 守护程序),选择 no(否)。
    对于 CollectD,选择 no(否)。

  7. 运行以下命令以在服务器上启动 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
  8. 打开 CloudWatch 控制台

  9. 选择 Metrics(指标),然后选择 CWAgent 以查看您的 SageMaker 人工智能指标。

要查看其他适用于 SageMaker 人工智能 Notebook 的 AWS 生命周期配置脚本示例,请参阅 GitHub 网站上的 amazon-sagemaker-notebook-instance-lifecycle-config-samples

相关信息

使用 Amazon CloudWatch 监控 Amazon SageMaker 人工智能的指标

CloudWatch 代理收集的指标

用于监控使用 Amazon SageMaker 人工智能时预置的 AWS 资源的工具

JupyterLab 网站上的 Terminals