本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SageMaker HyperPod 常見問
使用以下常見問題解答使用時的問題 SageMaker HyperPod。
問:為什麼在 Amazon 中找不到 SageMaker HyperPod 叢集的日誌群組 CloudWatch?
根據預設,代理程式記錄檔和執行個體啟動記錄檔會傳送至 HyperPod 平台帳戶的帳戶 CloudWatch。如果是使用者生命週期指令碼,生命週期設定記錄會傳送至您的帳戶 CloudWatch。
如果您使用 HyperPod 服務團隊提供的範例生命週期指令碼,您可以期望找到寫入的生命週期設定記錄檔/var/log/provision/provisioning.log
,而且不會遇到這個問題。
不過,如果您使用自訂路徑從生命週期佈建收集記錄檔,但找不到帳戶中顯示的記錄群組 CloudWatch,則可能是由於生命週期指令碼中指定的記錄檔路徑不相符,以及在 HyperPod 叢集執行個體上執行的 CloudWatch 代理程式尋找的內容。在這種情況下,這表示您必須正確設定生命週期指令碼,才能將記錄檔傳送至 CloudWatch 代理程式,並相應地設定 CloudWatch 代理程式組態。若要解決此問題,請選擇下列其中一個選項。
-
選項 1:更新生命週期指令碼以將記錄寫入
/var/log/provision/provisioning.log
。 -
選項 2:更新 CloudWatch 代理程式以尋找用於記錄生命週期佈建的自訂路徑。
-
每個 HyperPod 叢集執行個體都包含 JSON 格式的 CloudWatch 代理程式組態檔案,位於
/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json
。在組態檔案中,找到欄位名稱logs.logs_collected.files.collect_list.file_path
。使用預設設定時 HyperPod執行個體 SageMaker HyperPod 層級的記錄,鍵值對應"file_path": "/var/log/provision/provisioning.log"
如下所述。下面的代碼片段顯示了 JSON 文件的外觀與 HyperPod 默認配置。"logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/provision/provisioning.log", "log_group_name": "/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]", "log_stream_name": "LifecycleConfig/[InstanceGroupName]/{instance_id}", "retention_in_days": -1 } ] } }, "force_flush_interval": 3 }
-
將
"file_path"
欄位名稱的值取代為您在生命週期指令碼中使用的自訂路徑。例如,如果您已設定要寫入的生命週期指令碼/var/log/custom-provision/custom-provisioning.log
,請按如下方式更新值以與其相符。"file_path": "
/var/log/custom-provision/custom-provisioning.log
" -
使用組態檔重新啟動 CloudWatch 代理程式,以完成套用自訂路徑。例如,下列 CloudWatch 命令顯示如何從步驟 1 開始使用 CloudWatch 代理程 CloudWatch 式組態檔重新啟動代理程式。如需詳細資訊,另請參閱疑難排解 CloudWatch 代理程式。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json
-
問:Slurm 組態檔案中會 HyperPod 管理哪些特定組態,例如slurm.conf
和?gres.conf
當您在/opt/slurm/etc/
上建立 Slurm 叢集時 HyperPod, HyperPod 代理程式會設定slurm.conf
gres.conf
重要
我們強烈建議您不要變更由管理的這些參數 HyperPod。
-
在中
slurm.conf
, HyperPod 設定下列基本參數: ClusterName
SlurmctldHost
、PartitionName
、和NodeName
。此外,若要啟用此自動繼續功能, HyperPod 需要如下所示設定
TaskPlugin
和SchedulerParameters
參數。 HyperPod 代理程式預設會使用必要值來設定這兩個參數。TaskPlugin=task/none SchedulerParameters=permit_job_expansion
-
在中
gres.conf
, NodeName
針對 GPU 節點進行 HyperPod 管理。
問:如何在 Slurm 節點上執行泊塢視窗? HyperPod
為了協助您在上執行的 Slurm 節點上執行 Docker HyperPod, HyperPod 服務團隊會提供安裝指令碼,您可以將這些指令碼納入叢集建立的生命週期組態中。如需了解詳細資訊,請參閱 從 提供的基本生命週期指令碼開始 HyperPod 和 在 上的 Slurm 運算節點上執行 Docker 容器 HyperPod。
問:如何使用 P 執行個體的本機 NVMe 存放區,透過 Slurm 啟動 Docker 或 Enroot 容器?
由於主節點的預設根磁碟區通常受到 100GB EBS 磁碟區的限制,因此您需要設定 Docker 和 Enroot 來使用本機 NVMe 執行個體存放區。若要瞭解如何設定 NVMe 存放區並將其用於啟動 Docker 容器,請參閱。在 上的 Slurm 運算節點上執行 Docker 容器 HyperPod
問:如何設定 EFA 安全群組?
如果您想要使用已啟用 EFA 的執行個體建立 HyperPod 叢集,請務必設定安全性群組,以允許進出安全性群組本身的所有輸入和輸出流量。若要進一步了解,請參閱 Amazon EC2 使用者指南中的步驟 1:準備啟用 EFA 的安全群組。
問:如何監控 HyperPod 叢集節點? 是否有任何 CloudWatch 量度匯出來源 HyperPod?
若要瞭解叢集的資源使用率,我們建議您將 HyperPod 叢集與適用於 Prometheus 的 Amazon 受管服務與 Amazon 受管服務整合。 HyperPod 透過各種開放原始碼 Grafana 儀表板和匯出程式套件,您可以匯出並視覺化與 HyperPod 叢集資源相關的指標。若要進一步了解如何為 Prometheus 設 SageMaker HyperPod 定 Amazon 受管 Grafana 和 Amazon 託管服務,請參閱。SageMaker HyperPod 叢集資源監控請注意, SageMaker HyperPod 目前不支援將系統指標匯出至 Amazon。 CloudWatch
問:是否可以將額外的儲存新增至 HyperPod 叢集節點? 叢集執行個體的本機執行個體存放區有限。
如果預設執行個體儲存體不足以容納工作負載,您可以為每個執行個體設定額外的儲存體 從 2024 年 6 月 20 日發行開始,您可以將額外的 Amazon Elastic Block Store (EBS) 磁碟區新增至叢集中的每個執行個體。 SageMaker HyperPod 請注意,此功能無法套用至 2024 年 6 月 20 日之前建立的 SageMaker HyperPod叢集現有執行個體群組。您可以修補 2024 年 6 月 20 日之前建立的現有 SageMaker HyperPod 叢集,並在其中新增新的執行個體群組,以利用此功能。此功能對於 2024 年 6 月 20 日之後建立的任何 SageMaker HyperPod 叢集都完全有效。