PCP-ATOPSAR(1)
π pcp-atopsar β the manual page, but make it make sense
okay bestie, so this is PCP-ATOPSAR(1) from the General Commands Manual section, and it's literally the Advanced System Activity Report for the pcp-atop family. grab a beverage, we're getting into it π
β¨ NAME β¨
pcp-atopsar β Advanced System Activity Report (the pcp-atop related one, iykyk)
π¦ SYNOPSIS π¦
pcp [pcp options] atopsar [atop options] [-r file|date] [-h host] [-R
cnt] [-b [YYYMMDD]hh:mm[ss]] [-e [YYYMMDD]hh:mm[ss]]
pcp [pcp options] atopsar [atop options] interval [samples]
two whole vibes, two whole synopsis lines. pick your fighter π
πΈ DESCRIPTION πΈ
The pcp-atopsar program? It reports statistics at the system level. That's the whole point. Periodt.
π first synopsis line β the logfile era π
no sampling interval specified, so we're going shopping in an archive file π
In the first synopsis line (no sampling interval specified), pcp-atopsar extracts data from a raw logfile that has been recorded previously by pmlogger(1) (or via the -w option of the pcp-atop program).
You can specify the name of the logfile with the -r option of the pcp-atopsar program. When a pmlogger daily logfile is used, named $PCP_LOG_DIR/pmlogger/[host]/YYYYMMDD (where YYYYMMDD reflects the date), the required date of the form YYYYMMDD can be specified with the -r option instead of the filename, or the symbolic name 'y' can be used for yesterday's daily logfile (this can be repeated so 'yyyy' indicates the logfile of four days ago). If the -r option is not specified at all, today's daily logfile is used by default.
By default, the hostname of the localhost will be used when resolving pmlogger archives, however an alternative host can be specified using the -h option.
The starting and ending times of the report can be defined using the options -b and -e followed by a time argument of the form [YYYYMMDD]hh:mm[ss].
π¦ second synopsis line β live from the kernel π¦
sampling mode, main character energy β¨
In the second synopsis line, pcp-atopsar reads actual activity counters from the kernel with the specified interval (in seconds) and the specified number of samples (optionally).
When pcp-atopsar is activated in this way it immediately sends the output for every requested report to standard output. If only one type of report is requested, the header is printed once and after every interval seconds the statistical counters are shown for that period. If several reports are requested, a header is printed per sample followed by the statistical counters for that period.
π the pcp(1) pipeline glow-up π
When invoked via the pcp(1) command, the PCPIntro(1) options -h/--host, -a/--archive, -O/--origin, -s/--samples, -t/--interval, -Z/--timezone and several other pcp options become indirectly available, see PCPIntro(1) for their descriptions.
π the generic flags β behaviour modifiers π
Some generic flags can be specified to influence the behaviour of the pcp-atopsar program:
-Sβ By default the timestamp at the beginning of a line is suppressed if more lines are shown for one interval. With this flag a timestamp is given for every output-line (easier for post-processing).-aβ By default certain resources as disks and network interfaces are only shown when they were active during the interval. With this flag all resources of a given type are shown, even if they were inactive during the interval.-xβ By defaultpcp-atopsaronly uses colors if output is directed to a terminal (window). These colors might indicate that a critical occupation percentage has been reached (red) or has been almost reached (cyan) for a particular resource. See the man-page ofatopfor a detailed description of this feature (sectionCOLORS). With the flag-xthe use of colors is suppressed unconditionally.-Cβ By defaultpcp-atopsaronly uses colors if output is directed to a terminal (window). These colors might indicate that a critical occupation percentage has been reached (red) or has been almost reached (cyan) for a particular resource. See the man-page ofatopfor a detailed description of this feature (sectionCOLORS). With the flag-Ccolors will always be used, even if output is not directed to a terminal.-Mβ Use markers at the end of a line to indicate that a critical occupation percentage has been reached ('*') or has been almost reached ('+') for particular resources. The marker'*'is similar to the color red and the marker'+'to the color cyan. See the man-page ofatopfor a detailed description of these colors (sectionCOLORS).-Hβ Repeat the header line within a report for everyNdetail lines. The value ofNis determined dynamically in case of output to a tty/window (depending on the number of lines); for output to a file or pipe this value is23.-Rβ Summarize cnt samples into one sample. When the logfile contains e.g. samples of 10 minutes, the use of the flag'-R 6'shows a report with one sample for every hour.
π the report-picker flags π
Other flags are used to define which reports are required:
-Aβ Show all possible reports.-cβ Report about CPU utilization (in total and per cpu).-gβ Report about GPU utilization (per GPU).-pβ Report about processor-related matters, like load-averages and hardware interrupts.-Pβ Report about processes.-mβ Current memory- and swap-occupation.-sβ Report about paging- and swapping-activity, and overcommitment.-Bβ Report about Pressure Stall Information (PSI).-lβ Report about utilization of logical volumes.-fβ Report about utilization of multiple devices.-dβ Report about utilization of disks.-nβ Report about NFS mounted filesystems on NFS client.-jβ Report about NFS client activity.-Jβ Report about NFS server activity.-iβ Report about the network interfaces.-Iβ Report about errors for network-interfaces.-wβ Report about IP version 4 network traffic.-Wβ Report about errors for IP version 4 traffic.-yβ General report about ICMP version 4 layer activity.-Yβ Per-type report about ICMP version 4 layer activity.-uβ Report about UDP version 4 network traffic.-zβ Report about IP version 6 network traffic.-Zβ Report about errors for IP version 6 traffic.-kβ General report about ICMP version 6 layer activity.-Kβ Per-type report about ICMP version 6 layer activity.-Uβ Report about UDP version 6 network traffic.-tβ Report about TCP network traffic.-Tβ Report about errors for TCP-traffic.-hβ Report about Infiniband utilization.-Oβ Report about top-3 processes consuming most processor capacity. This report is only available when using a log file (not when specifying an interval).-Gβ Report about top-3 processes consuming most resident memory. This report is only available when using a log file (not when specifying an interval).-Dβ Report about top-3 processes issuing most disk transfers. This report is only available when using a log file (not when specifying an interval).-Nβ Report about top-3 processes issuing most IPv4/IPv6 socket transfers. This report is only available when using a log file (not when specifying an interval).
heads up bestie: those last four β-O,-G,-D,-Nβ are log-file only. they literally do not work with an interval. no cap. π
π§ PCP ATOPSAR OPTIONS π§
The following additional PCP command line long options are also available:
--align=alignβ Force the initial sample to be aligned on the boundary of a natural time unit align. Refer toPCPIntro(1)for a complete description of the syntax for align.--archive=archiveβ Performance metric values are retrieved from the set of Performance Co-Pilot (PCP) archive files identified by the argument archive, which is a comma-separated list of names, each of which may be the base name of an archive or the name of a directory containing one or more archives.--finish=endtimeβ When reporting archived metrics, the report will be restricted to those records logged before or at endtime. Refer toPCPIntro(1)for a complete description of the syntax for endtime.--host=hostβ Fetch performance metrics frompmcd(1)on host, rather than from the default localhost.--hostzoneβ Use the local timezone of the host that is the source of the performance metrics, as identified by either the--hostor the--archiveoptions. The default is to use the timezone of the local host.--hotprocβ Use thepmdaproc(1)hotproc metrics.--interval=intervalβ Set the reporting interval to something other than the default1second. The interval argument follows the syntax described inPCPIntro(1), and in the simplest form may be an unsigned integer (the implied units in this case are seconds).--samples=samplesβ The samples option defines the number of samples to be retrieved and reported.--start=starttimeβ When reporting archived metrics, the report will be restricted to those records logged at or after starttime. Refer toPCPIntro(1)for a complete description of the syntax for starttime.--timezone=timezoneβ Use timezone for the date and time. Timezone is in the format of the environment variableTZas described inenviron(7).--versionβ Display version number and exit.
π OUTPUT DESCRIPTION π
Depending on the requested report, a number of columns with output values are produced. The values are mostly presented as a number of events per second.
β the -c report β CPU utilization, per cpu β
The output for the flag -c contains the following columns per cpu:
usr%β Percentage of cpu-time consumed in user mode (program text) for all active processes running with a nice value of zero (default) or a negative nice value (which means a higher priority than usual). The cpu consumption in user mode of processes with a nice value larger than zero (lower priority) is indicated in thenice%-column.nice%β Percentage of cpu time consumed in user mode (i.e. program text) for all processes running with a nice value larger than zero (which means with a lower priority than average).sys%β Percentage of cpu time consumed in system mode (kernel text) for all active processes. A high percentage usually indicates a lot of system calls being issued.irq%β Percentage of cpu time consumed for handling of device interrupts.softirq%β Percentage of cpu time consumed for soft interrupt handling.steal%β Percentage of cpu time stolen by other virtual machines running on the same hardware.guest%β Percentage of cpu time used by other virtual machines running on the same hardware (overlaps withusr%/nice%).wait%β Percentage of unused cpu time while at least one of the processes in wait-state awaits completion of disk I/O.idle%β Percentage of unused cpu time because all processes are in a wait-state but not waiting for disk-I/O.
β the -g report β GPU utilization, per GPU β
The output for the flag -g contains the following columns per GPU:
busaddrβ GPU number and bus-ID (separated by'/').gpubusyβ GPU busy percentage during interval.membusyβ how busy the GPU memory was during the interval, as a percentage π§ β¨ like, the chunk of time it spent actually issuing reads and writes to memory.memoccβ what percentage of memory is occupied right now at this exact moment.memtotβ total memory available, the whole bag πmemuseβ GPU memory in use at this moment.gputypeβ what kind of GPU it is π
π the -p output π
pswch/sβ process switches (aka context switches, iykyk) per second on this cpu. A process switch happens the moment an active thread (the one using a cpu, bestie) enters a wait state or has fully used up its time slice β and then another thread gets picked to use the cpu. Slay, rotation.devintr/sβ hardware interrupts handled per second on this cpu.clones/sβ new threads started per second π±loadavg1β load average showing the average number of threads sitting in the runqueue or in a non-interruptible wait state (usually waiting on disk or tape I/O) over the last minute.loadavg5β same vibe but over the last 5 minutes.loadavg15β and same again over the last 15 minutes β³
π¦ the -P output β processes & threads π¦
clones/sβ new threads started per second.pexit/scurprocβ total number of processes hanging out in the system.curzombβ number of zombie processes in the system π§ (they're literally undead, no cap).trunβ total threads in the system in state'running'.tslpiβ total threads in state'interruptible sleeping'π΄tslpuβ total threads in state'uninterruptible sleeping'.tidleβ total threads in state'idle'β that's uninterruptible sleeping but not counted in the load average.
πΈ the -m output β memory & swap utilization πΈ
memtotalβ total usable main memory size.memfreeβ available main memory size at this moment (a snapshot πΈ).buffersβ main memory used at this moment to cache metadata-blocks (snapshot).cachedβ main memory used at this moment to cache data-blocks (snapshot).dirtyβ how much memory in the page cache still has to be flushed to disk at this moment (snapshot) π§Όslabmemβ main memory used at this moment for dynamically allocated memory by the kernel (snapshot).swptotalβ total swap space size at this moment (snapshot).swpfreeβ available swap space at this moment (snapshot).
π the -s output β how much swapping is going on π
pagescan/sβ scanned pages per second, triggered by free memory dropping below a particular threshold πswapin/sβ memory-pages the system read from the swap-device per second.swapout/sβ memory-pages the system wrote to the swap-device per second.oomkillβ number of processes killed during the last interval because there wasn't enough memory/swap π The value-1means this counter just isn't supported by your current kernel version, no biggie.commitspcβ the committed virtual memory space, i.e. the reserved virtual space for all allocations of private memory space for processes.commitlimβ the maximum limit for the committed space, which is by default swap size plus 50% of memory size. Heads up though: the kernel only checks whether the committed space exceeds the limit if strict overcommit handling is configured (vm.overcommit_memoryis2).
π the -B output β Pressure Stall Information (PSI) π
cpusomeβ average pressure percentage during the interval for the category'CPU some'.memsomeβ average pressure percentage during the interval for'memory some'.memfullβ average pressure percentage during the interval for'memory full'.iosomeβ average pressure percentage during the interval for'I/O some'.iofullβ average pressure percentage during the interval for'I/O full'π₯
π
the -l (LVM), -f (MD) and -d (hard disk) outputs β one set of columns per active unit π
diskβ the name.busyβ busy-percentage of the unit, meaning the portion of time the device was busy handling requests.read/sβ read-requests issued per second on this unit.KB/readβ average Kbytes transferred per read-request for this unit.writ/sβ write-requests (discard requests included, bestie) issued per second on this unit.KB/writβ average Kbytes transferred per write-request for this unit.avqueβ average number of requests outstanding in the queue while the unit is busy.avservβ average milliseconds a request needs on this unit (seek, latency and data-transfer) β±οΈ
π§ the -n output β NFS mounted filesystems (client side) π§
mounted_deviceβ the mounted device, containing the server name and the server directory being mounted.physread/sβ Kilobytes of data physically read from the NFS server by processes running on the NFS client.KBwrite/sβ Kilobytes of data physically written to the NFS server by processes running on the NFS client. And if the NFS filesystem got mounted during the interval, the state'M'is shown π
π the -j output β NFS client activity π
rpc/sβ RPC calls per second issued to NFS server(s).rpcread/sβ read RPC calls per second issued to NFS server(s).rpcwrite/sβ write RPC calls per second issued to NFS server(s).retrans/sβ retransmitted RPC calls per second.autrefresh/sβ authorization refreshes per second.
π the -J output β NFS server activity π
rpc/sβ RPC calls per second received from NFS client(s).rpcread/sβ read RPC calls per second received from NFS client(s).rpcwrite/sβ write RPC calls per second received from NFS client(s).MBcr/sβ Megabytes per second returned to read requests by clients.MBcw/sβ Megabytes per second passed in write requests by clients.nettcp/sβ requests per second handled via TCP.netudp/sβ requests per second handled via UDP.
β the -i output β network interface utilization β
interfβ name of the interface.busyβ busy percentage for this interface. If the linespeed of the interface couldn't be determined (say, for virtual interfaces), a question mark is shown βipack/sβ packets received from this interface per second.opack/sβ packets transmitted to this interface per second.iKbyte/sβ Kbytes received from this interface per second.oKbyte/sβ Kbytes transmitted via this interface per second.imbps/sβ effective number of megabits received per second.ombps/sβ effective number of megabits transmitted per second.maxmbps/sβ linespeed as number of megabits per second. If the linespeed couldn't be determined (e.g. virtual interfaces), the value0is shown. And the linespeed gets followed by the indication'f'(full duplex) or'h'(half duplex) π«Ά
π the -I output β network interface failures π
interfβ name of the interface.ierr/sβ bad packets received from this interface per second.oerr/sβ times packet transmission to this interface failed per second.coll/sβ collisions encountered per second while transmitting packets.idrop/sβ received packets dropped per second because the local system ran out of buffer-space.odrop/sβ transmitted packets dropped per second because the local system ran out of buffer-space.iframe/sβ frame alignment-errors encountered per second on received packets.ocarrier/sβ carrier-errors encountered per second on transmitted packets.
πΈ the -w output β IPv4-layer utilization (with the formal SNMP-names in brackets, iykyk) πΈ
inrecv/sβ IP datagrams received from interfaces per second, including the ones received in error (ipInReceives).outreq/sβ IP datagrams that local higher-layer protocols handed to IP in requests for transmission per second (ipOutRequests).indeliver/sβ received IP datagrams successfully delivered to higher protocol-layers per second (ipInDelivers).forward/sβ received IP datagrams per second where this entity was not their final IP destination, so an attempt was made to forward them (ipForwDatagrams).reasmok/sβ IP datagrams successfully reassembled per second (ipReasmOKs).fragcreat/sβ IP datagram fragments generated per second at this entity (ipFragCreates).
π the -W output β IPv4-layer failures (SNMP-names in brackets again) π
in: dsc/sβ input IP datagrams per second where nothing blocked their continued processing but they got discarded anyway, e.g. for lack of buffer space (ipInDiscards).in: hder/sβ input IP datagrams per second discarded because the IP header had errors (ipInHdrErrors).in: ader/sβ how many input IP datagrams per second got yeeted because the IP address in the destination field wasn't valid for this entity to receive (ipInAddrErrors). πin: unkp/sβ inbound packets per second dropped because the protocol was unknown or unsupported, no cap (ipInUnknownProtos).in: ratim/sβ the number of timeout-situations per second that happen while we're still waiting on other fragments so reassembly can actually succeed (ipReasmTimeout). the way fragmentation tests your patience πin: rfail/sβ failures per second caught by the IP reassembly algorithm (ipReasmFails).out: dsc/sβ output IP datagrams per second that had no problems blocking their continued processing but still got discarded anyway, like when there's no buffer space (ipOutDiscards). it's giving "so close but no" πout: nrt/sβ IP datagrams per second discarded because literally no route could be found (ipOutNoRoutes). lost in the void fr fr
β¨ the -y flag: ICMPv4 general utilization β¨
The output for the flag -y gives you the general utilization of the ICMPv4-layer plus some per-type ICMP-message info (formal SNMP-names between brackets):
intot/sβ ICMP messages of any type received per second at this entity (icmpInMsgs).outtot/sβ ICMP messages of any type transmitted per second from this entity (icmpOutMsgs).inecho/sβ ICMP Echo (request) messages received per second (icmpInEchos).inerep/sβ ICMP Echo-Reply messages received per second (icmpInEchoReps).otecho/sβ ICMP Echo (request) messages transmitted per second (icmpOutEchos).oterep/sβ ICMP Echo-Reply messages transmitted per second (icmpOutEchoReps).
πΈ the -Y flag: the other ICMPv4 message types πΈ
The output for the flag -Y covers the other types of ICMPv4-messages (formal SNMP-names between brackets):
ierr/sβ ICMP messages received per second that were determined to have ICMP-specific errors (icmpInErrors).isq/sβ ICMP Source Quench messages received per second (icmpInSrcQuenchs).ird/sβ ICMP Redirect messages received per second (icmpInRedirects).idu/sβ ICMP Destination Unreachable messages received per second (icmpInDestUnreachs).ite/sβ ICMP Time Exceeded messages received per second (icmpOutTimeExcds). yes bestie, that's the SNMP name the page gives it, we don't ask questions π«Άoerr/sβ ICMP messages transmitted per second that were determined to have ICMP-specific errors (icmpOutErrors).osq/sβ ICMP Source Quench messages transmitted per second (icmpOutSrcQuenchs).ord/sβ ICMP Redirect messages transmitted per second (icmpOutRedirects).odu/sβ ICMP Destination Unreachable messages transmitted per second (icmpOutDestUnreachs).ote/sβ ICMP Time Exceeded messages transmitted per second (icmpOutTimeExcds).
π¦ the -u flag: UDPv4-layer utilization π¦
The output for the flag -u spills the tea on the utilization of the UDPv4-layer (formal SNMP-names between brackets):
indgram/sβ UDP datagrams per second delivered to UDP users (udpInDatagrams).outdgram/sβ UDP datagrams transmitted per second from this entity (udpOutDatagrams).inerr/sβ received UDP datagrams per second that couldn't be delivered for reasons other than there being no application at the destination port (udpInErrors).noport/sβ received UDP datagrams per second where there was genuinely no application listening at the destination port (udpNoPorts). nobody home, iconic abandonment π
π the -z flag: IPv6-layer utilization π
The output for the flag -z is all about the utilization of the IPv6-layer (formal SNMP-names between brackets):
inrecv/sβ input IPv6-datagrams received from interfaces per second, error ones included (ipv6IfStatsInReceives).outreq/sβ IPv6-datagrams per second that local higher-layer protocols handed to IP in requests for transmission (ipv6IfStatsOutRequests). heads up: this counter does not include any forwarded datagrams.inmc/sβ multicast packets per second received by the interface (ipv6IfStatsInMcastPkts).outmc/sβ multicast packets per second transmitted to the interface (ipv6IfStatsOutMcastPkts).indeliv/sβ IP datagrams successfully delivered per second to IPv6 user-protocols, ICMP included (ipv6IfStatsInDelivers).reasmok/sβ IPv6 datagrams successfully reassembled per second (ipv6IfStatsReasmOKs). slay, the fragments came home πfragcre/sβ IPv6 datagram fragments generated per second at this entity (ipv6IfStatsOutFragCreates).
π the -Z flag: IPv6-layer failures π
The output for the flag -Z is the failures-detected-in-the-IPv6-layer report (formal SNMP-names between brackets):
in: dsc/sβ input IPv6 datagrams per second that hit no problems blocking continued processing but were discarded anyway, like for lack of buffer space (ipv6IfStatsInDiscards).in: hder/sβ input datagrams per second discarded because of errors in the IPv6 header (ipv6IfStatsInHdrErrors).in: ader/sβ input datagrams per second discarded because the IPv6 address in the destination field wasn't valid for this entity to receive (ipv6IfStatsInAddrErrors).in: unkp/sβ locally-addressed datagrams per second discarded because of an unknown or unsupported protocol (ipv6IfStatsInUnknownProtos).in: ratim/sβ timeout-situations per second while other IPv6 fragments were still expected for successful reassembly (ipv6ReasmTimeout).in: rfail/sβ failures per second detected by the IPv6 reassembly-algorithm (ipv6IfStatsReasmFails).out: dsc/sβ output IPv6 datagrams per second that had nothing blocking their continued processing but got discarded anyway, e.g. for lack of buffer space (ipv6IfStatsOutDiscards).out: nrt/sβ IPv6 datagrams per second discarded because no route could be found (ipv6IfStatsInNoRoutes).
π§ the -k flag: ICMPv6 general utilization π§
The output for the flag -k gives you the general utilization of the ICMPv6-layer plus per-type ICMP-message info (formal SNMP-names between brackets):
intot/sβ ICMPv6 messages of any type received per second at the interface (ipv6IfIcmpInMsgs).outtot/sβ ICMPv6 messages of any type transmitted per second from this entity (ipv6IfIcmpOutMsgs).inerr/sβ ICMPv6 messages received per second that had ICMP-specific errors, such as bad ICMP checksums, bad length, etc (ipv6IfIcmpInErrors). the audacity of a bad checksum πinnsol/sβ ICMP Neighbor Solicit messages received per second (ipv6IfIcmpInNeighborSolicits).innadv/sβ ICMP Neighbor Advertisement messages received per second (ipv6IfIcmpInNeighborAdvertisements).otnsol/sβ ICMP Neighbor Solicit messages transmitted per second (ipv6IfIcmpOutNeighborSolicits).otnadv/sβ ICMP Neighbor Advertisement messages transmitted per second (ipv6IfIcmpOutNeighborAdvertisements).
β the -K flag: the other ICMPv6 message types β
The output for the flag -K handles the other types of ICMPv6-messages (formal SNMP-names between brackets):
iecho/sβ ICMP Echo (request) messages received per second (ipv6IfIcmpInEchos).ierep/sβ ICMP Echo-Reply messages received per second (ipv6IfIcmpInEchoReplies).oerep/sβ ICMP Echo-Reply messages transmitted per second (ipv6IfIcmpOutEchoReplies).idu/sβ ICMP Destination Unreachable messages received per second (ipv6IfIcmpInDestUnreachs).odu/sβ ICMP Destination Unreachable messages transmitted per second (ipv6IfIcmpOutDestUnreachs).ird/sβ ICMP Redirect messages received per second (ipv6IfIcmpInRedirects).ord/sβ ICMP Redirect messages transmitted per second (ipv6IfIcmpOutRedirect).ite/sβ ICMP Time Exceeded messages received per second (ipv6IfIcmpInTimeExcds).ote/sβ ICMP Time Exceeded messages transmitted per second (ipv6IfIcmpOutTimeExcds).
π the -U flag: UDPv6-layer utilization π
The output for the flag -U is the utilization report for the UDPv6-layer (formal SNMP-names between brackets):
indgram/sβ UDPv6 datagrams per second delivered to UDP users (udpInDatagrams),outdgram/sβ UDPv6 datagrams transmitted per second from this entity (udpOutDatagrams),inerr/sβ received UDPv6 datagrams per second that couldn't be delivered for reasons other than no application sitting at the destination port (udpInErrors).noport/sβ received UDPv6 datagrams per second where there was no application at the destination port (udpNoPorts).
π₯ the -t flag: TCP-layer utilization π₯
The output for the flag -t covers the utilization of the TCP-layer (formal SNMP-names between brackets):
insegs/sβ received segments per second, the in-error ones included (tcpInSegs).outsegs/sβ transmitted segments per second, excluding any that contain only retransmitted octets (tcpOutSegs).actopen/sβ active opens per second that this entity has supported (tcpActiveOpens).pasopen/sβ passive opens per second that this entity has supported (tcpPassiveOpens).nowopenβ the number of connections currently open (snapshot) whose state is either ESTABLISHED or CLOSE-WAIT (tcpCurrEstab). note bestie: this one's a snapshot, not a per-second rate π
π the -T flag: TCP-layer failures π
The output for the flag -T reports the failures detected in the TCP-layer (formal SNMP-names between brackets):
inerr/sβ received segments per second that came in with errors (tcpInErrs).retrans/sβ retransmitted segments per second (tcpRetransSegs).attfail/sβ failed connection attempts per second that have happened at this entity (tcpAttemptFails). we don't talk about those πestabreset/sβ number of resets per second that have occurred at this entity (tcpEstabResets). Connection chaos, but make it per-second πoutreset/sβ number of transmitted segments per second containing theRSTflag (tcpOutRsts). Bye-bye connections, tracked statistically π«Ά
The output for the flag -h provides information about utilization of Infiniband ports:
controllerβ name of controller.portβ controller port.busyβ busy percentage for this port.ipack/sβ number of packets received from this port per second.opack/sβ number of packets transmitted to this port per second.igbps/sβ effective number of gigabits received per second.ogbps/sβ effective number of gigabits transmitted per second.maxgbps/sβ maximum rate as number of gigabits per second.lanesβ number of lanes.
The output for the flag -O provides information about the top-3 of processes with the highest processor consumption:
pidβ process-id (if zero, the process has exited while the pid could not be determined).commandβ the name of the process.cpu%β the percentage of cpu-capacity being consumed. This value can exceed 100% for a multithreaded process running on a multiprocessor machine. Yes, bestie, over 100% is a whole vibe π₯
The output for the flag -G provides information about the top-3 of processes with the highest memory consumption:
pidβ process-id (if zero, the process has exited while the pid could not be determined).commandβ the name of the process.mem%β the percentage of resident memory-utilization by this process.
The output for the flag -D provides information about the top-3 of processes that issue the most read and write accesses to disk:
pidβ process-id (if zero, the process has exited while the pid could not be determined).commandβ the name of the process.dsk%β the percentage of read and write accesses related to the total number of read and write accesses issued on disk by all processes, so a high percentage does not imply a high disk load on system level. Important caveat, no cap π§
The output for the flag -N provides information about the top-3 of processes that issue the most socket transfers for IPv4/IPv6:
pidβ process-id (if zero, the process has exited while the pid could not be determined).commandβ the name of the process.net%β the percentage of socket transfers related to the total number of transfers issued by all processes, so a high percentage does not imply a high network load on system level. Same energy, different resource π
β¨ EXAMPLES β¨
To see today's cpu-activity so far (supposed that atop is logging in the background):
pcp-atopsar
To see the memory occupation for June 5, 2018 between 10:00 and 12:30 (supposed that pmlogger has been logging daily in the background on host acme.com):
pcp-atopsar -m -r $PCP_LOG_DIR/pmlogger/acme.com/20180605 -b 10:00 -e 12:30
or
pcp-atopsar -m -r 20180605 -b 10:00 -e 12:30
or, suppose it is June 8, 2018 at this moment:
pcp-atopsar -m -r yyy -b 10:00 -e 12:30
Write a logfile with atop to record the system behaviour for 30 minutes (30 samples of one minute) and produce all available reports afterwards:
pcp-atop -w /tmp/atoplog 60 30
pcp-atopsar -A -r /tmp/atoplog
To watch TCP activity evolve for ten minutes (10 samples with sixty seconds interval):
pcp-atopsar -t 60 10
To watch the header-lines ('_' as last character) of all reports with only the detail-lines showing critical resource consumption (marker '*' or '+' as last character):
pcp-atopsar -AM | grep '[_*+]$'
π FILES π
/etc/atoprcβ configuration file containing system-wide default values (mainly flags). See related man-page.~/.atoprcβ configuration file containing personal default values (mainly flags). See related man-page.$PCP_LOG_DIR/pmlogger/HOST/YYYYMMDDβ daily data file, whereYYYYMMDDare digits representing the date, andHOSTis the hostname of the machine being logged.
π± PCP ENVIRONMENT π±
Environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the file /etc/pcp.conf contains the local values for these variables. The $PCP_CONF variable may be used to specify an alternative configuration file, as described in pcp.conf(5).
For environment variables affecting PCP tools, see pmGetOptions(3).
π DEBUGGING OPTIONS π
The -D or --debug pcp option enables the output of additional diagnostics on stderr to help triage problems, although the information is sometimes cryptic and primarily intended to provide guidance for developers rather than end-users. debug is a comma separated list of debugging options; use pmdbg(1) with the -l option to obtain a list of the available debugging options and their meaning.
π SEE ALSO π
Go peek at PCPIntro(1), pcp(1), pcp-atop(1), mkaf(1), pmlogger(1), pmlogger_daily(1) and pcp-atoprc(5). The whole PCP bestie cinematic universe is right there π
Source/version: Performance Co-Pilot / PCP β PCP-ATOPSAR(1) β and the date is the one doing its little footer cameo, not retyping the whole line, periodt. π
π
π¦ where this page comes from
- centos-stream 10: pcp-doc 7.1.5-6.el10 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 43: pcp-doc 7.0.1-1.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: pcp-doc 7.1.0-6.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- ubuntu resolute: pcp 7.1.1-1
- Copyright (c) 2000-2021 Gerlof Langeveld
- Copyright (c) 2017-2021 Red Hat
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms