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

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

大佬们有现成的方案吗?

举报· 3198 次点击
登录 注册 站外分享
30 条回复  
cassidy0134 初学 昨天 10:58
或者,用 docker compose 部署这十个服务。然后 docker top 看 usage
cassidy0134 初学 昨天 10:57
atop ,默认每十分钟拿一次机器上进程占用情况。
realityone 初学 昨天 10:57
newrelic 免费版
imherer 楼主 初学 昨天 10:56
@yuan1028 嗯,这个也在用
imherer 楼主 初学 昨天 10:56
@COW 嗯,目前在尝试 process-exporter
COW 初学 昨天 10:54
不想太啰嗦了,这样说你就明白了。节点监控用 node exporter ,进程监控用 process exporter ,容器监控基本都是去集成 k8s 了。
yuan1028 初学 昨天 10:49
docker 部署吗?可以看看 https://github.com/google/cadvisor
ala2008 小成 昨天 10:41
我们微服务 java 用了 jar 包,应该也可以用探针的方式吧
imherer 楼主 初学 昨天 10:37
@yuandj #21 非常感谢,仔细看了下你这是针对单个机器的指标对吧。那可能不太符合我的需求,我想要的是单个机器上的某些服务
123下一页
返回顶部