如何從命令列監控我的 Lightsail 資源使用情況?
我在 Amazon Lightsail 託管的網站或應用程式關閉或執行速度非常緩慢。如何從命令列監控 Lightsail 資源使用情況,以便解決這些問題?
簡短描述
有幾個因素會影響 Lightsail 執行個體上執行的服務,包括高資源使用率。使用常用工具,您可以從命令列即時監控 Lightsail 執行個體上的 CPU、記憶體、磁碟 I/O 和網路使用情況等資源。
從命令列分析和監控 Lightsail 執行個體資源使用情況,可提供即時的系統洞察。這還可以提供哪些程序使用最多 CPU、記憶體、磁碟 I/O 或網路的精密檢視。
以下是您可以用於從命令列分析和監控 Lightsail 執行個體資源的資源:
- atop 工具
- htop 工具
- iostat、vmstat 和 mpstat 命令
解決方案
atop 工具
atop 工具會報告所有程序的活動,即使這些程序已在指定間隔內完成。該工具會持續記錄所有相關系統資訊。由於該持續記錄,如果問題再次發生,您必須分析歷程資料。atop 工具包含在大多數 Linux 發行版的官方儲存庫中。執行下列命令來安裝 atop 工具:
以 Red Hat 為基礎的系統
$ sudo yum install atop
以 Debian 為基礎的系統
$ sudo apt install atop
atop 工具預設會以 600 秒的間隔記錄所有活動。若要變更 atop 工具的組態,以便活動以 60 秒的間隔記錄,請執行下列命令:
以 Red Hat 為基礎的系統
$sudo sed 's/600/60/' /etc/atop/atop.daily -i
以 Debian 為基礎的系統
$ sudo sed 's/600/60/' /etc/default/atop -i
執行上述命令之後,atop 會記錄 60 秒間隔的所有活動。該資料存放在 /var/log/atop 的日誌檔案中。這些檔案會以下列格式命名:"atop_ccyymmdd"。舉例來說,"atop_20210902" 是 2021 年 9 月 2 日的記錄。
若要存取日誌檔案,請執行命令 atop -r atologfilepath。命令和日誌檔案如以下範例中所示:
atop -r /var/log/atop/atop_20210902 ATOP - ip-172-20-139-91 2021/09/02 17:03:44 ---------------- 3h33m7s elapsed PRC | sys 6.51s | user 7.85s | #proc 103 | #tslpi 81 | #tslpu 0 | #zombie 0 | #exit 0 | CPU | sys 0% | user 3% | irq 0% | idle 197% | wait 0% | ipc notavail | curscal ?% | cpu | sys 0% | user 1% | irq 0% | idle 98% | cpu000 w 0% | ipc notavail | curscal ?% | cpu | sys 0% | user 1% | irq 0% | idle 98% | cpu001 w 0% | ipc notavail | curscal ?% |
在上述輸出範例中,第一個記錄的快照的擷取時間為 2021/09/02 17:03:44。若要向前移至下一個快照,可以按鍵盤上的 ‘t’ 鍵。若要向後移至上一個快照,可以按 "T" (大寫的 "t") 鍵。
以下是您可以啟動 atop 的常用選項:
依記憶體排序
$ atop -m
依磁碟詳細資訊排序
$ atop -d
依網路詳細資訊排序
$ atop -n
htop 工具
htop 工具是 Linux 的互動式和即時程序監控應用程式,可顯示每個 CPU 或核心的使用情況。該工具還提供記憶體和交換使用情況的有意義文字圖表。
執行下列命令以安裝 htop:
以 Red Hat 為基礎的系統
$ sudo yum install htop
以 Debian 和 Ubuntu 為基礎的系統
$ sudo apt install htop
使用下列命令在您的系統上執行 htop:
$ htop
htop 工具列出了系統上所有執行中的程序,並包含每個程序正在使用多少 CPU 和記憶體的資訊。此外還包含用於啟動程序的命令。
以下是輸出中每一欄的定義:
- **PID:**程序的處理 ID 號碼。
- **BUSER︰**程序擁有者。
- **PR:**程序的優先順序。數字越小,優先順序越高。
- **NI︰**該程序的良好值,這會影響其優先順序。
- **VIRT:**程序正在使用多少虛擬記憶體。
- **RES:**程序正在使用多少實體 RAM (以千位元組為單位)。
- **SHR:**程序正在使用多少共享記憶體。
- **S:**程序的目前狀態 (殭屍、睡眠、執行中、不間斷睡眠或追踪)。
- **CPU:**程序使用的處理器時間百分比。
- **MEM:**程序使用的實體 RAM 百分比。
- **TIME+:**程序使用了多少處理器時間。
- **命令:**啟動程序的命令名稱。
iostat、vmstat 和 mpstat 命令
iostat、vmstat 和 mpstat 命令是系統管理系統服務包的一部分。使用下列命令在您的 Lightsail 執行個體中安裝該工具集:
以 Red Hat 為基礎的系統,例如 Amazon Linux、CentOS 或 RHEL
$ sudo yum install sysstat
Debian 和 Ubuntu
$ sudo apt-get install sysstat
使用下列命令來啟動並啟用 sysstat 以進行持續資料收集:
$ sudo systemctl start sysstat
$ sudo systemctl enable sysstat
'iostat' 命令
iostat 命令會收集並顯示系統輸入和輸出儲存裝置統計資料。該工具通常用於追蹤儲存裝置效能問題,包括裝置和磁碟。以下是常見的 iostat 選項:
- **iostat︰**取得報告和統計資料。
- **iostat -x︰**顯示更詳細的統計資訊。
- **iostat -c︰**只顯示 CPU 統計資料。
- **iostat -d︰**只顯示裝置報告。
- **iostat -xd︰**只顯示裝置的延伸 I/O 統計資料。
以下是範例 iostat 命令輸出:
$ iostat Linux 4.14.246-187.474.amzn2.x86_64 10/22/2021 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.34 0.00 1.36 1.06 1.67 90.58 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 41.64 1496.90 890.16 502148 298612
'vmstat' 命令
vmstat (虛擬記憶體統計資料) 命令會收集並顯示有關系統記憶體、程序、中斷、分頁和區塊 I/O 的資訊。vmstat 命令可讓您指定抽樣間隔,以便以近乎即時的方式觀察系統活動。以下是 vmstat 命令和輸出的範例:
$ vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 0 1409320 2088 485404 0 0 568 724 232 393 4 2 93 1 1 0 0 0 1409332 2088 485404 0 0 0 67 146 261 0 0 100 0 0 0 0 0 1408916 2088 485404 0 0 0 0 157 276 0 0 100 0 0 0 0 0 1408980 2088 485408 0 0 0 0 161 259 0 0 100 0 0 0 0 0 1408984 2088 485408 0 0 0 0 105 190 0 0 100 0 0
以下是您可以搭配 vmstat 命令使用的常用選項:
-a 選項會顯示系統的作用中和非作用中記憶體:
$ vmstat -a procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 1402016 311232 218864 0 0 60 77 74 129 0 0 99 0 0
-d 選項會報告磁碟統計資料:
$ vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec nvme0n1 7728 25 433681 4544 3133 93 555950 4196 0 1
'mpstat' 命令 mpstat 命令會收集並顯示系統中所有邏輯處理器的效能統計資料。在沒有選項的情況下執行 mpstat 命令會產生單一報告,其中包含開機時間以來所有邏輯處理器的效能統計資料。
$ mpstat Linux 4.18.0-305.el8.x86_64 (ip-xxx-xx-x-xx.ec2.internal) 10/27/2021 _x86_64_ (2 CPU) 04:23:26 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:23:26 PM all 8.42 0.13 2.43 1.49 0.18 0.05 0.22 0.00 0.00 87.08
上述範例中的第一行為欄標籤集。第二行是每欄的值:
- **%usr︰**使用者層級的 CPU 使用率 (%)。
- **%nice︰**標記為「良好」的使用者程序 CPU 使用率 (%)。
- **%sys︰**在系統 (Linux 內核) 層級的 CPU 使用率 (%)。
- **%iowait︰**磁碟讀取/寫入閒置等待的 CPU 使用率 (%)。
- **%irq:**處理硬體中斷的 CPU 使用率 (%)。
- **%soft︰**處理軟體中斷的 CPU 使用率 (%)。
- **%盗:**被迫等待 Hypervisor 處理其他虛擬程序的 CPU 使用率 (%)。
- **%Guest:**執行虛擬處理器花費的 CPU 使用率 (%)。
- **idle︰**閒置時間的 CPU 使用率 (%) (沒有程序,並未等待磁碟讀取/寫入)。
使用上述命令列工具,您可以識別具有高資源使用率的程序。而且,您可以使用該資訊來選擇具有充足資源供工作負載使用的執行個體。
相關內容
- 已提問 1 年前lg...
- 已提問 4 個月前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前