天天看點

【虛拟化實戰】存儲設計之六latency

作者:範軍 (Frank Fan)新浪微網誌:@frankfan7

Latency過高直接導緻在該存儲上運作虛拟機以及其應用的性能降低。最終使用者可能抱怨程式打不開,運作慢,響應時間長等等。

一如何衡量Latency?

Latency或者responding time,指完成一個IO請求所需要的時間。往往以milliseconds來衡量。

應用端發出的一個IO請求,大緻要經過以下各層才能最終抵達儲存設備。

<a href="http://s3.51cto.com/wyfs02/M01/27/A5/wKiom1N0THyQsV9uAAEBBvEbJnA406.jpg" target="_blank"></a>

使用esxtop可以得到以下的資料

CMDS/s:   在大多數情況下這個值就是IOPS的值。指的是每秒鐘發出的IO請求。

DAVG/cmd(Device Average Latency) :  每個請求經過實體硬體,HBA和儲存設備所需的平均響應時間。以毫秒計算。一般20-30ms可以接受.

KAVG/cmd(Kernel Average Latency) : 平均每個請求經過VMkernel層處理所需的時間。一般為0.如果超過2ms,可能會影響性能

QAVG(Queue Average latency):  平均每個請求經過vSphere存儲堆棧所需的時間。當隊列很長時,每個請求等待的時間也較長。

GAVG/cmd(Guest Average Latency) :平均每個請求最終所得到響應時間,也就是虛拟機作業系統所得到值  DAVG + KAVG = GAVG

一般20-30ms可以接受。這對于latency Sensitive很高的應用,要求這個值盡可能低。比如有些關鍵的資料庫操作,大于5ms可能都不能保證Transaction的成功完成。

二    latency過高原因分析:

一個常見的誤區是僅僅考慮所需容量,沒有充分考慮到IOPS/Latency/Throughput等影響性能的因素。比如應用需要10T的容量,有可能需要購買20T甚至更多的存儲來滿足性能需求。應該與存儲廠商充分讨論一個合理的方案及細節。比如采用什麼RAID,陣列中DiskSpindle的個數,什麼類型的存儲硬碟。

設計充分考慮該存儲所支援的應用。很多應用都有不同的特性,比如I/O Size,讀寫操作的比例等等。應針對其特性來設計适當的存儲方案。

I/O 隊列擁塞

<a href="http://s3.51cto.com/wyfs02/M01/27/A5/wKioL1N0S_fwiORMAAC1r8uuQa8951.jpg" target="_blank"></a>

從上圖可以看到從上到下的四層都有隊列。隊列中等待執行的任務越長,意味着更長的響應時間。

在ESXi主機層的隊列過長,直接導緻KAVG數值過高。

在HBA和存儲陣列的隊列過長,導緻DAVG數值過高

比如有多個I/O intensive的虛拟機在同一個LUN的時候,需要考慮把部分虛拟機轉移到其他LUN以避免ActiveCommands的總數持續超過LUNQueueDepth,進而造成延時。

HBA這層也有隊列,通常4,000 commandsper port 或者更高。是以一般瓶頸不在HBA層。

存儲帶寬飽和

考慮HBA卡的支援的帶寬,以及采用多路徑來對負載分流。避免請求經過實體硬體,HBA和儲存設備所需的平均響應時間過高。

參考:

<a href="https://communities.vmware.com/docs/DOC-25253" target="_blank">Performance Links</a>

<a href="http://event.on24.com/eventRegistration/console/EventConsoleNG.jsp?uimode=nextgeneration&amp;eventid=731315&amp;sessionid=1&amp;key=88E29A81BAE75D936CDB39155E2830F2&amp;format=fhaudio&amp;contenttype=A&amp;playerwidth=1000&amp;playerheight=750&amp;mediametricid=1194440&amp;mode=launch&amp;eventserver=http://event.on24.com&amp;eventuserid=93688613&amp;usercd=93688613&amp;mediametricsessionid=74163134&amp;mode=launch" target="_blank">VMUG Presentation - Troubleshooting StoragePerformance</a>

<a href="https://blogs.vmware.com/vsphere/2012/05/troubleshooting-storage-performance-in-vsphere-part-1-the-basics.html" target="_blank">TroubleshootingStorage Performance in vSphere – Part 1 – The Basics</a>

<a href="http://www.vmware.com/files/pdf/techpaper/VMW-Tuning-Latency-Sensitive-Workloads.pdf" target="_blank">http://www.vmware.com/files/pdf/techpaper/VMW-Tuning-Latency-Sensitive-Workloads.pdf</a>

本文轉自frankfan751CTO部落格,原文連結:http://blog.51cto.com/frankfan/1411753 ,如需轉載請自行聯系原作者