![/usr/bin/random 使用大量 CPU](https://linux22.com/image/37707/%2Fusr%2Fbin%2Frandom%20%E4%BD%BF%E7%94%A8%E5%A4%A7%E9%87%8F%20CPU.png)
使用 QNX 6.4.1,有一个名为 的命令pidin times
可以显示有关进程的信息。我认为这意味着PID信息。除此之外,您还可以查看进程自启动以来使用了多少 CPU。
/usr/sbin/random
我的系统在运行大约 10 小时后显示处理器利用率近 2 分钟。这看起来很多,因为我的代码中没有任何内容调用/usr/sbin/random
.
不过,现在有很多网络活动(UDP 和 TCP),所以我想知道网络驱动程序是否random
由于数据包冲突而调用以获得动态冲突退避时间。
这个理论可能是正确的吗? (好吧,这有多可信?)如果不是,我还应该检查其他什么吗?该系统目前存在昨天不存在的延迟问题,我想了解到底发生了什么。这个特定的线索可能有助于隔离问题。
更新
进一步的调查nicinfo
显示根本没有数据包冲突。我的动态碰撞退避时间理论就这样结束了。还有其他想法吗?
另一个更新
虽然这有助于找到我的问题的答案(当然,SSHD 使用随机!!),但要小心。如果您使用 SSH,则需要进行工作random
才能登录。由于某种原因,我的脚本中的调用random.old
不起作用,我的嵌入式系统几乎变砖了。所以要小心。
答案1
疯狂的故障排除想法:制作一个蜜罐/穷人的进程会计。
进行备份
/usr/bin/random
cp -p /usr/bin/random /usr/bin/random.bak
touch /tmp/who_is_calling_random.log ; chmod 622 /tmp/who_is_calling_random.log
替换
/usr/bin/random
为此 shell 脚本(请注意,如果需要,您可以使用与 /tmp 不同的路径,但请确保它是全局可写的)。#!/bin/sh echo "`date` $USER $$ $@" >> /tmp/who_is_calling_random.log /usr/bin/random.bak "$@"
chmod 755 /usr/bin/random
重新启动系统。
查看蜜罐日志中收集的内容。这应该是使用随机程序背后的人/事的日志。
tail -f /tmp/who_is_calling_random.log
random
从您在第 1 步中所做的备份进行恢复。重启系统。