2016-03-11 89 views
0

我想知道如何確定我的應用程序正在驅動的IOPS,以便我可以對我們的雲基礎架構組件進行屬性大小調整。我理解數據庫和存儲層之間IOPS是什麼,但我想了解我如何計算我的應用程序驅動器。這裏是我的一些應用程序特性: 1)寫入90%,讀取10% 2)我們有一個基於java的應用程序,最終插入HBase數據庫 3)處理大約50 msg/sec,其中每個消息可能導致2 HBase插入如何計算我的應用程序iops利用率

以下是我不確定的: 1)計算IOPS的唯一方法是在加載期間在實際服務器上運行iostat或其他東西? 2)有沒有一種通用的方法可以計算出來的數據量和大小,而不是實際的存儲單元? 3)與每個事務中的事務數和字節數是否有任何關係(我在某處讀取IO通常是3K,大多數插入不包含那麼多的信息,因此無關緊要)。

任何幫助將不勝感激。

回答

0

不是很熟悉Hbase。但是從文檔來看,它使用日誌結構,這意味着寫入將是順序寫入。它也有壓縮,這將導致多MB的連續讀取和寫入。讀取查詢將導致存儲層上的隨機讀取。 因此,這裏是回答您的問題:

  1. 據我所知,是的。獲得IOPS的唯一方法是運行iostat。您可以從應用程序級別獲取一些壓縮統計數據。但很難提取IOPS級別的詳細信息。

  2. 壓縮會導致比整個數據大小更多的存儲空間。如果您的應用程序寫入很重(壓縮可能無法跟上插入的速度),實際數據量的大小將會更大。鑑於您的問題中有50 msg /秒,這不應該是這樣。我將配置磁盤的數量是每個實例的預期數據量的兩倍。

  3. 如上所述,Hbase是日誌結構化的。寫入在內存中累積並一起刷新到磁盤。所以每筆交易的規模都沒有關係。