如何采集(监控)服务器上一个或多个进程的 CPU 内存占用等数据

255 天前
 imherer

现在一台服务器上可能会部署多个服务(不到 10 个的样子,是不同的服务,服务名不一样),如何采集这些进程的 CPU 、内存占用等数据呢

目前想到的是写一个程序去读 top 命令的结果,但是假如我有 10 个服务的话,我得同时执行 10 条 top 命令,不知道 top 命令本身性能怎么样,会不会对服务器负载造成影响

大佬们有现成的方案吗?

4021 次点击
所在节点    程序员
50 条回复
dbak
255 天前
这个?
theniupa
255 天前
nmon
git00ll
255 天前
prometheus 是机器级别的吧, 进程级别的没看到过有 exporter
hugowangnz
255 天前
push gateway 可以主动发送数据到 Prometheus
treexie
255 天前
iceheart
255 天前
定时解析 /proc/pid/stat 文件
dier
254 天前
netdata 应该可以实现你的需求

julyclyde
254 天前
首先,读 top 肯定是错误的
二手数据

应该读 proc 或者 cgroup
imherer
254 天前
@julyclyde 嗯,目前用了 process-exporter ,满足需求
CodeWind
254 天前
@imherer #5 有没有可能说的是 prometheus 的解决方案,比如他的 process exporter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1100081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX