top命令讲解

top命令经常用来监控Linux的系统状态,如CPU、内存的使用情况top命令讲解
各个参数的含义:
第一行 : 08:03:50 -当前系统时间;366 days,12:33-系统已经运行了366天12小时33分钟;25 users表示当前有25个用户登录系统;load average:0.18,0.20,0.16 -load average后面的2个数分别是1分钟、5分钟、15分钟的负载情况。Load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5,则表明系统正在超负荷运转
第二行: task-任务,系统现在共有700个进程,其中处于运行中有的1个,684个正在休眠,处于stop状态的有15个,处于zombie(僵尸)状态有0个
第三行: CPU 状态。0.1 us-用户空间占用CPU的百分比,0.3sy-内核空间占用CPU的百分比;0.0 ni-改变优先级的进程占用CPU的百分比;99.6 id-空闲CPU百分比;0.0 wa-I/O等待占用CPU的百分比;0.0 hi-硬中断占用CPU的百分比;0.0 si-软中断占用CPU的百分比 0.0 st-表名系统等待CPU的百分比
第四行: 内存状态。26324889+total-物理内存总量(256GB); 14211865+total-空闲内存总量;91454368 used-使用中的内存总量;29675860 buff/cache-缓存的内存量。
第五行: swap交换分区。5242876 total-交换区总量;237004 free-空闲交换区总量;5005872 used-使用的交换区总量;16708601+avail Mem-缓冲的交换区总量

Linux中的内存使用为:第四行的free+第四行的buffers+第五行的avail mem

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

第七行: 各个进程的状态监控,PID -进程ID;USER-进程所有者;PR-进程优先级;NI-nice的值;负值表示高优先级,正值表示第优先级;VIRT-进程使用的虚拟内存总量,单位的KB(VIRT=SWAP+RES RES-进程使用的、未被换出的物理内存大小、单位为KB);RES=CODE+DATASHR-共享内存大小,单位为KB;S-进程状态(D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程);%CPU-上次更新到现在的CPU时间占用百分比;%MEM-进程使用的物理内存百分比;TIME±进程使用的CPU时间统计,单位是1/100秒;COMMAND-进程名称

多核CPU监控,在top基本视图中,按键盘数字"1"即可监控每个逻辑CPU的状态
top命令讲解
进入top时,默认是按照CPU的占用量来进行排序的。
如果我们想查看内存占用率来进行排序,那么我们可以直接按照"x"键来加亮效果,可以看到top默认的排序是%CPU,可以通过"Shift+>"或"Shift+<"组合键可以向右或者向做改变排序列
下面这个按照内存排序了

top命令讲解

按"f"键,top进入另一个视图,在这里可以编辑基本视图中的显示字段,这里列出了所有可以在top基本视图中显示的进程字段,有"“并且标注为大写字母的字段是可以显示的,没有”"并且标注为小写字母的是不显示的。如果需要基本视图中显示"CODE"和"DATA"两个字段,光标选中以后在按"s"键就可以了
top命令讲解

监控java线程数
ps -eLf|grep java |wc -l
监控网络客户连接数
netstat -n|grep tcp |grep 22|wc -l
获取某进程中运行的线程数量
ls /proc/22/task|wc -l
可以用来输出进程内存的状态
Pmap PID