Linux
Parameters |
42 |
Data Source |
/proc |
API |
Sys::Statistics::Linux |
Language |
Perl5 |
sysrec records system metrics from a Linux x86/64 kernel system. The recorder requires a minimum version of Linux kernel: 2.6. The recorder uses Sys::Statistics::Linux a perl module which handles data collection from /proc interface. The recorder outputs its data as sdrd, sdr raw data format.
sysrec records system utilization along with certain other imortant metrics in two modes: standard and extended modes. The difference comes in displaying additional memory statistics, when executed in extended mode. The extended mode is activated when using -x option on the command line.
The following shows sysrec output parameters:
timestamp |
cpupct |
sumpct |
headpct |
userpct |
nicepct |
syspct |
idlepct |
iowaitpct |
irqpct |
softirqpct |
stealpct |
1335171430: |
1.00: |
1.00: |
99.00: |
0.00: |
0.00: |
1.00: |
99.00: |
0.00: |
0.00: |
0.00: |
0.00: |
runqsz |
plistsz |
memusedpct |
memused |
memfree |
memtotal |
buffers |
cached |
realfree |
realfreepct |
94.46: |
723980: |
42444: |
766424: |
288160: |
136932: |
467536: |
61.00: |
0: |
105: |
swapusedpct |
swapused |
swapfree |
swaptotal |
swapcached |
0.01: |
144: |
2064200: |
2064344: |
0: |
readReq |
writeReq |
totReq |
readByt |
writeByt |
totByt |
0: |
0: |
0: |
0.00: |
0.00: |
0.00: |
rxByt |
txByt |
ntByt |
rxerr |
txerr |
rxdrp |
txdrp |
0.06: |
0.31: |
0.38: |
0: |
0: |
0: |
0: |
load_avg1 |
load_avg5 |
load_avg15 |
0.00: |
0.00: |
0.00 |
Show fields description
-
timestamp: seconds since Epoch
-
cpupct: CPU utilization averaged across all CPUs, always <= 100%, percentage, gauge
-
sumpct: sum of all CPUs utilization always <= N*100%, percentage, gauge
-
headpct: headroom CPU available, all CPUs, always = N*100% - sumpct, percentage, gauge
-
userpct: CPU utilization User space in percent, averaged across all CPUs
-
nicepct: CPU utilization User space with nice priority, averaged across all CPUs
-
syspct: CPU utilization System space, averaged across all CPUs
-
idlepct: CPU utilization idle state, averaged across all CPUs
-
iowaitpct: CPU Percentage in idle state because an I/O operation is waiting to complete
-
irqpct: CPU Percentage servicing interrupts
-
softirqpct: CPU Percentage servicing softirqs
-
stealpct: CPU Percentage of time spent in other operating systems when running in a virtualized environment
-
runqsz: run queue length, number of tasks waiting for run time
-
plistsz: number of tasks in the task list
-
memusedpct: size of used memory in percent, gauge
-
memused: size of used memory in kilobytes, gauge, extended
-
memfree: size of free memory in kilobytes, gauge, extended
-
memtotal: size of memory in kilobytes, gauge, extended
-
buffers: size of buffers used from memory in kilobytes, gauge, extended
-
cache: size of cached memory in kilobytes, gauge, extended
-
realfree: size of memory is real free, memfree+buffers+cached, gauge
-
realfreepct:: size of memory is real free in percent of total memory, gauge
-
swapusedpct: size of used swap space in percent, gauge
-
swapused: size of swap space is used is kilobytes, gauge, extended
-
swapfree: size of swap space is free in kilobytes, gauge, extended
-
swaptotal: size of swap space in kilobytes, gauge, extended
-
swapcached: memory that once was swapped out, is swapped back in but still also is in the swapfile, gauge, extended
-
readReq: total disk read requests, counter
-
writeReq: total disk write requests, counter
-
totReq: total disk read+write requests, counter
-
readByt: total read bytes / sec, in KB
-
writeByt: total write bytes / sec, in KB
-
totByt: total read+write bytes / sec, in KB
-
rxByt: total received bytes /sec, in KB
-
txByt: total transmitted bytes /sec, in KB
-
ntByt: total received + transmitted bytes /sec, in KB
-
rxerr: Number of errors that happend while received packets/second
-
txerr: Number of errors that happend while transmitting packets/second
-
rxdrp: Number of rx packets that were dropped per second
-
txdrp: Number of rx packets that were dropped per second
-
avg_1: LA of the last minute
-
avg_5: LA of the last 5 minutes
-
avg_15: LA of the last 15 minutes
Solaris
Parameters |
18 |
Data Source |
kstat |
API |
Sun::Solaris::Kstat, Perl5 |
sysrec is a utility, part of K9Toolkit, author Brendan Gregg. The toolkit is a collection of free Perl scripts used to troubleshoot and observe (Open)Solaris systems. Check Appendix for more details. The recorder outputs its data as sdrd, sdr raw data format.
sysrec records system utilization and certain additional kernel statistics used as a starting point in observing the system's general health.
The following shows sysrec output parameters:
timestamp |
cpupct |
sumpct |
headpct |
userpct |
syspct |
idlepct |
runqlen |
pcount |
tcount |
1294052332: |
1.98: |
1.98: |
98.02: |
0.99: |
0.99: |
98.02: |
0: |
35: |
167: |
memusedpct |
pscanner |
diskpct |
diskerrs |
netpct |
neterrs |
load_avg1 |
load_avg5 |
load_avg15 |
70.69: |
0.00: |
0.00: |
0.00: |
0.00: |
0.00: |
0.00: |
0.00: |
0.00 |
Show fields description
-
timestamp: seconds since Epoch
-
cpupct: CPU utilization averaged across all CPUs, always <= 100%, percentage, gauge
-
sumpct: sum of all CPUs utilization always <= N*100%, percentage, gauge
-
headpct: headroom CPU available, all CPUs, always = N*100% - sumpct, percentage, gauge
-
userpct: CPU utilization User space, averaged across all CPUs, percentage, gauge
-
syspct: CPU utilization System space, averaged across all CPUs, percentage, gauge
-
idlepct: CPU utilization Idle state, averaged across all CPUs, percentage, gauge
-
runqlen: threads on the run queue, gauge
-
pcount: current process count on the system
-
tcount: current lwp count on the system
-
memusedpct: size of used memory in percent, gauge
-
pscanner: scan rate of the page scanner, gauge
-
diskpct: sum read+write across disks, percentage, gauge
-
diskerrs: operations on the wait queue, gauge
-
netpct: throughput, read+write bytes across NICs, percentage, gauge
-
neterrs: number of errors due to buffer saturation
-
avg_1: LA of the last minute
-
avg_5: LA of the last 5 minutes
-
avg_15: LA of the last 15 minutes
Sometimes you might need to ask sysrec to monitor your systems using a sub-second interval. Whjy would you want to do such thing ? The interval is usually the input option to control the time period in seconds between each sample. SDR versions before 0.71 did not support interval lower than 1 sec. In latest releases we enhanced the sleeping between samples, using signals in Perl and we obtain a much finer degree of sleeping between each sample. See below:
Interval 1sec, 5 times: 1313952055:9.09:98.18:0.00:0:0:0:0.00:0.00:0.00:0.00:0.00:0.00:9.09:0.00:0.00:90.91:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 1313952056:1.00:98.18:0.00:0:0:0:0.00:0.00:0.00:0.06:0.24:0.30:0.00:0.00:1.00:99.00:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 1313952057:0.00:98.20:0.00:0:0:0:0.00:0.00:0.00:0.06:0.24:0.30:0.00:0.00:0.00:100.00:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 Interval 0.5sec, 5 times: 1313952100.208:0.00:98.18:0.00:0:0:0:0.00:0.00:0.00:0.00:0.00:0.00:0.00:0.00:0.00:100.00:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 1313952100.710:1.96:98.18:0.00:0:0:0:0.00:0.00:0.00:0.13:0.47:0.60:1.96:0.00:0.00:98.04:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 1313952101.210:0.00:98.20:0.00:0:0:0:0.00:0.00:0.00:0.13:0.47:0.60:0.00:0.00:0.00:100.00:0.00:0.00:0.00:0.00:0:0:0:0:0.00:0.00:0.00 |
See the timestamp reporting a different time resolution. Be careful: dont play in PROD systems with values very low since the recorders will add an overhead to your system. Remember SDR is not DTrace or SystemTap.
Windows
Parameters |
35 |
Data Source |
Windows Management Instrumentation |
API |
WMI |
Language |
C/C++ |
Windows recorders are implemented as system services, extracting all parameters from WMI interface using C/C++ language. The reason to select C over Perl was that Windows has no default POSIX interface. All sdrd raw data files and transport utilities are similar to Solaris and Linux based operating systems. The recorder outputs its data as sdrd, sdr raw data format.
The following shows sysrec output parameters:
timestamp |
cpupct |
sumpct |
headpct |
userpct |
syspct |
idlepct |
irqpct |
runqsz |
plistsz |
1393141185: |
2.68: |
2.68: |
97.32: |
0.18: |
2.49: |
97.32: |
1.17: |
0: |
39: |
memusedpct |
memused |
memfree |
memtotal |
buffers |
cache |
realfree |
realfreepct |
45.99: |
474552: |
4104: |
1031796: |
27452: |
580304: |
557244: |
54.01: |
swapusedpct |
swapused |
swapfree |
swaptotal |
swapcached |
25.74: |
269912: |
778664: |
1048576: |
0: |
readReq |
writeReq |
totReq |
readByt |
writeByt |
totByt |
110: |
0: |
110: |
2: |
0: |
2: |
rxByt |
txByt |
ntByt |
rxerr |
txerr |
rxdrp |
txdrp |
0: |
0: |
0: |
0: |
0: |
71614314: |
0 |
Show fields description
-
timestamp: seconds since Epoch
-
cpupct: CPU utilization averaged across all CPUs, always <= 100%, percentage, gauge
-
sumpct: sum of all CPUs utilization always <= N*100%, percentage, gauge
-
headpct: headroom CPU available, all CPUs, always = N*100% - sumpct, percentage, gauge
-
userpct: CPU utilization User space in percent, averaged across all CPUs
-
syspct: CPU utilization System space, averaged across all CPUs
-
idlepct: CPU utilization idle state, averaged across all CPUs
-
irqpct: CPU Percentage servicing interrupts
-
runqsz: run queue length, number of tasks waiting for run time
-
plistsz: number of tasks in the task list
-
memusedpct: size of used memory in percent, gauge
-
memused: size of used memory in kilobytes, gauge, extended
-
memfree: size of free memory in kilobytes, gauge, extended
-
memtotal: size of memory in kilobytes, gauge, extended
-
buffers: size of buffers used from memory in kilobytes, gauge, extended
-
cache: size of cached memory in kilobytes, gauge, extended
-
realfree: size of memory is real free, memfree+buffers+cached, gauge
-
realfreepct:: size of memory is real free in percent of total memory, gauge
-
swapusedpct: size of used swap space in percent, gauge
-
swapused: size of swap space is used is kilobytes, gauge, extended
-
swapfree: size of swap space is free in kilobytes, gauge, extended
-
swaptotal: size of swap space in kilobytes, gauge, extended
-
swapcached: memory that once was swapped out, is swapped back in but still also is in the swapfile, gauge, extended
-
readReq: total disk read requests, counter
-
writeReq: total disk write requests, counter
-
totReq: total disk read+write requests, counter
-
readByt: total read bytes / sec, in KB
-
writeByt: total write bytes / sec, in KB
-
totByt: total read+write bytes / sec, in KB
-
rxByt: total received bytes /sec, in KB
-
txByt: total transmitted bytes /sec, in KB
-
ntByt: total received + transmitted bytes /sec, in KB
-
rxerr: Number of errors that happend while received packets/second
-
txerr: Number of errors that happend while transmitting packets/second
-
rxdrp: Number of rx packets that were dropped per second
-
txdrp: Number of rx packets that were dropped per second