Sebastien GODARD [Fri, 28 Jan 2022 16:04:31 +0000 (17:04 +0100)]
A_IRQ: Add new "--int=" option to sar and sadf
The option "--int=" can be used with sar and sadf to enter a list of
comma-separated interrupts values, ranges of interrupts values, or even
interrupts names.
These interrupts will then be displayed using option -I.
Sebastien GODARD [Sun, 23 Jan 2022 14:54:07 +0000 (15:54 +0100)]
A_IRQ: Change syntax for option -I
Option -I was followed by a list of interrupts or the SUM/ALL keywords.
Now option -I doesn't need to be followed par additional parameters.
Keywords SUM and ALL may still be used (but the ALL keyword will be
ignored).
The list of interrupts will be entered using a new option: --int=
Sebastien GODARD [Sun, 23 Jan 2022 14:48:52 +0000 (15:48 +0100)]
A_IRQ: Move to new structure
Interrupts activity structure is modified.
The interrupt name will now be saved together with the number of
interrupts.
The number of interrupts is saved as an unsigned int to be consistent
with the type used by the kernel.
Sebastien GODARD [Sun, 23 Jan 2022 09:57:16 +0000 (10:57 +0100)]
Make sure that datafiles with unknown activities can be read by sar
When the structure containing statistics for an activity is modified
(with the number of fields of type A increased and of type B decreased),
sar and sadf might not be able to read the corresponding datafile.
Make sure that they can read the other activities in file, even if the
unknown activity is ignored.
Sebastien GODARD [Wed, 12 Jan 2022 16:48:44 +0000 (17:48 +0100)]
mpstat: Don't use read_stat_irq() function
mpstat used read_stat_irq() function from rd_stats.c to get the total
number of interrupts among all processors.
This function is to be heavily modified to deal with sar's new
interrupts statistics report. So create a new function which will be
used only by mpstat and include it in its code.
Sebastien GODARD [Mon, 10 Jan 2022 16:57:25 +0000 (17:57 +0100)]
Fix index value used in online_cpu_bitmap array
The online_cpu_bitmap[] array size is based on the number of CPU
allocated (see sa_wrap.c:wrap_read_softnet()). The size is calculated as
BITMAP_SIZE(a->nr_allocated).
So the index used in read_softnet() function (rd_stats.c) shall not
exceed the size of the array, and so cannot reach NR_CPUS.
Sebastien GODARD [Wed, 29 Dec 2021 09:12:42 +0000 (10:12 +0100)]
A_IRQ: Count number of interrupts using /proc/interrupts
sar/sadc will no longer use /proc/stat file to calculate interrupts
statistics. They will use /proc/interrupts and will display per-CPU
statistics.
This first patch updates the function used to count the number of
interrupts.
Sebastien GODARD [Sun, 14 Nov 2021 10:28:11 +0000 (11:28 +0100)]
mpstat: Don't display offline CPU
Offline CPU are no longer displayed with options -I {SUM, CPU, SCPU}.
This was already the case with option -u. So this should make display
consistent for all options.
Ville Skyttä [Sat, 13 Nov 2021 21:30:39 +0000 (23:30 +0200)]
*: use `grep -E` instead of `egrep`
`egrep` has been deprecated in GNU grep since 2007, and in current post
3.7 Git it has been made to emit obsolescence warnings:
https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
Sebastien GODARD [Thu, 10 Jun 2021 13:06:19 +0000 (15:06 +0200)]
sar: Tell the user to convert its file when needed
When sar or sadf tries to read a datafile with an old format, tell the
user that he can convert it to current format to be able to read it.
This message is displayed only for datafiles created by sysstat versions
9.1.6 and later. Datafiles older than 9.1.6 cannot be converted.
sysstat version 12.5.4 final packaging.
Changelog added.
spec and lsm files updated.
This version brings better integration with PCP (thanks go to Nathan
Scott).
It also adds a small improvement to the pidstat command: Using option -e
and not specifying an interval nor a count value on the command line
will make pidstat show global task statistics when the task terminates.
sadf: PCP: Don't check for newly registered network interfaces
It is useless to check if current network interface has just been
registered or not before displaying its PCP statistics.
This is because PCP displays the raw counter values, not their variation
over the interval. Moreover the whole list of network interfaces present
in file has been created with each one having already its instance.
Nathan Scott [Thu, 8 Apr 2021 03:39:44 +0000 (13:39 +1000)]
Fix PCP issues found by Sebastien during code review
- Resolve duplication of kernel.all.nprocs by switching
one over to kernel.all.sysfork to match Linux PCP
- Add total physical memory metrics
- Fix units metadata for the kernel.all.nptys metric
- Drop not-yet-used network interface metric defitions
(speed, baudrate, duplex)
- Correct the spelling of "celsius"
- Resolve confusion with rq_ticks/rd_ticks disk fields
Relates to https://github.com/sysstat/sysstat/pull/287
Parth Shah [Wed, 31 Mar 2021 11:59:06 +0000 (17:29 +0530)]
pidstat: Monitor and show stats at the end of the exec program
Do not set alarms for undefined value of the interval. Also allow to
print stats even if the SIGINT/SIGCHLD occurs before first interval.
Hence, the command `pidstat -e <prog-name>`
will monitor the prog-name process and show the PID stats after the
prog-name is completed its execution.
Nathan Scott [Tue, 23 Mar 2021 06:59:18 +0000 (17:59 +1100)]
Update sadf to use metadata matching the same metrics from PCP
When operating with the -l option in sadf we want to generate PCP
archives that match the PCP archives generated by pmlogger(1) as
closely as possible. The advantage to doing this is that the live
and historical modes to the PCP tools become interchangeable; i.e.
pmchart views, pmie rules, grafana-pcp dashboards, and so on, all
expect metrics named according to the PCP conventions.
The reason sadf is not already doing this (AIUI), is that it was
originally based on the sar2pcp(1) utility. This tool (which we
plan to deprecate in PCP in favour of the sysstat functionality)
used the rate-converted counter values as its starting point and
not the raw counters we have access to within sysstat itself.
I've audited all of the metrics being added to PCP archives with
the sadf -l option now, and all now align with current metadata
in PCP. I've also added a few uname(2) metrics from the record
header (in the way hinv.ncpu was already being used).
Sebastien GODARD [Sun, 14 Feb 2021 10:07:01 +0000 (11:07 +0100)]
sysstat-12.5.3
sysstat version 12.5.3 final packaging.
Changelog added.
spec and lsm files updated.
This also is mainly a bugfix version (sar, sadf).
One noteworthy new feature is the addition of Link Time Optimization
(LTO) support for smaller binary executables (use --enable-lto to
enable it when compiling sysstat).
IFNAMSIZ value is used to set the maximum length of the network
interface name, and for the definition of structures used to save
data in the binary data files (saDD).
We cannot allow that a new kernel value for IFNAMSIZ changes the format
of saDD binary data files. So now use a constant value of 16 (which is
the present value of IFNAMSIZ).
Sebastien GODARD [Sun, 24 Jan 2021 09:59:17 +0000 (10:59 +0100)]
SVG: Use the "count" parameter entered on the command line
The <count> parameter was not taken into account by sadf when creating
SVG graphs. Fix this.
E.g.: sadf -g datafile 1 10 > data.svg
In this example, the value 10 for the count parameter was not taken
into account and the whole datafile was used to create the graphs.