计算机 Linux系统监控命令

前言

  在我们开发过程中,会遇到各种生产问题,有系统资源不足引起的,有程序异常引起的,以及其它原因,之前在Java博客中介绍了一篇问题定位的文章,里面介绍了如果针对系统资源进行分析,但是没有针对里面使用到的几个linux命令进行详细的分析与介绍,这篇文章就是对这几个命令进行一个介绍,可能会再多介绍几个其它的命令,以后补充

目录

  top(实时显示进程的动态)

  free(系统内存的使用情况)

  iostat(CPU和磁盘IO相关的统计信息)

  netstat(显示各种网络相关信息)

top(实时显示进程的动态)

系统负载:系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度

平均负载:一段时间内系统的平均负载,这个一段时间一般取1分钟,5分钟,15分钟(即下面注释的1min,5min,15min)

进入Linux环境下,输入命令top显示:

  当前时间|系统运行时间|当前登录用户数|系统负载(1min,5min,15min)

  进程总数|正在运行的进程数|睡眠的进程数|停止的进程数|僵尸进程数

  用户空间|内核空间|用户进程空间改变过优先级的进程(占用百分比)|空闲CPU百分比|等待输入输出的CPU时间百分比|CPU服务于硬中断锁耗费的时间总额|CPU服务于软中断所耗费的时间总额

  物理内存总量|使用的物理内存总量|空闲内存总量|用作内核缓存的内存量

  交换区总量|使用的交换区总量|空闲交换区总量|缓冲的交换区总量

除了上面的统计信息外,还有详细的进程信息显示

  PID 进程Id

  PPID 父进程ID 

  USER 进程所有者的用户名

  PR 优先级

  NI nice值,赋值表示高优先级,正值表示低优先级

  VIRT 进程使用的虚拟内存总量(kb)VIRT=SWAP+RES

  RES 进程使用的,未被换出的物理内存大小(kb)RES=CODE+DATA

  SHR 共享内存大小(kb)

  S 进程状态 D(不可中断的睡眠状态)R(运行)S(睡眠)T(跟踪/停止)Z(僵尸进程)

  %CPU 上次更新到现在的CPU时间占用百分比

  %MEM 进程使用的物理内存百分比

top -c 显示进程详细信息

上面说明的内容不全,还可以通过shift+f键选择要显示的内容(按f键之后会显示新的列表,按a-z即可显示或隐藏对应的列,最后按回车键确定)

几个操作

  shift+p 以CPU占用率大小的顺序排列进程列表

  shift+m 以内存占用率大小的排序排列进程列表

  shift+H 显示所有线程信息

free(系统内存的使用情况)

free -h -s 3(持续的观察内存的状态,每隔3秒输出一次内存的使用情况)

列解释

  Mem 内存的使用情况

  Swap 交换空间的使用情况

  total 系统总得可用物理内存和交换空间大小

  used 已经被使用的物理内存和交换空间

  free 还有多少物理内存和交换空间可用

  shared 被共享的物理内存大小

  buff/cache 被buffer和cache使用的物理内存大小

  avaliable 还可以被应用程序使用的物理内存大小

iostat(CPU和磁盘IO相关的统计信息)

用法 isstat [选项][<时间间隔>][<次数>]

  -c 只显示系统CPU统计信息,不包括设备信息

  -d 单独输出设备结果,不包括CPU接口

  -x 输出更详细的io设备统计信息

  -k/-m 输出结果以kb/mb为单位,而不是以扇区数为单位

iostat -x -k -d 1 2 (每隔1s输出磁盘IO的详细信息,总共采样2次)

列解释

  rrqm/s 每秒对该设备的读请求被合并次数,文件系统会读取同块的请求进行合并

  wrqm/s 每秒对该设备的写请求被合并次数

  r/s|w/s 每秒完成的读次数|每秒完成的写次数

  rKB/s|wKb 每秒读数据量|每秒写数据量(kb为单位)

  avgrq-sz 平均每次IO操作的数据量(扇区数为单位)

  avgqu-sz 平均等待处理的IO请求队列长度

  await 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

  svctm 平均每次IO请求的处理时间(毫秒为单位)

  %util 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

netstat(显示各种网络相关信息)

Active Internet connections 有源TCP连接,Recv-Q 和 Send-Q 接收队列和发送队列,一般为0,如果不是则表示软件包正在队列中堆积

Active UNIX domain sockets 有源Uninx域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)

显示内容介绍

  Proto 显示连接使用的协议

  RefCnt 表示连接到本套接口上的进程数量

  Types 显示套接口的类型

  State 显示套接口当前的状态

  Path 表示连接到套接口的其它进程使用的路径名

列出所有端口 netstat -a 列出所有tcp端口 netstat -at 列出所有udp端口 netstat -au

只显示监听端口 netstat -l 只显示所有监听tcp端口 netstat -lt 只现实所有监听udp端口 netstat -lu

每隔一秒输出网络信息 netstat -t -c 1

显示核心路由信息 netstat -rn

找出程序运行的端口 netstat -apn | grep ssh (ssh是一个服务名,没有权限的会不显示,使用root权限查看所有信息)

显示网络接口列表 netstat -i nettstat -ie

猜你喜欢

转载自www.cnblogs.com/hpzhu/p/10126412.html