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表示什么意思??