9

我只想知道如何找到特定进程在特定时间(比如 5 秒)的内存消耗

我是 linux 新手。因此,将不胜感激执行此操作的详细步骤

4

4 回答 4

29

使用top -p PID其中 PID 是进程 ID。应显示有关进程的信息,包括已使用的系统内存百分比。键入d和以秒为单位的整数以更改刷新率。

于 2013-02-01T08:06:14.233 回答
5

使用watch定期执行你的脚本。这是一个例子:

watch 'cat /proc/status' --interval=5

watch 'ps aux' --interval=5
于 2013-02-01T07:42:32.543 回答
5

您可以使用 SNMP 来获取网络中特定设备中进程的内存和 CPU 使用情况:)

要求:

  • 运行该进程的设备应该已安装并运行 snmp
  • snmp 应配置为接受来自您将运行以下脚本的请求(可以在 snmpd.conf 中配置)
  • 您应该知道要监控的进程的进程 id(pid)

笔记:

  • HOST-RESOURCES-MIB::hrSWRunPerfCPU是该进程消耗的系统总 CPU 资源的厘秒数。请注意,在多处理器系统上,该值可能会在 1 厘秒的实际(挂钟)时间内增加超过 1 厘秒。

  • HOST-RESOURCES-MIB::hrSWRunPerfMem是分配给该进程的实际系统内存总量。

**

进程监控脚本:

**

echo "IP: "
read ip
echo "specfiy pid: "
read pid
echo "interval in seconds:"
read interval

while [ 1 ]
do
    date
    snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfCPU.$pid
    snmpget -v2c -c public $ip HOST-RESOURCES-MIB::hrSWRunPerfMem.$pid
    sleep $interval;
done
于 2015-03-17T02:34:18.743 回答
3

这个之前发布的问题:

如何测量应用程序或进程的实际内存使用情况?

似乎它可以彻底解决您的问题。

编辑:我个人最喜欢的用于检查进程资源使用情况的 Linux 实用程序是顶级的,尽管由于我链接的问题中解释的原因,它可能会产生误导。

于 2013-02-01T07:36:37.577 回答