监控工具


监控工具


常用的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


      监控工具