我正在研究基于ARM的处理器(操作系统版本:Linux 3.4.35),我需要在某些进程运行时分析处理器的性能,通过输入top命令,我可以看到一些统计数据,但我不明白那里的细节,我应该寻找什么信息?
这里是我需要了解的细节(CPU usr 和 CPU sys 之间的区别,什么是 nic、idle、io irq 和 Sirq 以及如何清除缓存 RAM):
Mem: 32184K used, 648K free, 0K shrd, 676K buff, 7536K cached
CPU: 11.7% usr 29.4% sys 0.0% nic 41.1% idle 11.7% io 0.0% irq 5.8% sirq
答案1
开始学习给定 Linux/Bash 命令的最佳位置是参考给定命令的手册页或联机帮助页。
这是一个链接到top
联机帮助页。在 shell 中,您应该能够通过简单地执行 来阅读联机帮助页man top
。我还将添加一个链接博客解释top
。
您的问题的相关部分可以在部分找到2b.任务和CPU状态联机帮助页的:
默认情况下,显示这些单独类别的百分比。下面显示两个标签,首先显示较新内核版本的标签。
us, user : time running un-niced user processes sy, system : time running kernel processes ni, nice : time running niced user processes id, idle : time spent in the kernel idle handler wa, IO-wait : time waiting for I/O completion hi : time spent servicing hardware interrupts si : time spent servicing software interrupts
us
和ni
分别是花费在未优化和优化进程上的 CPU 使用百分比。好的值是用户空间进程,它们要么是好的,要么是不好的,因为它们可以被赋予一个优先级值,要么与更重要的内核或系统进程合作并避开,要么不合作。这是一个相当简单的解释的链接友善和优先。
其他的应该相当简单:
idle
是指有多少处理器容量处于空闲或未使用状态。io
是处理器的输入/输出队列。irq
和srq
分别是硬件中断和软件中断。
如果您想了解有关如何对top
输出进行排序的更多信息,这里是一个相关的 Stack Overflow 帖子。此外,如果您想了解有关清除缓存内存/缓冲区的更多信息,这里是一个 U&L 堆栈交换站。
请阅读我提供的所有链接,如果需要,您应该更深入地研究 Linux 处理和内存处理的工作原理。网上有大量信息。