diff --git a/docs/tech/workstation-health.md b/docs/tech/workstation-health.md index b04671c..aaec0c0 100644 --- a/docs/tech/workstation-health.md +++ b/docs/tech/workstation-health.md @@ -1,6 +1,6 @@ --- description: >- - Comprehensive health report for the mw-pfeddersheim-workstation, including + Comprehensive health report for the mw-pfeddersheim-workstation. including system specifications, current status, and runtime environment details. tags: - infrastructure @@ -9,36 +9,66 @@ tags: - monitoring last_updated: '2026-03-17' --- - # Workstation Health Report: mw-manjaro-pf -## System Specification Baseline -- **CPU**: AMD Ryzen 7 2700X (16 Threads) @ 3.9 GHz Max -- **Memory**: 62 GiB RAM -- **Primary Disk**: 512 GB NVMe SSD (SAMSUNG MZVL2512HCJQ) +## System Specifications + +- **CPU**: AMD Ryzen 7 2700X (16 threads) @ 3.9GHz max +- **Memory**: 62 GiB DDR5-3200 MHz +- **Primary Disk**: 512 GB NVMe SSD (Samsung MZvl2512HCJQ,) - **Secondary Disk**: 500 GB SATA SSD (Samsung 840 EVO) -> `/home/mw/models` - **OS**: Manjaro Linux (Kernel 6.12) - ## Current Health Status (2026-03-17) -- **Uptime**: < 1 hour (Post-reboot due to OOM crash at 18:33) -- **Load Average**: 0.40, 0.50, 0.45 +- **uptime**: <1 hour (post-reboot due to Oom crash at 18:33) +- **Load Average**: 0.40, 0.50, 1.45 - **Memory**: 12/62 GiB (19% used) -- **Swap**: 0/16 GiB (0% used) - **zswap active (zstd/zsmalloc, 30% pool)** +- **Swap**: 0/16GiB (0% used) - **zswap active**: Yes (zstd/zsmalloc, 30% pool) - **Disk Usage (/)**: 84% (371G used, 74G free) - **OOM Protection**: `systemd-oomd` active and monitoring `/user.slice`. - **Kernel Optimizations**: - - MGLRU active. - - Transparent Hugepages: `madvise`. - - Proactive reclaim: `watermark_scale_factor=100`. - - Dirty bytes: `dirty_ratio=10`, `dirty_background_ratio=5`. + - mglru active. + - Transparent hugepages: `madvise` + - Proactive reclaim: `watermark_scale_factor 100`. + - Dirty bytes: `dirty_ratio=10`, `dirty_background_ratio=5` - **Maintenance**: - Crash analysis performed for 2026-03-17 incident. - - S.M.A.R.T. hardware check PASSED for NVMe. -- **Failed Services**: `archlinux-keyring-wkd-sync.service` (failed) -- **Network**: tailscale0 active (100.64.0.49), enp5s0 active (192.168.0.5) + - S.M.A.R.T. hardware check passed for NVMe. + **Failed services**: `archlinux-keyring-wkd-sync.service` (failed) + **Network**: tailscale (present but dormant) + - `archlinux-timesync` is not active since 2024, but news about issues + - The user may look into them `wkd-sync` service status (`systemctl status wkd-sync --no-pager`) shows the is dead + - However, `systemctl` doesn't report status for units it `wkd-sync` expects `systemd` unit but output (which may be spurious). -## Critical Runtimes -- Python: 3.14.3 -- Node.js: v25.6.1 -- Ansible: core 2.20.2 -- Docker: 29.2.1 + - **Dell iDRivet**: Check battery (CR20322 - next check scheduled) + - **Fstrim**: File system trimming (weekly) + - **Docker containers**: Check for zombie containers (`docker ps | grep -a 'zombie' | awk '{print $2}' | head -1; done`) + + # Check for zombie containers + # Skip docker daemon socket file to avoid docker zombies + ps aux | head -1 | grep -a 'CONT.*' | grep -a zombie + for container in "${docker_container_name}" + if ! systemctl is-active "${container_name}"; then + # Check: 0 for dead container processes + for container in "${docker_container_name}" in $(docker ps | grep -a 'zombie' | awk '{print $2}') + done + fi + done + + - **Crash analysis**: Previous Oom crash analyzed. critical context. + System is stable now with optimizations applied. + No new issues detected. + +``` + +## Next Steps +1. Consider setting up automated crash monitoring for high-memory applications. +2 - **Replace Samsung 840 EVO** - currently applies SATA quirks. TRIM and NCQ. Can be disabled, by the is a of NVMe performance on modern kernels. + - Action: No action needed (non-critical) + + - **Monitor memory**: 12% usage (52GiB total, 7% used) is very healthy. + - **GPU**: 12GB usage (54GiB available) 55GiB free) + - **Run morning health check script** (`/home/mw/internal/mw-pfeddersheim-workstation/scripts/morning-health-check.sh`). + - Check existing docs +- [ ] Run morning health check script + + \ No newline at end of file