查看系统负载命令

w监控系统状态

  • w/uptime        查看系统负载
  • cat /proc/cpuinfo     查看cpu的核数
  • vmstat           监控系统状态
  • 用法  vmstat 1
  • 关键的几列: r,  b,  ,swap,   si  ,so ,bi,    us  ,wa
  • top          查看进程使用资源情况
  •  top -c          显示详细的进程信息
  • top -bn1         静态显示所有的进程
  • q   退出 , 数字1显示所有的核cpu,大写字母M按内存使用排序
  • 大写字母P按CPU使用排序

1、 使用w查看系统负载

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。 cpu忙不过来了,自然就是超负荷。

processor是指一个CPU有几核,然后physical id这个才是有几颗物理CPU

看逻辑cpu笔记好的命令应该是 cat /proc/cpuinfo |grep processor |wc -l

直接显示出cpu个数,或者cat /proc/cpuinfo |grep processor  也可以

查看系统的cpu,是逻辑cpu


2、 vmstat命令

vmstat命令监控系统的状态

命令w查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力。当它无法判断具体是哪里(CPU,内存,磁盘等)有压力,所以这就用到了vmstat。

命令vmstat用法

- 静态显示内存状态一次。

[root@localhost ~]# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 2  0      0 697884    948 175948    0    0    18     2   49   83  0  0 99  0  0

- vmstat [n] 在此n代表数字,意思是每隔n秒输出一次状态(按Ctrl+c结束命令)。

[root@localhost ~]# vmstat 1    //如果不Ctrl+c每1秒钟会显示一行。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 2  0      0 697756    948 175968    0    0    17     2   48   82  0  0 100  0  0

 0  0      0 697756    948 175968    0    0     0     0   28   43  0  0 100  0  0

- vmstat [n][m] 这里的n表示每隔n秒输出一次状态,m表示动态显示的次数;

[root@localhost ~]# vmstat 1 5

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 2  0      0 697764    948 175960    0    0    17     2   48   81  0  0 100  0  0

 0  0      0 697764    948 175960    0    0     0     0   33   56  0  0 100  0  0

 0  0      0 697764    948 175960    0    0     0     0   28   33  0  1 99  0  0

 0  0      0 697764    948 175960    0    0     0     0   25   35  0  0 100  0  0

 0  0      0 697764    948 175960    0    0     0     0   25   32  0  0 100  0  0

说明:

  • proc 显示进程相关信息

    • r:=run,表示运行中或等待cpu运行的进程数,如果该数长期大于服务器CPU个数,则说明CPU不够用了。

    • b: =block ,表示等待资源的进程数,如,等待I/O,内存等,这列的值如果长时间大于1,则需要关注一下。

  • memory 内存相关信息

    • swpd:表示切换到交换分区的内存量(当该数据不断变化时说明内存不足)

    • free:表示当前空闲的内存量

    • buff:缓冲大小

    • cache:缓存大小

  • swap 内存交换情况

    • si:=storage in,表示交换区写入到内存的数据量;表示有多少块,单位kb。

    • so:=storage out,表示由内存写出到交换区的数据量;

  • io 磁盘使用情况

    • bi:=block in,表示从块设备读取数据(写入内存)的量(即:读磁盘),单位为KB;

    • bo:=block out,表示(从内存读取)写入到块设备的数据(即:写磁盘),单位为KB;
      注: 此处数据会直接关系到proc出的b的值。

    • bi bo:上5千的时候就要注意了。 

  • system 显示采集间隔内发生的中断次数

    • in:表示在某一时间间隔中观测到的每秒设备中断数

    • cs:表示每秒产生的上下文切换次数

  • CPU 显示CPU的使用状态(us+sy+id=100%)

    • us:表示用户资源所花费CPU的百分比(当该值长时间>50时说明CPU数量不足)

    • sy:表示系统资源所花费(占用)CPU的百分比

    • id:表示CPU处于空闲状态的百分比

    • wa:=wait,表示等待使用CPU的百分比(该数值大说明CPU不足)

    • st:表示被偷走的CPU所占百分比(该值一般为0,不用关注)

    •  us + sy + id + wa =100%   这个值只是约等于,是个近似值。

注意:需要关注的是r,b和wa这3列,io部分和bi和bo也是要经常参考的对象,如果磁盘io压力很大,这两列的数值会比较高(大于5千算高)。另外,当si和so两列的数值比较高并且不断变化时,说明内存不够了,内存中的数据频繁交换分区中,这往往对系统性能影响极大。

实例:

使用vmstat 1是每一秒钟动态显示一次,按ctrl+c结束显示;vmstat 1 5每一秒钟动态显示一次,显示五次就结束也就是五行。r   b 下面的,动态显示一会大一会小说明交换分区和内存频繁的交换数据。原因内存不够了


3、 top命令

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

语法

top(选项)

选项

-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。

top交互命令

在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;查看具体的进程和命令
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。

实例

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached

解释:

  • top - 09:44:56[当前系统时间],
  • 16 days[系统已经运行了16天],
  • 1 user[个用户当前登录],
  • load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
  • Tasks: 145 total[总进程数],
  • 2 running[正在运行的进程数],
  • 143 sleeping[睡眠的进程数],
  • 0 stopped[停止的进程数],
  • 0 zombie[冻结进程数],
  • Cpu(s): 99.8%us[用户空间占用CPU百分比],
  • 0.1%sy[内核空间占用CPU百分比],
  • 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
  • 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
  • 0.0%hi[],
  • 0.0%st[],
  • Mem: 4147888k total[物理内存总量],
  • 2493092k used[使用的物理内存总量],
  • 1654796k free[空闲内存总量],
  • 158188k buffers[用作内核缓存的内存量]
  • Swap:  5144568k total[交换区总量],(交互分区)
  • 56k used[使用的交换区总量],
  • 5144512k free[空闲交换区总量],
  • 2013180k cached[缓冲的交换区总量],
  • RES 物理内存大小,单位:kb字节

注意:查找出来僵尸进程命令:ps aux 看 stat那列,是Z的

kill -9  pid                  #一定可以杀死。 误杀了 就恢复不了了。-9是进程pid号

僵尸进程(zombie):子进程由父进程回收,没有父进程的则变成了僵尸进程

top -bn1                 #  静态快照;静态显示,写脚本的时候用

按数字1显示所有CPU核心的资源使用

top -c            #  更加详细的command显示

命令top,会三秒钟动态的刷新,第一行,查看文件有哪些信息。第二行,有多少个任务在运行。


4、 sar命令

yum install -y sysstat                   #安装sar包

sar -n DEV                  #网卡流量

sar -q                  #系统负载

sar  -b           #   磁盘读写

sar -f /var/log/sa/saxx      #历史文件

nload命令

yum install -y epel-release          #安装扩展源

yum install -y nload             #安装 nload包

-o      是把显示结果二进制的语言写到文件里

使用命令ls /var/log/sa/下面有一个叫sa17的文件,是一个二进制文件只能用sar命令查看;

ls /var/log/sa/sar17中的sar17在安装sar包之后第二天才会生成。可以用cat命令查看。

一种文件内容只能用 -f filename 来查看,  另外一种可以直接cat查看

sar开头的文件是自动生成的

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

语法

sar(选项)(参数)

选项

-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。

参数

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

实例

察看内存和交换空间的使用率:

sar -r
Linux 2.4.20-8 (www.linuxde.net)    20130503  
12:00:01 AM kbmemfree kbmemused  %memused 
kbmemshrd kbbuffers  kbcached  
12:10:00 AM    240468   1048252     81.34    
0    133724    485772  
12:20:00 AM    240508   1048212     81.34   
0    134172    485600  
…  
08:40:00 PM    934132    354588     27.51    
0     26080    185364  
Average:       324346    964374     74.83  
0     96072    467559

kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB。

观察系统部件10分钟,并对数据进行排序:

sar -o temp 60 10

安装sar包,命令:yum install -y sysstat

常见问题:安装不了


5、 nload命令

nload (监控网卡流量)
安装nload之前要先安装 epel-release,安装命令yum install -y epel-release
然后再安装 nload
显示一个动态的页面。按方向键可以切换网卡,按q退出

用途: 用来即时监看网路状态和各ip所使用的频宽

nload 默认分为上下两块:
 

上半部分是:Incoming也就是进入网卡的流量,

下半部分是:Outgoing,也就是从这块网卡出去的流量,

每部分都有当前流量(Curr),

平均流量(Avg),

最小流量(Min),

最大流量(Max),

总和流量(Ttl)这几个部分,看起来还是蛮直观的。


nload默认的是eth0网卡,如果你想监测eth1网卡的流量

#nload eth1




-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.

-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-m:不显示流量图,只显示统计数据。

-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.

-t:显示数据的刷新时间间隔,单位是毫秒,默认500。

-u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!

h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.

H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.

-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!

Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

如只监控eth0命令:# nload eth0

使用 $ nload eth0 ,可以查看第一网卡的流量情况,显示的是实时的流量图, $ nload -m 可以同时查看多个网卡的流量情况。

先安装epel-release:yum install epel-release

安装nload包命令:yum install nload

运行nload,直接敲nload命令,第一行是网卡的名字,第一行最后的数字是的网卡的个数,按方向键向右的箭头切换,查看其他的网卡,eth1是内网网卡,eth0是外网网卡

常见问题:

1.安装不了sar包

blob.png这个都不能安装怎么回事?

答案:32位centos7 不支持epel-release

2.

安装错误。

blob.png

答案:如果是64位,那说明你的yum不好用。是不是之前改动过yum, 比如你用了本地的yum源,还未切换回网络的源。

我的是163.本地源可以安装nload。但是另一个是网络的源才不可以安装

3.使用nload命令时,也安装了开展源epel-release,没有显示动态的页面,动态的进程。原因是没有跑进程?

猜你喜欢

转载自my.oschina.net/u/3803405/blog/1794650