---
title: "Device IO"
description: ""
url: "https://docs.itrsgroup.com/docs/geneos/7.11.0/collection/device-io/index.html"
---
## Introduction

The Geneos Device IO Plug-in reports disk activity. This information is published by the kernel enabling the plug-in to produce highly accurate measures of throughput, utilisation, queue lengths, transaction rates, and service time. Each row in the table displays a device mounted on that disk.

The Device IO plug-in is only supported on Linux and Solaris platforms.

On Linux Netprobe versions 3.0.21 and up, the Device IO plug-in extracts its data from the operating system data sources file:

- DiskStats — `/proc/diskstats`
- SysFs — `/sys/block/<Device Name>/stat`
- Partitions — `/proc/partitions`
- StatFile — `/proc/stat`

This plug-in extracts the data in order. For example, the Device IO plug-in looks for DiskStats first. If DiskStats is not available, then it looks for SysFs and so on.

## Views (for a single view)

### View (Solaris)

The Device IO produces a single view for Solaris as follows:

![](https://docscdn.itrsgroup.com/geneos/images/plug-ins/device-io-solaris-dataview.png)

**Table Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                            <col width="16%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <col width="84%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <thead>
                                <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                    <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1"><strong>Name</strong>
                                    </th>
                                    <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1"><strong>Description</strong>
                                    </th>
                                </tr>
                            </thead>
                            <tbody valign="top">
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">Device</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The name of the actual device</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">readRate</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Reads per second</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">writeRate</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Writes per second</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">readRateKB</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">KB read per second</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">writeRateKB</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">KB written per second</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveTransWaiting</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">average number of transactions waiting for
 service(queue length)</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveTransActive</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">average number of transactions actively
 being serviced&#12288;(removed from the queue but not
 yet completed)</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveServiceTimeMs</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">average service time, in milliseconds</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">percentWait</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">percent of time there are transactions
 waiting for service (queue non-empty)</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">percentBusy</td>
                                    <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">percent of time the disk is busy
 (transactions in progress)</td>
                                </tr>
                            </tbody>
                        </table>
                        
</div>

### View (Linux)

The Device IO plug-in produces the following view for Linux:

![](https://docscdn.itrsgroup.com/geneos/images/plug-ins/device-io-linux-dataview-6-8.png)

**Headline Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                            <col width="41%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <col width="59%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <thead>
                                <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                    <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1">Name</th>
                                    <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1">Description</th>
                                </tr>
                            </thead>
                            <tbody valign="top">
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">activeSegments</td>
                                    <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">The number of devices.</td>
                                </tr>
                            </tbody>
                        </table>
                        
</div>

**Table Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                            <col width="17%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <col width="83%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                            <thead>
                                <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                    <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1">Name</th>
                                    <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1">Description</th>
                                </tr>
                            </thead>
                            <tbody valign="top">
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">device</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The name of the actual device.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">readRate</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of read requests that were
 issued to the device per second.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">writeRate</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of write requests that were
 issued to the device per second.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">readRateSector</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of sectors read from the device
 per second.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">writeRateSector</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of sectors written to the device
 per second.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveRequestSize</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Average size (in sectors) of the request
 that were issued to the device.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveQueueLen</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The average queue length of the requests
 that were issued to the device.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveRequestTimeMs</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The average time (in milliseconds) for I/O
 requests issued to the device to be
 served.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">aveServiceTimeMs</td>
                                    <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The average service time (in milliseconds)
 for I/O requests that were issued to the
 device.</td>
                                </tr>
                                <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                    <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">cpuUtilisation</td>
                                    <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">
                                        <p>Percentage of CPU time during which
 requests were issued to the device.</p>
                                        <p>On Linux Netprobe version 4.x.x or higher, the <code>cpuUtilisation</code> is computed as follows:</p>
                                        <ul>
                                            <li><code>[(tot_ticks new - tot_ticks old) / (jiffies new - jiffies old)] * 10</code>
                                            </li>
                                        </ul>
                                        <p>Where:</p>
                                        <ul>
                                            <li><code>tot_tick</code> =  total <code>io_ticks</code> from <code>/sys/block/&lt;Device Name&gt;/stat</code></li>
                                            <li><code>jiffies</code> = Linux kernel time</li>
                                        </ul>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        
</div>

## Plug-in Configuration

### deviceList

Allows the user to specify just those devices they are interested in, as opposed to having statistics displayed for all of the devices found in the system.

Mandatory: No

### deviceList > device


**Geneos PCRE2 upgrade**

 Beginning with version 7.3.x, Geneos now uses `PCRE2 10.44` by default, upgrading from `PCRE 8.44` for improved handling of regular expressions. Please be aware that this may introduce breaking changes to your implementation. For more information about the differences, refer to the [PCRE2 documentation](https://www.pcre.org/current/doc/html/pcre2compat.html). 


Identifies a single device that the user wants to see statistics on. The idea is that the user be able to specify several of these, indicating specifically which devices they are interested in.

Mandatory: No

