有没有人知道一种方法来监视单个程序的负载和资源使用情况。 我所拥有的是一个过程,我想知道它将多less负载放在服务器上,但这不是我可以“监视”来感受的东西。
我想要做的是类似的
$ monitor“someapp”&
让它运行,然后检查某种日志。 是否有任何红帽软件包或可下载的程序可以或多或less地监控整个stream程的负载和资源使用情况?
SystemTap是你在找什么。 这不是一件容易的事(但也不会太难),但是它会得到回报。
SystemTap是用于这种types的数据收集的RH指定和支持的工具。 rpm包名称是systemtap 。 这与Solaris的Dtrace类似。
而且,不,这不是一个模糊的问题。 但是…是的,只看一个过程的行为而忽略系统的其他部分可能会给你一个模糊的答案 。
问题是你的请求没有很好的定义。 你说你想监视“把多less负载放在服务器上”,但这不是一回事。 程序可能会导致I / O负载,CPU负载,networking负载,内存'负载'(即内存不足),甚至中断负载(如果它们与硬件交互),但所有这些东西然后由内核聚合效率。
例如,如果您的进程使用另一个程序正在使用的共享库,那么它计算哪个程序呢? 如果它使用一个当前未被使用的共享库(因此不被加载)呢? 如果两个进程同时请求加载一个共享库,哪一个磁盘I / O得到指控? 如果这些磁盘块处于预读高速caching,因为完全不相关的进程碰巧读取了“附近”磁盘上的文件,该怎么办? 一个操作系统是一个操作系统…因此,它performance出复杂的交互作用,不一定允许单独分析各个部分。
有些东西,会给你很好的信息:
当然,顶级会根据一些指标向您显示排名列表,但请仔细阅读手册页 ,了解如何进行记忆会计。
/ proc /是你的进程的内核调用视图,包括它打开的文件句柄,映射的内存,各种各样的东西。 有关详细信息,请参阅联机帮助页 。
strace将跟踪一个程序所做的系统调用,所以至less在某种程度上你可以告诉它在做什么。 再次,该手册有详细的信息。