日常运维-2

来源:互联网 发布:centos 6.7安装mysql 编辑:程序博客网 时间:2024/04/30 21:03

10.6 监控io性能

1.在日常运维中,除了查看CPU、内存外,其实磁盘的IO也是一项很重要的指标。当CPU、内存还有剩余的情况下,系统的负载却很高,用vmstat命令查看,b列或者wa列数值比较大,那么磁盘肯定是有问题的
这里写图片描述

2 . iostat命令能更详细的查看磁盘状态

  • 直接执行iostat 或者iostat 1 5(每一秒一次显示,共显示5次 )
    这里写图片描述
  • 在安装sysstat时就已经连iostat也一起安装了,所以不用再次单独安装,它与sar命令属于同一个包。

  • 使用iostat命令得到的信息与sar -b 命令的信息是差不多的,未达到我们想要的要求。可使用iostat -x选项来查看更多内容。
    这里写图片描述 %util是非常重要的指标,表示磁盘使用有多少时间占用CPU的。CPU有一部分是给进程处理的、计算的、当然也有一部分是需要等待磁盘的读写操作的数据结果。

  • 假如%util的数值很大,如为50%或60%,那 磁盘IO太差,那么rKB/s和wkB/s的数值也会很大。若rKB/s和wkB/s数值不大,反而是%util比较大,那么说明硬盘是有问题的

  • 查看到磁盘读写很频繁,那么到底是哪个进程在频繁读写呢,可使用iotop来查看

    (1)默认是没有安装的 使用yum install -y iotop来安装。
    这里写图片描述
    (2)与top命令很像,也是动态排序显示
    这里写图片描述
    主要是查看IO%


10.7 free命令

  1. 用free命令查看内存的使用情况、
    这里写图片描述 centos6与centos7显示的信息是不同的,centos7显示的更加直观。

第一行表示说明
第二行表示内存的使用情况(需要关注)
第三行表示交换分区的使用情况

  • free -h命令能自动调节显示的单位
    这里写图片描述
    total=used+free+buff/cache(系统预分配的)
    total 总大小
    used 已使用
    free 剩余的
    shared 共享的
    buff(缓冲)/cache(缓存)
    例:从磁盘中的把数据读出来,先放在内存(cache)里 后面随用随取,速度很快 最后到CPU。
    将cpu运算后的数据,先放在内存(buff)里,然后在一点一点的写进磁盘
    available =free+buff/cache未使用完的部分
  • 用free去查看内存剩余的时候,关注是应该是available下面的数字

10.8 ps命令
1.ps查看系统进程

  • ps aux 一次性静态列出系统所有的进程
    这里写图片描述
  • 或是指定查看某个进程是否在运行
    这里写图片描述

  • ps -elf 与ps aux 显示的信息差不多,看自己的习惯。
    这里写图片描述

    -ps aux的 显示信息含义
    这里写图片描述
    第一列 进程用户名

第二列 进程的ID (当需要“杀死”进程时会使用到 例如:kill 2)或者(遇到不知道的进程,查看进程在什么地方启动,【ls -l /proc/PID/】每个进程在/proc/都有以PID数字命名的目录)

第三列cpu百分比

第四列 内存百分比

第五列 虚拟内存(VSZ)

第六列 物理内存 (RSS)

第七列 tty 终端名

第八列 STAT 进程的状态

第九列 START 启动时间

第十列 TIME 运行时间

第十一列 COMMAND 命令名

  • STAT:进程的状态。通常分为以下几种
    1— D 不能中端的进程(通常为IO)
    2— R 正在运行中的进程,其中包括了等待CPU时间片的进程。
    3— S 已经中断的进程。通常情况下,系统的大部分进程都是该状态。
    4— T 已经停止或暂停的进程。
    5— +在前台运行的进程。比如在当前终端执行ps aux 就是前台进程。
    6— Z 僵尸进程 ,即垃圾进程,一般会占用一点系统资源,如果占用太多,那就需要重视 了。
    7— < 高优先级进程 (系统资源优先使用)
    8— N 低优先级进程
    9— L 在内存中被锁了内存分页
    10— s 主进程
    这里写图片描述root用户的进程就是主进程,www用户的就是子进程。
    11— l多线程进程 (进程里包含了线程,线程是进程的子单元
    同一个进程下的线程全部共享相同的内存,而进程之间内存相互隔离。)

10.9 查看网络状态

  • netstat命令查看网络状态。
    linux系统服务器中的很多服务与客户端之间通信,那就要有监听端口,要有对外通信的端口。netstat命令查看的就是PTC/IP的一个通信状态。
  • 查看监听端口(需要关注)
    这里写图片描述
    1.加l选项就是监听的意思
    2.sshd服务远程连接端口 22
    3.master 发邮件的端口 25
    4.tcp6 指的是IPV6的ip
  • 监听socket
    这里写图片描述
    该文件用来同一台服务器2个进程间通信

  • 查看网络连接状况
    这里写图片描述

  • netstat -ltnp 只查看TCP
    netstat -ltunp 查看TCP .UDP
    这里写图片描述

  • 查看所有状态的数值
netstat -an |awk `/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}`

这里写图片描述
主要关注是ESTABLISHED这个的数值,如果很大,说明系统很忙。1000算正常

网站并发连接数:有多少客户端同时连接你这台服务端进行通信

  • ss -an 也能显示TCP/IP的状态 与netstat类似这里写图片描述
    该命令不会显示进程名与PID

    使用netstat -lntp 就能查看到
    这里写图片描述


10.10 Linux下抓包

  • 有时也许想看一下某网卡上都有哪些数据包,尤其是当你初步判定服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些IP在攻击了。
    1.使用tcpdump命令来查看→(安装包 yum install -y tcpdump)

    执行tcpdump -nn -i ens33
    2 . -i选项后面跟设备名称,如果想抓取其他网卡的数据包,后面则要跟其他网卡的名字。
    3.-nn选项的作用是让第3和第4列显示成“IP+端口号”的形式,如果不加-nn选项则显示“主机名+服务名称”
    这里写图片描述

  • 指定端口抓包
    tcpdump -nn -i ens33 port 22

  • 指定抓包数量 加-c 选项,抓包100次后自动停止
    tcpdump -nn -i ens33 -c 100

  • 指定在哪2个端口里抓包
    tcpdump -nn -i ens33 port 22 and port 53

  • 指定在哪里抓包,但不要某端口的
    tcpdump -nn -i tcp and not port 22

-

wireshark

1 安装→ yum install -y wireshark

2 命令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"
执行的抓包命令是tshark ,这条命令用于Web服务器

显示的信息类似于Web访问日志。若服务器没有配置访问日志,可以临时使用该命名查看一下当前服务器上的Web请求。如果你的机器上没有开启Web服务,不会显示任何信息。

原创粉丝点击