top 使用top命令会实时的刷新系统的负载信息 top命令的选项很多,此处只列举我个人觉得比较实用的几个选项,具体选项可以参考man top 进行查看 -u user 只显示指定用户启动的进程 -p pid 只显示指定pid的进程 -d secs 指定列表的刷新速度 -i 不显示任何闲置(idle)或无用的(zombie)的进程/或在交互模式下按i也可以实现此功能,这样只输出活跃的进程,看上去比较简洁。
统计信息区前五行是系统整体的统计信息。 第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下: 01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。这三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 第二、三行为进程和CPU的信息,内容如下: Tasks: 29 total 进程总数 1 running 正在运行的进程数 28 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 Cpu(s): 0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 98.7% id 空闲CPU百分比---这个值越低说明cpu越忙 0.0% wa 等待输入输出的CPU时间百分比 0.0% hi 硬中断所占的百分比 0.0% si 软中断所占的百分比 最后两行为内存信息。内容如下: Mem: 191272k total 物理内存总量 173656k used 使用的物理内存总量 17616k free 空闲内存总量 22052k buffers 用作内核缓存的内存量 Swap: 192772k total 交换区总量 0k used 使用的交换区总量 192772k free 空闲交换区总量 123988k cached 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。 相应的内存再次被换出时可不必再对交换区写入。 小技巧,在使用top命令时按下m,内存使用栏会出现使用百分比,如下, 按下e键可以切换展示的单位
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。 列名 含义 PID 进程id PPID 父进程id RUSER Real user name UID 进程所有者的用户id USER 进程所有者的用户名 GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? PR 优先级 NI nice值。负值表示高优先级,正值表示低优先级(-19~+20,共40个等级,-19为优先级最高) P 最后使用的CPU,仅在多CPU环境下有意义 %CPU 上次更新到现在的CPU时间占用百分比 TIME 进程使用的CPU时间总计,单位秒 TIME+ 进程使用的CPU时间总计,单位1/100秒 %MEM 进程使用的物理内存百分比 VIRT 进程使用的虚拟内存总量,指的是进程占用的虚拟内存大小,包括实际使用的内存和暂时未使用的内存空间,包括进程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间等,在Linux操作系统中,程序在运行时会申请一定的内存空间用于存储程序数据和运行时信息。在程序运行过程中,有些内存空间并不是一直都被占用的,可能有些时间段内是暂时空闲的。这些内存空间被称为暂时未使用的空间,也称为虚拟内存(注意:top命令中的VIRT是一个进程的虚拟内存大小,包括了程序中已经申请的内存、共享库中已加载的内存、堆和栈等。而系统的最大内存是指该系统所能够支持的最大物理内存的大小。 因此,一个进程的VIRT大小可能超过系统最大内存大小,是因为虚拟内存可以被映射到物理内存或者硬盘上的交换分区中。所以,即使系统物理内存已满,进程也可以从交换分区中获取空间,从而使其虚拟内存超过系统的最大内存大小。) RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA,指的是进程当前正在使用的物理内存大小,不包括暂时未使用的内存空间和结果数据存储在虚拟内存中的内存大小。也就是应用程序的常驻内存(RES表示进程的常驻内存大小,准确表示当前有多少物理内存被这个进程消费。这个大小永远要比VIRT小,因为程序大部分使用到c库,这些库的代码是共享的,所以它们不会被计算在RES中。) SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb SHR 共享内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数。 S 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 COMMAND 命令名/命令行 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志, |
扩展,关于硬中断和软中断 什么是硬中断 定义:硬中断(Hardware interrupt)是由于硬件设备产生的中断信号,当硬件设备需要CPU的处理时,它会向CPU发送一个中断请求,CPU在收到中断请求后会暂停正在执行的任务,保存当前任务的状态,并跳转到中断处理程序的地址去执行。在中断处理程序执行结束后,CPU再恢复之前的任务并继续执行硬中断可以是外部设备产生的,如鼠标、键盘,磁盘驱动器,网络适配器等,也可以是CPU自身产生的,如除零错误,缺页中断等(因为这些错误会导致当前进程无法继续执行,需要中断当前进程,处理异常情况)。 为什么会产生硬中断? 因为硬件的处理速度相比cpu的处理速度更快,硬件通常是由电子电路或其他物理部件,如磁盘组成的,这些部件可以直接执行计算或操作,而无需等待cpu完成指令,而cpu则需要按照程序逐步执行指令,这需要时间,---硬件为了得到及时的响应,并迅速得到处理,硬件回向cpu发送中断信号,cpu会立即暂停当前操作,切换到中断处理程序,处理完毕后再切换到原来的操作。硬中断是系统中非常重要的一部分,以确保系统能够快速响应硬件的需求。 什么是软中断 定义:软中断(Soft Interrupt)是操作系统用于处理非硬件中断的一种机制。它是一种软件中断,通常由系统调用或者异常事件触发,如键盘输入、定时器事件等。 软中断是在内核空间中执行的,与硬件中断不同,它不会暂停CPU的执行,而是会直接进入内核态,调用相应的处理函数来执行需要处理的操作,如网络包处理、文件系统I/O等。由于软中断不需要真正的中断硬件,因此可以更快速地完成处理。软中断通常是由操作系统在内核空间中创建的,用于提高系统性能和响应能力。它是现代操作系统中非常重要的一部分。 硬中断和软中断的区别 什么是扫描码 |
top命令浅析
最新推荐文章于 2024-02-27 14:44:47 发布