技术小牛钱小白

疯狂的梦想
时而碰的遍体鳞伤,时而经历惨不忍睹的想象...
生不用封万户侯,但愿一识韩荆州。

linux中查看系统性能命令top与ps的基本用法??

top命令:进程视角,默认top显示的是task数量,即进程

#top

# 线程视角

#top -H;

#top -p 5;# TERM environment variable not set??

#top可以查看cpu利用率,其中-b表示批次档模式;-n表示更新的次数,完成后将会退出top

top -b -n 1;

#显示结果:

top - 02:57:43 up 11 days, 18:06,  0 users,  load average: 1.02, 1.22, 1.11
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.7 us,  6.7 sy,  0.0 ni, 86.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3784.9 total,    264.6 free,    742.4 used,   2777.9 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   2703.6 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    2  887206    20   0    6728   3044   2820 S  0.0    0.1     0:00.00     bash

#各个参数含义:

系统资源状况

load average:表示在过去的一段时间内有多少个进程企图独占CPU

zombie:僵尸进程,不是异常情况。一个进程从创建到结束在最后一段时间便是僵尸。留在内存中等待父进程取的东西便是僵尸

cpu状态

us:表示用户空间程序的cpu使用率(没有通过nice调度)

sy:表示系统空间的cpu使用率,主要是内核程序

ni:表示用户空间且通过nice调度过的程序的cpu使用率

id:空闲cpu

wa:cpu运行时在等待io的时间

hi:cpu处理硬中断的数量

si:cpu处理软中断的数量

st:被虚拟机偷走的cpu

nice:让出百分比irq:中断处理占用        # irq表示什么意思??

idle:空间占用百分比iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI))        # idle表示什么意思??iowait表示什么意思??SCSI表示什么意思??

mem内存情况

       设计思想:把资源省下来不用便是浪费,如添加内存后free值会不变,buff值会增大。 判断物理内存够不够,看交换分区的使用状态

#各个缩写字段含义:

PID:每个进程的ID

USER:进程所有者的用户名

PRI:每个进程的优先级别

NI:每个优先级的值

VIRT:无

RES:无

SIZE:进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB;RSS进程占用的物理内存的总数量,单位是KB

SHARE:进程使用共享内存的数量

STAT:进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态

%CPU:进程自最近一次刷新以来所占用的CPU时间和总时间的百分比

%MEM:进程占用的物理内存占总内存的百分比

TIME:进程自启动以来所占用的总CPU时间

CPU:CPU标识

COMMAND:进程的命令名称

ps命令:linux中使用用户态命令查看线程

【栗子】

# 查看一个进程起的线程数

ps -mp 3;    # -mp后面必须指定进程id

# 查看所有存在的线程

#ps xH;

#ps默认只打印进程级别信息,需要用-L选项来查看线程基本信息 

ps -eo pid,tid,lwp,tgid,pgid,pgrp,sid,tpgid,args -L;

# ps的-L选项可以看到线程,通常能打印出LWP和NLWP相关信息

ps -eLF

# pidstat -t [-p pid] 可以打印出线程之间的关系

#pidstat -t 2;    # command not found!??

# 要在htop中启用线程查看,开启htop

#htop     # command not found!??

#pstack;# 有些系统可以使用这个命令查看所有线程的堆栈,bash中提示command not found!

#cat /proc/2/status; # 查看进程或线程的大致情况

#pstree -c;# 以树形形式显示进程和线程

ps -ef

ps -ef f;    # 用树形显示进程和线程

ps axf;      # 查看进程树,以树形方式现实进程列表

#ps -l;       # 显示进程

#vsz:说此进程一共占用了多大物理内存。

#rss:请求常驻内存多少

# ps axu;# 只能查看进程,显示进程的详细状态

#如果进程里面使用了pthread编程,用下面命令能查询到进程里的线程资源占用

# ps axu|grep tomcat;

# ps axm;    # 会把线程列出来。在linux下进程和线程是统一的,是轻量级进程的两种方式

# ps ax;    # tty值为?表示是守护进程,叫deamon无终端

# ps -a;    # -a表示显示所有用户的进程

#ps r    # 显示运行中的进程

#ps l    # 参数为长模式

#ps T    # 显示与当前关联的

#ps g    # 显示所有进程


#【问】ps 一次性查看进程结果的用法??

#ps -ef|grep tomcat

#ps aux|grep sendmail

ps -eo comm, pcpu;    # -eo表示什么意思??


评论
2021-09-11