linux性能监控基础命令
压力测试监控下系统性能方法之一
#top
该命令监控的是进程的信息
看图逐行意义
top:执行命令的之间
up:已经执行了277天
2users:目前有两个使用者,使用#who可以查看具体的使用者详情
load average:分别表示1分钟,5分钟,15分钟系统的负载情况
Tasks:这一行表示相关的进程信息total,running,sleeping,stipped,zombie(僵尸进程数)
cpu: us用户占用,sy系统占用 ,ni 用户进程空间内改变过优先级的进程占用,id空闲的,wa磁盘io等待占用
Mem:total物理内存总量 used使用的,free空闲的,buffers内核缓冲区(ps:linux用户空间和内核空间有win不同。以后介绍)
Swap: total交换分区总量,userd交换分区使用,free交换分区空闲(这个值如果在不断变化,说明系统内存占用增大了)cached(缓冲的交换区)
序号 列名 含义(加粗表示默认)
a PID 进程id
b PPID 父进程id
d UID 进程所有者的用户id
e UERS 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k%CPU上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
top常用的快捷键
1.输入1可以显示全部的cpu
2.默认显示的没有这么多按键 f 进入全部选项,选中a-z+enter增加选项
3.加量和排序 b+x 默认排序顺序是cpu,通过shift+>左右移动
4排序M(mem)C(cpu) N(pid)
top命令参数使用说明
1.把top命令执行两次保存在文件中
#top -b -n 2 >/data/top.txt(ps:注意,一定要加上-n否则将会一直写入文件)
2. 单独查看某个进程的信息
#top -p (PID)
#top |grep xxx
top命令补充
因为top监控的是进程,如果需要了解一些线程的信息
1.监控java线程数
#ps -eLf |grep java|wc -l
2.监控网络连接数(ps这里要看下tomcat配置文件,因为吐过tomcat没有优化过,默认的连接数只有100左右
JAVA_OPTS=" -server -Xms1024M -Xmx1024M -Xss256k -XX:PermSize=128M -XX:MaxPermSize=192M -XX:ReservedCodeCacheSize=96m -XX:-UseGCOverheadLimit -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:+AggressiveOpts -XX:-DoEscapeAnalysis -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log -XX:+HeapDumpOnOutOfMemoryError "
#netstat -n |grep java|wc -l???????未使用过
#netstat -tnlp | grep -i establish | grep java|wc -l