Nasel jsem to tady
/* COMPUTE IO size and adjust avgLatency accordingly */
1326 latStats->blocksRead = overall_stats.blocksRead - priv->prevBlocksRead;
1327 latStats->blocksWritten = overall_stats.blocksWritten - priv->prevBlocksWritten;
1328 totalblocks = latStats->blocksRead + latStats->blocksWritten;
1329
1330 priv->prevBlocksRead = overall_stats.blocksRead;
1331 priv->prevBlocksWritten = overall_stats.blocksWritten;
1332 avgIOSize = (totalblocks * pd->blkSize) / latStats->ioCount;
1333 if (avgIOSize > 1024) {
1334 // compute size in KB, blkSize is in Bytes
1335 avgIOSize = avgIOSize / 1024;
1336 } else {
1337 // Assume 1 KB as minimum
1338 avgIOSize = 1;
1339 }
1340
1341 /* adjust latency based on avg IO size */
1342 latStats->avgLatency /= (1.0 + (avgIOSize / IOSIZE_ADJUST));
IOSIZE_ADJUST je 512
avgIOSize je v KB
Takze latence treba pro I/O o velikosti 128kB by bylo adjustovano na namerenou latency vydelenou 1+(128/512), takze by se latence vydelila 1.25, takze by se latence snizila o 20%.
U I/O o velikosti 1024kB by to se latence delila 1+(1024/512), takze cislem 3 a tam by se latence snizila na 33%.
Takze je to jinak, nez jsem nekde cetl, a mozna proto to ten nekdo (myslim, ze Frank Denneman) dal pryc ;-)
A dalsi vec je, ze to mohlo byt jinak v ESXi 4 a ted je to takto v ESXi 6. Jeste jsem koukal, ze je to takto I v ESXi 5, ale zdrojaky ESXi 4 uz tam nejsou.
SIOC v ESXi 5 bylo oproti ESX 4.1 vyrazne vylepseno. Ve 4.1 bylo SIOC uvedeno poprve.
Kazdopadne tam probiha urcity adjustment v zavislosti na velikosti I/O.
No comments:
Post a Comment