本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWSSupport-TroubleshootWindowsPerformance
Description
執行手冊AWSSupport-TroubleshootWindowsPerformance
可協助疑難排解 Amazon 彈性運算雲端 (AmazonEC2) Windows 執行個體上持續的效能問題。runbook 會擷取目標執行個體的記錄檔,並分析CPU、記憶體、磁碟和網路效能指標。或者,自動化可以擷取處理作業傾印,以協助您判斷效能降低的潛在原因。自動化還捕獲事件和系統日誌通過使用最新的EC2Rescue
工具,如果你允許這個 runbook 安裝它。
它是如何工作的?
執行手冊執行下列步驟:
-
檢查 Amazon EC2 執行個體是否有先決條件。
-
在 Amazon EC2 Windows 執行個體的根磁碟中產生效能日誌
-
將擷取的記錄儲存在資料
C:\ProgramData\Amazon\SSM\TroubleshootWindowsPerformance
-
如果提供 Amazon Simple Storage Service (Amazon S3) 儲存貯體,且自動化假設角色具有所需的許可,則擷取的日誌會上傳到 Amazon S3 儲存貯體。
-
如果您選擇安裝 Amazon EC2 Windows 執行個體,請將最新
EC2Rescue
工具安裝到 Amazon Windows 執行個體以擷取事件和系統日誌,但不會分析所擷取的程序傾印和日誌EC2Rescue
。
重要
-
若要執行此執行手冊,Amazon EC2 視窗執行個體必須由 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
指示
請依照下列步驟設定自動化操作:
-
瀏覽至「文件」下
AWSSupport-TroubleshootWindowsPerformance
的「Systems Manager」。 -
選擇 Execute automation (執行自動化)。
-
對於輸入參數,請輸入以下內容:
-
AutomationAssumeRole (選擇性):
() 角色的 Amazon 資源名稱 AWS AWS Identity and Access Management (ARNIAM),可讓 Systems Manager 自動化代表您執行動作。如果未指定任何角色,Systems Manager 自動化會使用啟動此 runbook 的使用者的權限。
-
InstanceId (必填):
您要在其中執行自動化的目標 Amazon EC2 Windows 執行個體的識別碼。執行個體必須由系統管理員管理,才能執行自動化。
-
CaptureProcessDump (選擇性):
要擷取的處理作業傾印類型。自動化可以為處理序擷取一個處理序傾印,這些處理程序可能會在自動化開始時造成效能影響。執行個體根磁碟區至少需要 10 GB 的可用空間 (當根磁碟區大小超過 100 GB 時,超過磁碟大小的 10%,10 GB 加上處理程序消耗超過 10 GB 記憶體時所耗用的總記憶體大小)。
-
LogCaptureDuration (選擇性):
此自動化操作會在問題出現時擷取記錄檔的分鐘數 (介於
1
和15
之間)。預設值為5
。 -
LogUploadBucketName (選擇性):
您帳戶中要上傳日誌的 Amazon S3 儲存貯體。值區必須設定伺服器端 encryption (SSE),且儲存貯體政策不得將不必要的讀取/寫入權限授與不需要存取擷取記錄的對象。Amazon 視EC2窗執行個體必須能夠存取 Amazon S3 儲存貯體。
-
安裝EC2RescueTool(可選):
設定為
Yes
允許執行手冊安裝最新版本的EC2Rescue
工具,以擷取 Windows 事件和系統記錄檔。預設值為No
。 -
確認 (必填):
閱讀此自動化 runbook 執行的操作的完整詳細信息,如果您同意,請鍵入
Yes, I understand and acknowledge
。
-
-
選取執行。
-
自動化啟動。
-
文件會執行下列步驟:
-
CheckConcurrency:
確保只有一個執行此 runbook 針對實例。如果 runbook 找到另一個針對相同執行個體的執行,它會傳回錯誤並結束。
-
AssertInstanceIsWindows:
斷言 Amazon EC2 實例在 Windows 操作系統上運行。否則,自動化結束。
-
AssertInstanceIsManagedInstance:
聲明 Amazon 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
步驟可能會失敗或逾時。
-
-
完成後,請查看「輸出」部分以獲取執行的詳細結果:
目標執行處理具有所有必要先決條件的執行。
目標執行個體在 Linux 平台上且執行失敗的執行。您可以選取步驟 ID 以查看失敗詳細資訊。
步驟的失敗詳細資訊
AssertInstanceIsWindows
。
參考
Systems Manager Automation