On Dec 13, 2013, at 5:13 AM, Tobias Oetiker <t...@oetiker.ch> wrote: > Hi Paul, > > Today Paul Jochum wrote: > >> Hi Tobias: >> >> Sorry, I don't know why you are having these strang io-patterns, but I >> was wondering if you could share how you >> record and display this info? > > I created a little plugin for collectd to interface with iostat. I > guess having one for vfsstat and arcstat along the same lines would > give a better picture as to what users actually experience but this > one gives some impression as to what happens deep down.
Your script seems to break this out per-device, but that isn’t clear from the graphs you posted. This pattern is consistent with a misbehaving device. — richard > > #!/usr/bin/perl > my $filter = $ARGV[0] || '.+'; > > my $pid = open my $iostat, "-|", > "/usr/bin/iostat","-Tu","-xnr",int($ENV{COLLECTD_INTERVAL}) or die "launching > iostat: $!"; > > $SIG{PIPE} = 'ignore'; > $SIG{CHLD} = 'ignore'; > $SIG{TERM} = sub { > kill 9,$pid; > exit 1; > }; > > my %data; > my @cols; > my $round = 0; > while (<$iostat>){ > chomp; > my @input = split /,/; > if ($#input == 0 and $input[0] =~ /^\d+$/){ > publish() if $round++ > 1; > %data = (); > next; > } > if ($input[-1] eq 'device'){ > @cols = @input; > pop @cols; > next; > } > if ($#input == $#cols+1){ > my $dev = pop @input; > my %row; > @row{@cols} = @input; > $data{$dev} = \%row; > }; > } > > sub publish { > $|=0; > my $time = time(); > for my $dev (sort keys %data){ > next unless $dev =~ /^${filter}$/; > my $d = $data{$dev}; > my $prefix = "PUTVAL > $ENV{COLLECTD_HOSTNAME}/sol_iostat-$dev/sol_iostat_"; > print $prefix."op $time:$d->{'r/s'}:$d->{'w/s'}\n"; > print $prefix."byte > $time:".($d->{'kr/s'}*1024).":".($d->{'kw/s'}*1024)."\n"; > print $prefix."busypct $time:$d->{'%w'}:$d->{'%b'}\n"; > print $prefix."wait $time:$d->{wait}\n"; > print $prefix."actv $time:$d->{actv}\n"; > print $prefix."wsvc_t $time:".($d->{wsvc_t}/1000)."\n"; > print $prefix."asvc_t $time:".($d->{asvc_t}/1000)."\n"; > } > } > > --------- > adding these new types to the types.db > > sol_iostat_op read:GAUGE:0:U, write:GAUGE:0:U > sol_iostat_byte read:GAUGE:0:U, write:GAUGE:0:U > sol_iostat_busypct queue:GAUGE:0:100, disk:GAUGE:0:100 > sol_iostat_wait count:GAUGE:0:U > sol_iostat_actv count:GAUGE:0:U > sol_iostat_wsvc_t second:GAUGE:0:U > sol_iostat_asvc_t second:GAUGE:0:U > > cheers > tobi > > -- > Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland > http://it.oetiker.ch t...@oetiker.ch ++41 62 775 9902 / sb: > -9900_______________________________________________ > OmniOS-discuss mailing list > OmniOS-discuss@lists.omniti.com > http://lists.omniti.com/mailman/listinfo/omnios-discuss _______________________________________________ OmniOS-discuss mailing list OmniOS-discuss@lists.omniti.com http://lists.omniti.com/mailman/listinfo/omnios-discuss