(Updated 2025–2026 – most frequently used commands, configs & patterns)
systemctl status pmcd pmlogger pmproxy # core trio systemctl restart pmcd pmlogger pmproxy systemctl enable --now pmcd pmlogger pmproxy
journalctl -u pmcd -u pmlogger -u pmproxy -xe # quick error check journalctl -u pmlogger -f # tail logging activity
pmprobe -v kernel.all.load # → should show 1 instance pmprobe -v mem.physmem kernel.all.cpu.nice pmprobe -v disk.dev.total # disk metrics present?
pminfo -f kernel.all.load # current value(s) pminfo -f -n PMNS_DEFAULT kernel.all.pressure.* # pressure metrics (cgroup v2)
pmnsdump # dump full namespace (huge!)
pmlc # interactive → show config status pmlc <<EOF show status show mandatory on default EOF
ls -lh /var/lib/pcp/pmlogger/$(hostname -s)/
pmlogger_daily -X -r -v
pmlogger -r -T 5s -c /etc/pcp/pmlogger/config.d/custom
-l /tmp/pmlogger.test.log testarchive
log mandatory on default { # ─────────────────────────────────────── # Always include – system health baseline # ─────────────────────────────────────── mem.physmem mem.util.used [ every 5 sec ] mem.util.free mem.util.cached kernel.all.load kernel.all.cpu.{user,system,wait,idle,steal} kernel.all.pressure.{cpu,mem,io}.{some,full}.avg10
# ───────────────────────────────────────
# Disk – choose what matches your system
# ───────────────────────────────────────
disk.dev.read [ every 5 sec ]
disk.dev.write
disk.dev.total
disk.dev.avactive
disk.dev.await
# ───────────────────────────────────────
# Network – common & useful
# ───────────────────────────────────────
network.interface.in.bytes [ every 10 sec ]
network.interface.out.bytes
network.interface.total.bytes [ every 10 sec ]
network.tcpconn.established
# ───────────────────────────────────────
# Container / cgroup / proc (if pmda-cgroup / pmda-proc active)
# ───────────────────────────────────────
proc.hog.cpu
cgroup.cpuacct.usage
cgroup.memory.usage
cgroup.pressure.memory.some.avg10
}
[optional] log advisory on { kernel.all.load > 25 mem.util.used > 0.95 * mem.physmem kernel.all.pressure.cpu.some.avg10 > 0.4 }
pmlogsummary -K /var/lib/pcp/pmlogger//202603.0.*
pmlogsummary -K -l mem.util.used kernel.all.load /var/lib/pcp/pmlogger//20260
pmlogsummary -K -l -5 kernel.all.load /var/lib/pcp/pmlogger//202603
pmlogsummary -K -l mem.util.swapused /var/lib/pcp/pmlogger//2026
| awk '$NF > 1024'
pmrep :vmstat -t 5s pmrep :iostat -t 5s pmrep :cpu -t 5s
pmrep -t 5s mem.util.{used,free,cached,swapused}
kernel.all.pressure.mem.{some,full}.avg10
pmrep -t 10s -i 'eth.|en.|ens.|bond.'
network.interface.total.bytes
pmrep -t 60s -T '@30 minutes ago' kernel.all.load
systemctl status pmproxy
curl 'http://localhost:44322/metrics?names=kernel.all.load,mem.util.used'
Type: Prometheus (yes, really – pmproxy speaks Prometheus format) URL: http://localhost:44322 Access: Server (Proxy)
pmlogsummary -K -l kernel.all.load /var/lib/pcp/pmlogger//202603
| grep -E '[1-9][0-9].'
pmrep -h server1 -h server2 :cpu -t 10s
pmda -l
pmdiff -t 60s -S @1hour -T @now
/var/lib/pcp/pmlogger/$(hostname)/202603*.0.*
| sort -k3 -nr | head -20
find /var/lib/pcp/pmlogger/ -name '.0.' -mtime -1 -size +100M -ls
[ ] systemctl is-active pmcd pmlogger pmproxy [ ] pmprobe -v kernel.all.load → 1 instance? [ ] pminfo -f kernel.all.load → values appear? [ ] ls -l /var/lib/pcp/pmlogger/*/ → archives growing? [ ] pmlc show status → logging mandatory? [ ] journalctl -u pmlogger -u pmcd → errors / permission issues? [ ] pmproxy listening? ss -ltn | grep 44322 [ ] Enough disk space? df -h /var/lib/pcp