监控工具
常用的Linux性能监控工具:top,uptime,ps,pstree,free,mpstat,vmstat,iostat,netstat,ss ,sar,pmap,iptraf,tcpdump,ltrace,strace,numastat.
今天在这里介绍三个常用的,top,free,uptime
1
top:可以显示系统摘要信息,以及目前正在由Linux内核管理的任务列表。
各个字段的作用
PID // 进程pid
USER// 进程所有者
PR // 进程优先级别,越小越优先被执行
NI // nice值
VIRT// 进程占用的虚拟内存
RES // 进程占用的物理内存
SHR // 进程使用的共享内存
S // 进程状态,S表示休眠;R表示running;Z表示僵死,N表示该进程优先值为负数
%CPU // 进程占用的CPU使用率
%MEM // 进程占用的物理内存与总内存的百分比
TIME+ // 进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值
COMMAND // 进程启动命令名称
top工具支持一些有用的热键,包括
M 按照内存占用排序
P 按照CPU占用排序
T 按照TIME+占用排序
k 提示你输入一个pid,输入之后会被kill
u 提示你输入一个用户名,比如我输入ulric,就会只显示ulric对应的进程情况
c 显示command完整命令,再按一下,回到原来样子
1 显示各个cpu的运行情况,再按一下,回到原来样子
q 退出top
1
uptime
uptime
$ uptime
23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02
这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。
命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。通过这三个数据,可以了解服务器负载是在趋于紧张还是区域缓解。如果1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去。
上面例子中的输出,可以看见最近1分钟的平均负载非常高,且远高于最近15分钟负载,因此我们需要继续排查当前系统中有什么进程消耗了大量的资源。可以通过下文将会介绍的vmstat、mpstat等命令进一步排查。
最后一个命令:free
free -m
$ free -m
total used free shared buffers cached
Mem: 245998 24545 221453 83 59 541
-/+ buffers/cache: 23944 222053
Swap: 0 0 0
free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。需要注意的是,第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。
如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在iostat命令中提现),降低系统性能。
关于大数据架构师专家社区
更多内容欢迎关注微信公众号:xinsz08