【问题标题】:Unix CPU/Memory MonitoringUnix CPU/内存监控
【发布时间】:2018-11-08 17:37:12
【问题描述】:

我想开发一个可以监控许多 Unix 客户端的 CPU/内存份额的程序。
用 C 编写的 Unix 客户端程序运行命令 popen 以获取 CPU / 内存信息并使用套接字将其发送到服务器。

例如,在 Solaris 11 上,使用以下命令获取 CPU / 内存信息。

CPU : top -n 1 |grep "CPU"|sed -n 1p|awk '{print $3}'|sed 's/[^0-9.0-9]//g'|awk '{print 100-$1}'
Memory : top -n 1 |grep \"Mem\" |awk '{print $2, $5}'|sed 's/[^0-9]/ /g'|awk '{print $2/$1*100}'

这里有问题。
Solaris 9、10 没有 top 命令。
HP-UX 不能使用 grep,因为它不能执行一次命令。
AIX 的 topas 也是如此。

如果你有其他命令或方式,请推荐给我。

【问题讨论】:

  • 您是否检查了apropos cmd 以找到 top 的类似服务(这真的让我感到惊讶,但 Solaris 文档没有列出 top)。但更重要的是每条流水线可以缩减为1个awk程序,即top | awk '/Mem/{gsub(/[^0-9]/," ");print $2/$1*100}'` 你需要重新排列你的 $2、$5 等,这样你才能真正得到你想要的输出.祝你好运。
  • Solaris:prstat。许多系统监控解决方案都有可以做到这一点的代理,其中一些是开源的,所以你可以看看。前任。扎比克斯,纳吉奥斯。但请注意,这些工具中的绝大多数(包括付费工具)在分区、虚拟系统、云系统上都无法正常工作……它们无法访问虚拟机管理程序数据,因此它们报告的数字没有任何意义。前任。 50% 的 CPU 在权利发生变化时与时间流逝不一样。无法比较。

标签: memory cpu solaris aix hp-ux


【解决方案1】:

您知道在 HP-UX 中您可以使用一目了然。 你可以使用 top 但这不是一个更好的决定。

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2020-04-25
    • 2023-03-28
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多