Linux   发布时间:2022-05-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Linux中每个进程的程序化资源监视大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有一种有效的解决方案来监控 Linux中的进程资源消耗(cpu,内存,网络带宽).我想在C中编写一个守护进程来监视某些给定的PID.据我所知,经典的解决方案是定期从/ proc读取信息,但这似乎不是最有效的方式(它涉及许多系统调用).例如,要监视50个进程每秒的内存使用情况,我必须每秒从/ proc打开,读取和关闭50个文件(这意味着150个系统调用).更不用说阅读这些文件时涉及的解析.

另一个问题是网络带宽消耗:对于我想监视的每个进程,这都不容易计算.我认为NetHogs采用的解决方案涉及相当高的开销:它使用libpcap捕获并分析每个数据包,然后对每个数据包确定本地端口并在/ proc中搜索以找到相应的进程.

您是否知道这些方法是否有更有效的替代方案或任何处理此问题的库?

解决方法

/usr/src/linux/Documentation/accounTing/taskstats.txt

此界面允许您根据您选择的进程监视cpu,内存和I / O使用情况.您只需在单个套接字上设置和接收消息.

这不区分(例如)磁盘I / O与网络I / O.如果这对您很重要,您可能会使用跟踪套接字操作的LD_PRELOAD拦截库.当然,假设你可以控制你想要观察的程序的启动,并且它们不会在背后诡计.

如果那些仍然失败,我想不出任何轻量级解决方案,但linux-audit可以全局跟踪系统调用,这似乎比重新捕获和分析您自己的网络流量更直接.

大佬总结

以上是大佬教程为你收集整理的Linux中每个进程的程序化资源监视全部内容,希望文章能够帮你解决Linux中每个进程的程序化资源监视所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:内存