Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><code>%util</code> is named busy in the source code of iostat: <a href="https://code.google.com/p/tester-higkoo/source/browse/trunk/Tools/iostat/iostat.c#380" rel="noreferrer">https://code.google.com/p/tester-higkoo/source/browse/trunk/Tools/iostat/iostat.c#380</a></p> <p>Busy is counted as percent ratio of <code>Ticks</code> to <code>deltams</code>, limited to 100%</p> <pre><code>busy = 100.0 * blkio.ticks / deltams; /* percentage! */ if (busy &gt; 100.0) busy = 100.0; </code></pre> <p>DeltaMS is sum of system load for the period of time (user time + system time + idle time + iowait)/ ncpu.</p> <pre><code>double deltams = 1000.0 * ((new_cpu.user + new_cpu.system + new_cpu.idle + new_cpu.iowait) - (old_cpu.user + old_cpu.system + old_cpu.idle + old_cpu.iowait)) / ncpu / HZ; </code></pre> <p>Ticks - is the <code>Time of requests in queue</code> for the period</p> <pre><code>blkio.ticks = new_blkio[p].ticks - old_blkio[p].ticks; </code></pre> <p>In more current version of sysstat the code is bit different: <a href="http://sources.debian.net/src/sysstat/10.2.0-1/iostat.c#L959" rel="noreferrer">http://sources.debian.net/src/sysstat/10.2.0-1/iostat.c#L959</a></p> <pre><code>/* rrq/s wrq/s r/s w/s rsec wsec rqsz qusz await r_await w_await svctm %util */ printf(" %8.2f %8.2f %7.2f %7.2f %8.2f %8.2f %8.2f %8.2f %7.2f %7.2f %7.2f %6.2f %6.2f\n", ... /* * Again: Ticks in milliseconds. * In the case of a device group (option -g), shi-&gt;used is the number of * devices in the group. Else shi-&gt;used equals 1. */ shi-&gt;used ? xds.util / 10.0 / (double) shi-&gt;used : xds.util / 10.0); /* shi-&gt;used should never be null here */ </code></pre> <p>xds is filled in the <code>compute_ext_disk_stats(&amp;sdc, &amp;sdp, itv, &amp;xds);</code> <a href="http://sources.debian.net/src/sysstat/10.2.0-1/common.c?hl=679#L679" rel="noreferrer">http://sources.debian.net/src/sysstat/10.2.0-1/common.c?hl=679#L679</a></p> <pre><code>/* * Macros used to display statistics values. * * HZ is 1024 on IA64 and % should be normalized to 100. */ #define S_VALUE(m,n,p) (((double) ((n) - (m))) / (p) * HZ) xds-&gt;util = S_VALUE(sdp-&gt;tot_ticks, sdc-&gt;tot_ticks, itv); </code></pre> <p>And there is the filling of tot_ticks from iostat.c</p> <pre><code> * @ioi Current sample statistics. * @ioj Previous sample statistics. * @itv Interval of time. ... sdc.tot_ticks = ioi-&gt;tot_ticks; sdp.tot_ticks = ioj-&gt;tot_ticks; </code></pre> <p><code>tot_ticks</code> are read from "<em>sysfs stat for current block device or partition</em>" in <code>read_sysfs_file_stat</code> (<a href="http://sources.debian.net/src/sysstat/10.2.0-1/iostat.c#L474" rel="noreferrer">iostat.c:487</a>), and <code>ioi</code> and <code>ioj</code> are current and previous stat.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload