Amazon-Ec2

EC2 實例上的實時突發 IO 平衡

  • November 4, 2017

我正在嘗試使用 60 GiB gp2 卷解決 ec2 實例上的一些磁碟性能問題。雲觀察指標似乎不是很細。有沒有辦法實時查看突發餘額,例如通過在 ssh 進入機器時拖尾一些文件?

這是不可能的,因為這些指標並非源自實例內部。突發餘額由 EBS 維護,而不是 EC2。確切地說,在基礎架構中計算它的位置沒有記錄,但無論如何它在您的 VM 外部。

從實例內部以高粒度觀察 I/O 可以使用iostat. 我發現這些論點-x 1很有用。最右側的 % 指標表明您的實例對基於等待時間驅動卷的難度的感知。

接近 100% 的數字意味著您正在使某些東西飽和*,*儘管某些東西是多種因素的複雜組合。當從快照創建 EBS 卷並且仍在預熱時,通常會看到接近 100% 的使用率,即使您只看到 5 到 10 MB/s 的吞吐量,因為您正在飽和的是 EBS 內部的預熱過程(從快照數據將塊載入到卷上;這個後台任務允許從快照中如此快速地創建大卷——數據在邏輯上位於新卷上,但可能尚未物理上位於新卷上) . 使您的實例的乙太網頻寬達到 EBS 飽和也會導致較高的 % 值,即使卷本身俱有可用的空閒容量。


獎勵:這是我想出的一個小單線,讓iostat顯示更像“控制台”視圖,而不是連續滾動螢幕。它使用系統 perl 添加一些 ansi 轉義序列來重新格式化輸出。就像在 Ubuntu 上寫的一樣工作,大概也可以在 Amazon Linux 上工作。執行iostat似乎對系統本身沒有任何有意義的負載,因此在任何伺服器上使用都應該是安全的。

iostat -x 1 | perl -pe 'BEGIN { $_ = 1; print "\e[1;1H\e[0J" } print "\e[3;1H" if /^avg\-cpu/; chomp; $_ .= "\e[0K\n"'

引用自:https://serverfault.com/questions/881784