是什么导致sleeping我看到这些过程top?如果我要调用PHP的sleep()函数,那会增加sleeping我看到的计数top吗?拥有高数字是否有任何缺点sleeping?
'man top'所说的是:RES = CODE + DATA
q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.
RES = CODE + DATA.
r: CODE -- Code size (kb)
The amount of physical memory devoted to executable code, also known as the 'text        resident set' size or TRS.
s: DATA -- Data+Stack size (kb)
The amount of physical memory devoted to other than executable code, also known as the   'data >resident set' size or DRS.
当我运行'top -p 4258'时,我得到以下内容: …
我有一个让我发疯的问题.我使用以下命令在批处理模式下运行top,
top -b -n 1
问题是我可以在批处理模式下运行100次,但CPU使用率永远不会超过原始值.内存使用情况按预期更改,但CPU保持不变.如果我在另一个窗口中同时运行另一个顶部,那么CPU使用率正在改变,但在批处理模式下不是顶部.
基本上,CPU统计数据似乎在批处理模式下不会改变,而在交互模式下也是如此.有谁知道为什么?自己尝试一下,运行上面的命令几次并观察CPU使用情况保持不变,然后在交互模式下运行top并观察CPU使用情况不断变化.
哪里top申请获得在Linux上的数据?我会对实时CPU负载/ pid数据感兴趣.(我在/ proc/pid手册页中阅读了所有文档,但信息不存在).
pid是一个jboss.我需要轻量级数据(轻松导出).
我正在制作一个小型Android应用程序,以显示当前的总CPU使用率,如Windows任务管理器中的选项卡性能.我使用"top -m 1 -n 1 -d 1"来获取CPU使用率,但我并不真正理解"top"的结果.
结果如:
User 5%, system 15%, IOW 0%, IRQ 0%
User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92
PID     CPU%  S   #THR    VSS    RSS    UID     Name
213     11%   R    1      900K   340K   app_16   top
CPU使用率= ??? 我如何计算总CPU使用率?
我正在尝试使用GNU coreutil top的公式计算CPU使用率百分比.但是top使用了一些half_total来计算百分比,即百分比增加0.5.
在top的源代码的 utils.c中,以下行(3.8 beta1,行号:459): -
*out ++ =(int)((*diffs ++*1000 + half_total)/ total_change);
这转换为:((*diffs ++*1000)/ total_change)+ 1/2因此,它总是给出一个数字,即:"10倍百分比,再加上0.5".因此,如果百分比为x,则返回10x + 0.5.
谁能解释这个平均值是如何计算的?或至少有一些指针,我可以得到帮助?
PS:为什么我们不能(*diffs++/total_change) * 100用来获得所需的百分比?
Top的源代码位于: - http://downloads.sourceforge.net/unixtop/top-3.8beta1.tar.gz?modtime=1210117842&big_mirror=0
我希望使用a来压缩top命令的一般信息top parameter.
一般信息我的意思是以下内容:
top - 09:35:05 up  3:26,  2 users,  load average: 0.29, 0.22, 0.21
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.3%us,  0.7%sy,  0.0%ni, 96.3%id,  0.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3840932k total,  2687880k used,  1153052k free,    88380k buffers
Swap:  3998716k total,        0k used,  3998716k free,   987076k cached
我不想做的是:
top -u user | grep process_name
要么
top -bp $(pgrep process_name) | do_something
我怎样才能做到这一点?
注意:我在Ubuntu 12.04上,顶级版本是3.2.8.
运行top -b -n 1时,该命令始终返回相同的CPU值.连续5次考虑以下测试运行:
[user@server ~]$ top -b -n 5 -d.2 | grep "Cpu(s)"
Cpu(s): 18.5%us, 10.0%sy,  0.0%ni, 67.0%id,  4.2%wa,  0.0%hi,  0.2%si,  0.1%st
Cpu(s): 39.8%us, 27.7%sy,  0.0%ni, 31.3%id,  0.0%wa,  0.0%hi,  1.2%si,  0.0%st
Cpu(s): 39.0%us, 35.4%sy,  0.0%ni, 23.2%id,  0.0%wa,  0.0%hi,  1.2%si,  1.2%st
Cpu(s): 41.2%us, 34.1%sy,  0.0%ni, 15.3%id,  1.2%wa,  0.0%hi,  2.4%si,  5.9%st
Cpu(s): 59.0%us, 30.1%sy,  0.0%ni,  4.8%id,  0.0%wa,  0.0%hi,  3.6%si,  2.4%st
[user@server ~]$ top -b -n 5 -d.2 | grep "Cpu(s)"
Cpu(s): 18.5%us, 10.0%sy,  0.0%ni, 67.0%id,  4.2%wa,  0.0%hi,  0.2%si,  0.1%st
Cpu(s): 18.9%us, …在Unix/Linux中,top命令具有-H选项,以提供有关进程内线程的更多详细信息.在Macosx上似乎没有-H选项!Macosx有类似的东西吗?
由于我不打算进入的原因,我需要在FreeBSD 8.1上的Python线程的子进程中运行'top -m io -d 2 10'的变体.麻烦的是,似乎有时会产生SIGTTOU(在某些依赖于代码的条件下,我还没有破译),完全停止顶部和线程.其他时候,似乎没有生产SIGTTOU,但无论如何顶部或线程都会卡住.
top的输出应该为系统中的前10个进程生成两组IO统计数据,其中第一组是"绝对"数字,第二组是自上一组以来的统计数据的增量差异,比之前提前一秒.在终端或shell脚本中运行此命令,无论是否重定向输出,都可以正常工作.
当问题发生时,似乎'top'写入第一组输出,但在它输出第二组之前挂起/接收SIGTTOU.在下面的示例代码中,只有一组进程统计信息被写入输出文件.
我在'truss'下发现了运行python脚本的SIGTTOU信号,但似乎'truss'和'top'之间的交互本身可能是一个混乱的问题,因为简单的运行truss top -d 2产生信号并挂起,如下所示:
...
ioctl(1,TIOCGETA,0xffffe460)             = 0 (0x0)
ioctl(1,TIOCGETA,0xc6b138)           = 0 (0x0)
ioctl(1,TIOCGETA,0xffffe410)             = 0 (0x0)
ioctl(1,TIOCGWINSZ,0xffffe460)           = 0 (0x0)
ioctl(1,TIOCGWINSZ,0xffffe930)           = 0 (0x0)
ioctl(1,TIOCGETA,0x50e560)           = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGINT|SIGQUIT|SIGTSTP,0x0) = 0 (0x0)
ioctl(1,TIOCGETA,0x50e560)           = 0 (0x0)
SIGNAL 22 (SIGTTOU)
这是一个示例Python脚本,它可以重现hang和/或SIGTTOU:
import subprocess
from threading import Thread
def run():
    with open("top.log", "wb") as f:
        subprocess.Popen(("/usr/bin/top", "-m", "io", "-d", "2", "10"), stdout=f, stderr=f, stdin=subprocess.PIPE).communicate()
if __name__ == "__main__":
    th = …top-command ×10
linux ×7
process ×2
admin ×1
android ×1
bash ×1
batch-file ×1
centos5 ×1
command-line ×1
cpu ×1
cpu-usage ×1
freebsd ×1
linux-kernel ×1
macos ×1
memory ×1
php ×1
pid ×1
python ×1
signals ×1
unix ×1