Pages

Saturday, October 8, 2016

SIOC Normalizovana latence a velikost IO

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