[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Disk or I/O latency?
From: |
Pierre-Philipp Braun |
Subject: |
Re: Disk or I/O latency? |
Date: |
Thu, 26 May 2016 14:31:50 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
Many thanks Viktor for your input. I also need IO performance monitoring (not
esp. lacenty like Bryna, graphs reporting usage would yet be nice) so I wrote a
little script based on your/Munin's method,
#!/bin/bash
[[ ! -d /sys/block/ ]] && echo /sys/block/ does not exist, exiting && exit 1
#[[ ! -d /var/cache/monit/ ]] && echo /var/cache/monit/ does not exist, exiting
&& exit 1
mkdir -p /var/cache/monit/
for disk in `ls -1 /sys/block/ | egrep -v '^fd|^dm-|^sr'`; do
readio=`cat /sys/block/$disk/stat | awk '{print $1}'`
writeio=`cat /sys/block/$disk/stat | awk '{print $5}'`
echo "$readio,$writeio" >> /var/cache/monit/$disk.stat
unset readio writeio
done
it produces,
# pwd
/var/cache/monit
# ll
total 16K
drwxr-xr-x 2 root root 51 May 26 14:21 .
drwxr-xr-x. 15 root root 4.0K May 26 14:20 ..
-rw-r--r-- 1 root root 26 May 26 14:21 sda.stat
-rw-r--r-- 1 root root 18 May 26 14:21 sdb.stat
-rw-r--r-- 1 root root 12 May 26 14:21 sdc.stat
# cat *
17579,219210
2292,480
939,3
How to integrate this into Monit? Is CSV a good choice as a format?
On 18/05/2016 23:05, SZÉPE Viktor wrote:
> Munin does it by comparing `cat /sys/block/*/stat` e.g `cat
> /sys/block/sda/stat` with the previous reading. This file contains 11
> values:
> https://github.com/munin-monitoring/munin/blob/devel/plugins/node.d.linux/diskstats#L440-L444
>
>
> So previous rd_ios minus current rd_ios gives you and average IO/period.
> You may "remember" these by storing them in a file, for example in
> /var/cache/monit/sda.stat
>
>
>
> Idézem/Quoting Graham Smith <address@hidden>:
>
>> I don't think there is anything built in for that. You may not need a
>> script per se, an application may have an exit status you could use to
>> denote a fail or success of performance quality. Possibly iostat or
>> iometer
>> perhaps.
>> If it's not a simple numeric output, a wrapper script might not need
>> to be
>> long and that could output a simple exit status to denote a success
>> quality
>> which monit can handle easier.
>>
>> I always think it's best to keep complexity out of monit and if you
>> need to
>> do something fancy a script for anything odd is ultimately more
>> modular as
>> you may find other uses for it.
>>
>> Graham
>> On 18 May 2016 19:04, "Bryan Harris" <address@hidden> wrote:
>>
>>> Hello all,
>>>
>>> Does Monit have a way to measure i/o latency and alert if say a 4k write
>>> takes longer than some number of ms? I searched the mailing list and
>>> manual and do not see anything. Otherwise I can always monitor a custom
>>> script for this purpose.
>>>
>>> Thanks in advance.
>>>
>>> V/r,
>>> Bryan
>>>
>>> --
>>> To unsubscribe:
>>> https://lists.nongnu.org/mailman/listinfo/monit-general
>>>
>
>
>
> SZÉPE Viktor