linux下top命令的使用

top命令经常用来监控linux的系统状态,内存,cpu等,但是很少有人能正确的用好这个命令

top进入视图

wKioL1LV9qXxar1fAAQXdb4qLUk820.jpg

第一行:
时间开机到现在的时间多少用户在登陆系统cpu负载

第二行:
Tasks ―
任务(进程)

总计有多少进程正在运行的睡眠的stop状态的僵尸进程(zombie


第三行:cpu状态
   8.7% us ―
用户空间占用CPU的百分比。
   0.9% sy ―
内核空间占用CPU的百分比。
   0.0% ni ―
改变过优先级的进程占用CPU的百分比
   90.2% id ―
空闲CPU百分比
   0.1% wa ― IO
等待占用CPU的百分比
   0.0% hi ―
硬中断(Hardware IRQ)占用CPU的百分比
   0.2% si ―
软中断(Software Interrupts)占用CPU的百分比

内核空间运行操作系统和驱动程序

用户空间运行应用程序


第四行:内存状态
   total ―
物理内存总量
   used ―
使用中的内存总量
   free ―
空闲内存总量
   buffers ―
缓存的内存量

可用内存=free+ buffers+cached(在第五行)

第五行:swap交换分区
   total ―
交换区总量
   used ―
使用的交换区总量
   free ―
空闲交换区总量
   cached ―
缓冲的交换区总量

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。


第七行以下:各进程(任务)的状态监控
   PID ―
进程id
   USER ―
进程所有者
   PR ―
进程优先级
   NI ― nice
值。负值表示高优先级,正值表示低优先级
   VIRT ―
进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES
   RES ―
进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA
   SHR ―
共享内存大小,单位kb
   S ―
进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
   %CPU ―
上次更新到现在的CPU时间占用百分比
   %MEM ―
进程使用的物理内存百分比
   TIME+ ―
进程使用的CPU时间总计,单位1/100
   COMMAND ―
进程名称(命令名/命令行)


top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况

如果不按1,则在top视图里面显示的是所有cpu的平均值

要想以内存占用大小排序,按M


top 命令是Linux上进行系统监控的首选命令,但有时候却达不到我们的要求,比如当前这台服务器,top监控有很大的局限性。如果我想看进程的线程数和客户端连接数就显的不是那么实用了,下面用ps netstat来达到我们的要求

监控java线程数:
   ps -eLf | grep java | wc -l

监控网络客户连接数:
   netstat -n | grep tcp | grep
侦听端口 | wc -l

上面两个命令,可改动grep的参数,来达到更细致的监控要求。

Linux系统一切都是文件的思想贯彻指导下,所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标,例如task目录就是用来描述进程中线程的,因此也可以通过下面的方法获取某进程中运行中的线程数量(PID指的是进程ID):

   ls /proc/PID/task | wc -l

linux中还有一个命令pmap,来输出进程内存的状况,可以用来分析线程堆栈:

   pmap PID



你可能感兴趣的:(top命令,linux查看系统状态)