day 31 监控系统状态

来源:互联网 发布:简单数控编程实例 编辑:程序博客网 时间:2024/06/07 10:34

10.1 使用w查看系统负载

1、 w命令
查看系统负载,显示当前时间、上线时间、当前登录用户数和系统平均负载及具体登录的用户信息,tty表示从本地终端登录,pts表示从网络远程登录(比如从xshell远程登录),系统负载分别为1分钟、5分钟和15分钟时间段内的系统负载,单位时间段内使用CPU的活动的进程的数量,理想的负载值与逻辑CPU数量有关(物理CPU有多个核,每个核有多个逻辑CPU),使用命令#cat /proc/cpuinfo查看逻辑CPU的数量,查看物理cpu数量,需要查看关键字 “physical id”。主要关注最后一段中processor的值,为0表示有1个CPU,为1表示有2个CPU... 负载值不高于逻辑CPU的数量则没有问题

2、uptime命令
查看系统负载,显示当前时间、系统上线时间、当前登录用户数和系统平均负载,与w命令第一行显示的结果一样
10.2 vmstat命令

查看进程、内存、虚拟交换分区、磁盘读写、系统和CPU等相关信息,通常使用#vmstat 1,表示每隔1s动态打印一次状态,一直打印,按“Ctrl+c”结束。命令#vmstat 1 5表示每隔1s打印一次状态,只显示5次.

(1) procs --显示进程相关信息
  • r                       --#run,表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了。进程排队,某一时刻只有1个进程在占用CPU,不管是排队的进程还是在使用CPU的进程,均属于run的状态。
  •                     --#block,被CPU以外的资源(如网络、硬盘)阻断而处于等待状态的进程
(2) memory --内存相关信息
  • swapd             --#表示切换到交换分区中的内存数量,若该值不变,则状态稳定,若该值持续变化,说明交换分区和内存之间存在频繁交换数据,进一步说明内存不够
  • free                  --#表示当前空闲的内存数量   
  • buff                 --#缓冲大小(即将写入磁盘的)
  • cache              --#缓存大小(从磁盘中读取的)
(3) swap --内存交换情况
  • si                    --#由交换分区写入到内存的数据量
  • so                   --#由内存写入到交换区的数据量
(4) io --磁盘使用情况
  • bi                    --#从块设备读取数据的量(读磁盘)
  • bo                   --#从块设备写入数据的量(写磁盘)
(5) system --显示采集间隔内发生的中断次数
  • in                    --#表示在某一时间间隔中观测到的每秒设备中断数
  • cs                   --#表示每秒产生的上下文切换次数
(6) CPU --显示cpu的使用状态
  • us                  --#user,显示用户所花费CPU时间的百分比;
  • sy                  --#system,显示系统花费CPU时间的百分比;
  • id                   --#idle,表示CPU处于空闲状态的时间百分比;
  • wa                 --#wait,表示I/O等待所占用cpu时间百分比;
  • st                  --#表示被偷走的cpu所占百分比(一般都为0,不用关注)
10.3 top命令

  • top                           --#动态监控进程所占系统资源,每隔3秒显示一次,把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况,其中“RES”为进程所占内存大小。在 top 状态下,按 “shift + m”(即M), 可以按照内存使用大小排序,按“shift + p”(即P)切回到按CPU占用百分比大小排序。按数字 ‘1’ 可以列出各颗cpu的使用状态(%Cpu0,%Cpu1...),再按“1”切换到所有CPU的平均值状态(%Cpu(s))

  • top -c                      --#显示详细的进程信息,查看到具体的进程命令
  • top -bn1                  --#静态显示所有进程,非动态打印系统资源使用情况,一次性全部把所有信息输出出来
10.4 sar命令

  • sar命令可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等。不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。
  • 若系统没有安装这个命令,使用yum install -y sysstat命令安装。初次使用sar命令会报错,因为sar工具还没有生成相应的数据库文件(实时监控就不会报错,因为不用去查询那个库文件),它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月。sar命令如果不加具体的选项和参数,会默认调用系统里保留的一个历史数据库文件,该文件所在目录为:/var/log/sa, sar的特性:每10min会把系统的状态抓取一遍并保存在文件里,存在/var/log/sa目录下
  • sar -n DEV                      --#查看网卡流量历史,IFACE这列表示设备名称,rxpck/s 表示每秒接收的包的数量,txpck/s 表示每秒发送出去的包的数量,rxbyt/s 表示每秒接收的数据量(单位Byte),txbyt/s表示每秒发送的数据量. 若服务器丢包非常严重,应该查看一下网卡流量是否异常,如果rxpck/s那一列的数值大于4000甚至上万,或者rxbyt/s那列大于5,000,000则很有可能是被攻击
  • sar -n DEV 1 3                --#实时查看网卡流量,每隔1秒显示1次,共显示3次

  • sar -n DEV -f /var/log/sa/sa24 --#加“-f”选项,查看某一天的网卡流量历史, /var/log/sa目录下生成的数据库文件以”sa+当天日期"命名
  • sar -q                                                         --#查看系统历史负载,使用较多
  • sar -q 1 10                                                 --#实时查看系统负载,每隔1秒显示1次状态,共显示10次
  • sar -q -f /var/log/sa/sa24 --#查看指定某一天(此例为24日)的历史负载

  • sar -b --#查看磁盘读写的历史状态
  • sar -b 1 3                                                        --#实时查看磁盘读写状态,每隔1秒显示1次状态,共显示3次
10.5 nload命令

nload命令查看系统网卡流量,系统默认没有nload命令,需要运行yum install -y nload安装相应软件包,按向左向右的方向键切换不同网卡的显示结果,按“q”退出

原创粉丝点击