用於容量規劃的準確趨勢隨機 I/O 性能
在我工作的地方,我們有許多“大鐵”伺服器,用於託管許多使用 Xen Hypervisor 的虛擬機。這些通常配置有 32GB RAM、雙四核程序和具有大量 I/O 容量的快速磁碟。
我們正處於現有硬體配置變得有點長的時間點,是時候走出去尋找更大、更快、更閃亮的新硬體了。
如上所述,現有套件已部署 32GB RAM,這有效地限制了我們可以部署到主機的 VM 數量。
不過,在研究較新的硬體時,很明顯,您可以在單個機箱中獲得越來越多的 RAM,即 64、72 甚至 96GB。顯然,這將使我們能夠為給定的主機獲得更多的機器,這總是一個勝利。到目前為止完成的分析表明,限制因素現在將轉移到磁碟子系統。
現在的問題是,試圖了解我們所處的位置……根據使用情況,我們知道我們在 I/O 頻寬方面不受限制,更重要的是,隨機 I 的數量可以完成的 /O 操作.. 有趣的是,一旦我們達到這一點,iowait 就會飛速發展,整個機器的性能就會變得很糟糕。
現在這是我要問的問題的癥結所在,有沒有人知道一種方法來準確跟踪/趨勢現有 I/O 性能,特別是與正在完成的隨機 I/O 操作的數量相關?
我真正想要獲得的指標是“此配置可以成功處理 X 個隨機 I/O 請求,並且我們目前(平均而言)正在執行 Y 操作,峰值為 Z 操作”。
提前致謝!
sar
在這裡做得很好;它將收集每秒讀取/寫入的事務數和扇區數,然後可用於以相對不錯的準確性重播您的 IO 工作負載(在讀/寫比率以及事務大小方面,即IO 的“隨機”程度的決定因素)。它並不完美,但根據我的經驗,它可以很好地完成您正在查看的那種估計。
因此,這看起來像是一個監控和容量報告問題。如果您要開始測量趨勢統計數據,我會全面了解,以便您進行比較、關聯等。
在工具方面,你有開源世界中的 ganglia、zenoss、nagios 等,以及許多其他供應商產品。
您可以將它們配置為跟踪、衡量和儲存您感興趣的 KPI,然後定期報告它們。
鑑於您對 RAM 使用情況的查詢,將記憶體統計資訊、交換使用情況和 CPU 也包括在內是有意義的,這樣您就可以在同一時間段內全面比較它們,看看哪些是受到限制的,等等。
擷取數據後,您可以將其全部儲存在一個不錯的大數據庫中以進行報告,可能會整理歷史數據,例如。將每 5 秒的指標儲存 6 個月,然後按分鐘,然後按 5 秒,然後按小時儲存,然後再返回。這類事情可以編寫腳本並通過 cron、autosys 等執行。
這些報告將為您提供管理層想要的 - 即。帶有漂亮圖表的東西。
對於日常管理,您可以通過控制台查看圖表/數字上的實時資訊,以了解您在任何特定時刻的表現。