2018-6-8第十一课笔记

监控系统状态 w

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

w查看系统负载,具体操作如下:

[root@localhost ~]# w #查看系统负载
 21:59:48 up 1 day,  7:20,  2 users,  load average: 0.01, 0.02, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.139.1    254月18 10days  0.35s  0.35s -bash
root     pts/1    192.168.139.1    21:51    4.00s  0.02s  0.00s w
# up 1 day 表示启动的时间 ; 
2 users 登陆了几个用户;
 load average: 0.01, 0.02, 0.05 系统负载  三个数值表示 1分钟 5分钟 15分钟

2018.5.4 七周一次课 (日常运维,w查看系统负载,vmstat,top,sar,nload)

  • 查看系统系统时间
    [root@localhost ~]# date
    2018年 05月 07日 星期一 22:58:19 CST

如何查看自己系统有几个CPU(逻辑CPU),cat /proc/cpuinfo

    processor 如果是0 代表一个, 如果是1 代表2个。 逻辑CPU。

2018.5.4 七周一次课 (日常运维,w查看系统负载,vmstat,top,sar,nload)

用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 461084   2076 422508    0    0     2     2   41   40  0  0 100  0  0
     重点关注r b和wa这三列。

2018.5.4 七周一次课 (日常运维,w查看系统负载,vmstat,top,sar,nload)

    procs 显示进程的相关信息:
    r  (run) 表示运行或等待CPU时间片的进程数;
    b (block) 表示等待资源的进程数;
    memory显示内存的相关信息:
    swpd 表示切换到交换分区中的内存数量,单位为KB;
    free 表示当前空闲的内存数量,单位为KB;
    buff 表示(即将写入磁盘的)缓冲大小,单位为KB;
    cache 表示(从磁盘中读取的)缓存大小,单位为KB;
    swap显示内存的交换情况:
    si  表示由交换区写入内存的数据量,单位为KB;
    so 表示由内存写入交换区的数据量,单位为KB;
    io显示内存的使用情况:
    bi  表示从块设备读取数据的量(读磁盘),单位为KB;
    bo 表示从块设备写入数据的量(写磁盘),单位为KB;
    system显示采集间隔内发生的中断次数:
    in 表示在某一时间间隔内观测到的每秒设备的中断词数
    cs 表示每秒产生的上下文切换词数
    cpu显示CPU的使用状态:
    us 显示用户下所花费CPU的时间百分比;
    sy 显示系统花费CPU的时间百分比;
    id 表示CPU处于空闲状态的时间百分比;
    wa 表示I/O等待所占用CPU的时间百分比;
    st 表示被偷走的CPU所占百分比(一般都为0,不用太关注)

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 461240 2076 422516 0 0 2 2 41 40 0 0 100 0 0

  • vmstat [n] 这里n表示数字,每个n秒输出一次状态,例如1秒,示例如下:
    [root@localhost ~]# vmstat 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 461244 2076 422516 0 0 2 2 41 40 0 0 100 0 0
    0 0 0 461228 2076 422516 0 0 0 0 45 44 0 0 100 0 0
    0 0 0 461228 2076 422516 0 0 0 0 50 41 0 1 99 0 0
    #这里会不断的刷新,CTRL+c结束命令

  • vmstat [n] [m] 这里n表示数字,每个n秒输出一次状态,m代表显示的次数,例如显示5次,示例如下:
[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 461244   2076 422516    0    0     2     2   41   40  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   43   41  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   50   46  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   44   42  0  0 100  0  0
 0  0      0 461228   2076 422516    0    0     0     0   56   50  1  0 99  0  0
[root@localhost ~]# 

top显示进程所占的系统资源

    概念:
    top命令用于动态监控进程所占的系统资源,每个三秒发生一次变化;
    他的特点是把占用系统资源 CPU 内存 磁盘I/O等 最高的进程放到最前面;
    如下列中可以打印出很多的信息,包括系统负载(load average) ,进程数(Tasks),
    CPU使用情况,内存使用情况以及交换分区使用情况。
    top 查看进程使用资源情况
    top -c 显示详细的进程信息,全局路径
    top -bn1 静态显示所有进程,列出所有信息
    q退出,数字1显示所有的cpu,大写字母M按内存使用排序
    大写字母P按CPU使用排序
    top内容:
    Tasks 总共由多少进程;
    running 其中有几个在运行;       
    sleeping 多少进程正在休眠;
    stopped 由多少个进程以及停止了;
    zombie 僵尸,如进程关了,下面的子进程没有结束的被称为僵尸。
[root@localhost ~]# top
top - 23:38:28 up 1 day,  9:53,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1008152 total,   460452 free,   122652 used,   425048 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   693196 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                          
44028 root      20   0       0      0      0 S  0.3  0.0   0:07.98 kworker/0:0                      
44191 root      20   0       0      0      0 S  0.3  0.0   0:00.01 kworker/0:2                      
    1 root      20   0  128164   6820   4056 S  0.0  0.7   0:02.23 systemd                          
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd                         
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.56 ksoftirqd/0                      
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                     
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                      
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                           
    9 root      20   0       0      0      0 S  0.0  0.0   0:01.29 rcu_sched                        
   10 root      rt   0       0      0      0 S  0.0  0.0   0:01.26 watchdog/0                       
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                        
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns  

sar 命令监控系统状态

分析系统状态,可查看网卡流量

    概念:
    它可以监控系统几乎所有资源的状态,比如:平均负载,网卡流量,磁盘状态,内存等;
    它可以打印历史信息,可以显示当天从0点到当前的系统状态信息。
    选项:
    sar -n DEV 网卡流量
    sar -q 系统负载
    sar -b 磁盘读写
    sar -f /var/log/sa/saxx 历史文件所在目录,每十分钟会系统抓一遍
安装sar命令 sysstat
    [root@localhost ~]# yum install -y sysstat
sar -n DEV 网卡流量 ,示例如下:

2018.5.4 七周一次课 (日常运维,w查看系统负载,vmstat,top,sar,nload)

rxpck 接受到的数据包量有多少,几千都是正常的,上万没准就被***了。
txpck 发送出去的数据包有多少
rxKB 接受到的数据量,单位是KB
txKB 发送出去的数据量有多少

nload命令 实时动态的网卡

安装两个源码包
    [root@localhost ~]# yum install -y epel-release
    [root@localhost ~]# yum install -y nload

监控IO磁盘性能

命令如下:
iostat -x 磁盘使用
iotop 磁盘使用
  • %util看一个硬盘的健康情况,
    2018.5.7 七周二次课 (监控IO磁盘性能,free内存使用情况,ps,Linux下抓包)

  • 安装iotop

    [root@localhost ~]# yum install -y iotop
  • iotop命令,主要是看IO>那一栏,看磁盘的性能

    2018.5.7 七周二次课 (监控IO磁盘性能,free内存使用情况,ps,Linux下抓包)

free查看内存使用情况

概念:
free命令可以查看当前系统的总内存大小以及使用内存的情况。
字面意思:
total 内存总大小;
used 真正使用的实际内存大小;
free 剩余物理内存大小(纯剩余);
shared 共享内存大小,不用关注;
buff/cache 分配给buffer和cache内存总共有多大;
available 
free三个单位选项:
-m 兆
-g G
-h 在具体在数字后加上单位
    磁盘的数据到CPU中间需要经过内存过程:
    0000(内存) -- 内存(cache) -- CPU  #为了有一个缓和
    CPU计算完了数据,需要转到磁盘,中间经过内存:
    cpu(0000) -- 内存 (buff) -- 磁盘 
    公式:
    total=used+free+buff/cache
    avalible包含free和buff/cache剩余部分
free 直接查看内存使用的命令

2018.5.7 七周二次课 (监控IO磁盘性能,free内存使用情况,ps,Linux下抓包)
Mem 是内存的使用情况
Swap 交换分区使用情况

ps命令 监控系统状态

 STAT部分说明:
 D 不能中断的进程 
 R run状态的进程
 S sleep状态的进程
 T 暂停的进程
 Z 僵尸进程
 < 高优先级进程
 N 低优先级进程
 L 内存中被锁了内存分页
 s 主进程
 l 多线程进程
 + 前台进程
  • ps 查看系统进程 ,用法 ps aux 和 ps -elf ,示例如下:

    [root@localhost ~]# ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.6 128164  6824 ?        Ss   5月06   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
    root         2  0.0  0.0      0     0 ?        S    5月06   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    5月06   0:00 [ksoftirqd/0]
    .......
  • 如何查看一个进程是否在运行,示例如下:
    [root@localhost ~]# ps aux | grep nginx
    root 44476 0.0 0.0 112676 984 pts/1 R+ 01:42 0:00 grep --color=auto nginx
    2018.5.7 七周二次课 (监控IO磁盘性能,free内存使用情况,ps,Linux下抓包)

netstat 查看网络状态

 netstat 查看网络状态
 netstat -lnp 查看监听端口
 netstat -an 查看系统的网络连接状况
 netstat -lntp 只看出tcp的,不包含socket
 ss -an 和nestat异曲同工
 分享一个小技巧:
 netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
 #查看并发,有多少客户端在连接你
查看端口 netstat -lnp
    l是监听的意思

2018.5.7 七周二次课 (监控IO磁盘性能,free内存使用情况,ps,Linux下抓包)

Linux下抓包工具 tcpdump

    用法:
    tcpdump -nn
    tcpdump -nn -i ens33  #指定网卡查看
    tcpdump -nn port 80  #指定端口查看
    tcpdump -nn not port 22 and host 192.168.0.100 #指定非22端口的IP查看
    tcpdump -nn -c 100 -w 1.cap #指定100个包 存到1.cap文件里去
    tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri" 
    yum install -y wireshark
安装tcpdump
    [root@localhost ~]# yum install -y tcpdump
tcpdump -nn ,两个nn,数字形式显示出来,第二个n代表端口号。否则出现的是主机名
    [root@localhost ~]# tcpdump -nn -i ens33 #-i 指定网卡
指定port(端口)80

转载于:https://my.oschina.net/u/3851573/blog/1827785

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值