監控特定進程 (如搜狗輸入法) 的 CPU、內存、文件 IO、網絡連接、打開文件描述符,並繪製隨時間變化的趨勢圖。
Sigar (System Information Gatherer And Reporter) 是跨平台原生庫,提供豐富接口:
sigar_proc_cpu_get:進程 CPU 使用率、時間。sigar_proc_mem_get:RSS、虛擬內存、共享內存。sigar_proc_fd_get:打開文件描述符列表。sigar_net_connection_list_get:TCP/UDP 連接狀態。sigar_file_system_usage_get:磁盤 IO。org.hyperic.sigar.Sigar sigar = new Sigar();
long pid = Sigar.getPid(); // 或通過名稱查找
ProcCpu cpu = sigar.getProcCpu(pid);
ProcMem mem = sigar.getProcMem(pid);
ProcFd fd = sigar.getProcFd(pid);
System.out.println("CPU%: " + cpu.getPercent());
System.out.println("RSS: " + mem.getResident());
System.out.println("FD Count: " + fd.getTotal());
Grafana + Prometheus 全棧方案。/proc//stat 、/proc//fd/ 直接讀取 (僅 Linux)。pidstat -p 1 命令行監控。Java Flight Recorder (JFR) 針對 JVM 進程。Sigar 適合跨平台、多語言、需豐富指標的場景;Linux 專用可直接讀 /proc 更輕量。配合時序數據庫 + 可視化組件即可得到專業趨勢圖。