AWSSupport-TroubleshootWindowsPerformance - AWS Systems Manager 自動化手冊參考

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWSSupport-TroubleshootWindowsPerformance

Description

執行手冊AWSSupport-TroubleshootWindowsPerformance可協助疑難排解 Amazon Elastic Compute Cloud (Amazon EC2) Windows 執行個體上持續的效能問題。runbook 會擷取目標執行個體的記錄檔,並分析 CPU、記憶體、磁碟和網路效能指標。或者,自動化可以擷取處理作業傾印,以協助您判斷效能降低的潛在原因。自動化還捕獲事件和系統日誌通過使用最新的EC2Rescue工具,如果你允許這個 runbook 安裝它。

它是如何工作的?

執行手冊執行下列步驟:

  • 檢查 Amazon EC2 執行個體是否有先決條件。

  • 在 Amazon EC2 Windows 執行個體的根磁碟中產生效能日誌

  • 將擷取的記錄儲存在資料 C:\ProgramData\Amazon\SSM\TroubleshootWindowsPerformance

  • 如果提供 Amazon Simple Storage Service (Amazon S3) 儲存貯體,且自動化假設角色具有所需的許可,則擷取的日誌會上傳到 Amazon S3 儲存貯體。

  • 如果您選擇安裝,請將最新EC2Rescue工具安裝到 Amazon EC2 Windows 執行個體以擷取事件和系統日誌,但不會分析所擷取的程序傾印和日誌EC2Rescue

重要
  • 要執行此操作手冊,Amazon EC2 Windows 實例必須由 AWS Systems Manager管理。如需詳細資訊,請參閱為什麼我的 Amazon EC2 執行個體不顯示為受管節點

  • 要執行此手冊,Amazon EC2 視窗實例必須在版本上運行視窗 8.1 /視窗服務器 2012 R2(6.3)或更高版本 PowerShell 4.0 或更高版本。如需詳細資訊,請參閱 Windows 作業系統版本

  • 若要產生效能記錄,根裝置上至少需要 10 GB 的可用空間。如果根磁碟大於 100 GB,則可用空間必須大於磁碟大小的 10%。如果您在執行期間傾印處理程序,則可用空間必須大於 10 GB,再加上處理程序消耗超過 10 GB 記憶體時,處理序使用的總記憶體大小。

  • 系統不會自動刪除根裝置上產生的記錄。

  • 工作流程簿不會解除安裝工EC2Rescue具。如需詳細資訊,請參閱EC2Rescue於 Windows 伺服器

  • 最佳做法是在效能影響期間執行此自動化。您也可以使用 AWS Systems Manager 狀態管理員關聯或排程 AWS Systems Manager 維護視窗來定期執行它。

運行此自動化(控制台)

文件類型

 自動化

擁有者

Amazon

平台

Windows

參數

必要的 IAM 許可

AutomationAssumeRole參數需要下列動作才能成功使用 runbook。

  • ec2:DescribeInstances

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeInstanceInformation

  • ssm:GetAutomationExecution

  • ssm:ListCommands

  • ssm:ListCommandInvocations

  • ssm:SendCommand

  • s3:ListBucket

  • s3:GetEncryptionConfiguration

  • s3:GetBucketPublicAccessBlock

  • s3:GetBucketPolicyStatus

  • s3:PutObject

  • s3:GetBucketAcl

  • s3:GetAccountPublicAccessBlock

(選擇性) 附加在執行個體設定檔上的 IAM 角色或在執行個體上設定的 IAM 使用者需要執行下列動作,才能將日誌上傳到為參數指定的 Amazon S3 儲存貯體LogUploadBucketName

  • s3:PutObject

  • s3:GetObject

  • s3:ListBucket

指示

請依照下列步驟設定自動化操作:

  1. 瀏覽至「文件」下AWSSupport-TroubleshootWindowsPerformance的「Systems Manager」。

  2. 選擇 Execute automation (執行自動化)。

  3. 對於輸入參數,請輸入以下內容:

    • AutomationAssumeRole (選擇性):

      (IAM) 角色的 Amazon 資源名稱 AWS AWS Identity and Access Management (ARN),可讓 Systems Manager 自動化代表您執行動作。如果未指定任何角色,Systems Manager 自動化會使用啟動此 runbook 的使用者的權限。

    • InstanceId (必填):

      您要在其中執行自動化的目標 Amazon EC2 Windows 執行個體的識別碼。執行個體必須由系統管理員管理,才能執行自動化。

    • CaptureProcessDump (選擇性):

      要擷取的處理作業傾印類型。自動化可以為處理序擷取一個處理序傾印,這些處理程序可能會在自動化開始時造成效能影響。執行個體根磁碟區至少需要 10 GB 的可用空間 (當根磁碟區大小超過 100 GB 時,超過磁碟大小的 10%,10 GB 加上處理程序消耗超過 10 GB 記憶體時所耗用的總記憶體大小)。

    • LogCaptureDuration (選擇性):

      此自動化操作會在問題出現時擷取記錄檔的分鐘數 (介於115之間)。預設值為 5

    • LogUploadBucketName (選擇性):

      您帳戶中要上傳日誌的 Amazon S3 儲存貯體。值區必須設定伺服器端加密 (SSE),且儲存貯體政策不得將不必要的讀取/寫入權限授與不需要存取擷取記錄的對象。Amazon EC2 視窗執行個體必須能夠存取 Amazon S3 儲存貯體。

    • 安裝 2RescueTool (可選):

      設定為Yes以允許執行手冊安裝最新版本的EC2Rescue工具,以擷取 Windows 事件和系統記錄檔。預設值為 No

    • 確認 (必填):

      閱讀此自動化 runbook 執行的操作的完整詳細信息,如果您同意,請鍵入Yes, I understand and acknowledge

  4. 選取執行。

  5. 自動化啟動。

  6. 文件會執行下列步驟:

    • CheckConcurrency:

      確保只有一個執行此 runbook 針對實例。如果 runbook 找到另一個針對相同執行個體的執行,它會傳回錯誤並結束。

    • AssertInstanceIsWindows:

      斷言 Amazon EC2 實例在 Windows 操作系統上運行。否則,自動化結束。

    • AssertInstanceIsManagedInstance:

      聲明亞馬遜 EC2 執行個體由 AWS Systems Manager管理。否則,自動化結束。

    • VerifyPrerequisites:

      驗證執行個體作業系統上的 PowerShell 版本,並確保執行個體可透過 Systems Manager 連線以執行 PowerShell 指令。這種自動化支持 PowerShell 4.0 及以上版本上運行視窗 8.1 /服務器2012 R2(6.3)或更高版本。如果版本較舊,則自動化會失敗。當您選擇將日誌上傳到 Amazon S3 儲存貯體時,此自動化會檢查 PowerShell 模組的 AWS 工具是否可用。如果沒有,自動化結束。

    • BranchOnProcessDump:

      根據您是否將其設置為捕獲影響性能的進程的轉儲進程的分支。

    • CaptureProcessDump:

      檢查執行個體是否有足夠的空間來執行此自動化操作 (當您選擇最高 CPU/記憶體時)。

    • CapturePerformanceLogs:

      再次檢查磁碟空間,並在執行個體上執行 PowerShell 指令碼,以建立 perfmon 計數器,並啟動效能監視器和 Windows 效能錄製程式記錄。指令碼會在定義LogCaptureDuration的符合後停止。

    • SummarizePerformanceLogs:

      摘要在上一個步驟中產生的 XML 報告CapturePerformanceLogs,以找出在自動化上顯示為輸出顯示最多 WorkingSet 64 (記憶體) 和% 處理器時間 (CPU) 的負責處理程序。它會生成類似的信息 LogicalDisk,網絡接口,內存,TCPv4,IPv4 和 UDpv4 的使用,並將其保存到analysis_output.log輸出文件夾中。

    • BranchOnInstallEC2Rescue:

      如果您將其設定為在 Amazon EC2 執行個體中安裝最新EC2Rescue工具,則分支機構。

    • InstallEC2RescueTool:

      在執行個體作業系統中安裝EC2Rescue工具,以使用擷取EC2Rescue記錄檔AWS-ConfigureAWSPackage

    • RunEC2RescueTool:

      在執行個體作業系統中執行EC2Rescue工具,以擷取所需的所有記錄。 EC2Rescue僅擷取必要的記錄檔以節省空間。

    • BranchOnIfS3BucketProvided:

      根據使用者輸入的分支,LogUploadBucketName以查看是否有值區名稱可用於上傳記錄。

    • GetS3BucketPublicStatus:

      判斷是否提供 Amazon S3 儲存貯體,如果是,請確認 Amazon S3 儲存貯體不是公開的,且已使用 SSE 進行設定。

    • UploadLogResult:

      將日誌上傳到提供的 Amazon S3 儲存貯體。如果 PowerShell 版本為 5.0 或更高版本,它會將日誌壓縮為 ZIP 存檔並上傳它們。它會在上傳完成後刪除 ZIP 文件。如果 PowerShell 版本低於 5.0,它將文件直接上傳到文件夾。

    • CleanUpLogsOnFailure:

      當步驟失敗時,會清除CapturePerformanceLogs步驟產生的所有記錄檔。如果 SSM 代理程式無法正常運作,或 Windows 系統沒有回應,此CleanUpLogsOnFailure步驟可能會失敗或逾時。

  7. 完成後,請查看「輸出」部分以獲取執行的詳細結果:

    目標執行處理具有所有必要先決條件的執行。

    目標執行個體在 Linux 平台上且執行失敗的執行。您可以選取步驟 ID 以查看失敗詳細資訊。

    步驟的失敗詳細資訊AssertInstanceIsWindows

參考

Systems Manager Automation