监控系统状态(二)

监控io性能

  • 介绍: 以前介绍的许多关于CPU负载的命令,其实io(磁盘)对于咱们也很重要。
    下面要介绍的命令就是关于监控io性能的命令
  • 选项: iostat -x 1

表示逐秒显示磁盘情况
%util为磁盘使用占用CPU的时间比。一个进程写入磁盘时,cpu会等待写入,此时所占地用的时间就是%util 当%utl数字过大时,说明你的硬盘可能须要更换了html

  • 示例:

  • 命令iotop 磁盘使用

命令free

  • 介绍
    用于查看当前系统的总内存大小以及使用状况。Centos7系统的比6的显示要简介,可是大致上内容一致
  • 选项
    free
    free -m或-g:表示指定数据的单位MB或GB free -h:会给数据加上单位符号,使其更加直观
  • 示例
[root@centos001 ~]# free
              total        used        free      shared  buff/cache   available  //第一行
Mem:        1008152      113972      558772        6888      335408      709100
Swap:       2097148           0     2097148
[root@centos001 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            984         111         545           6         327         692
Swap:          2047           0        2047
[root@centos001 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           984M        111M        545M        6.7M        327M        692M
Swap:          2.0G          0B        2.0G
  • 解释
    • 第一行:
      total:内存总大小
      used:真正使用的实际大小
      free:剩余物理内存大小(没有分配,纯剩余)
      shared:共享内存大小(不重要)
      buff/chach:分配给二者的总共内存有多大 available:系统可以使用的内存有多大,它包含了free。 linux系统为了让应用跑的更快,会预先分配一些内存给某些应用使用,虽然这部份内存并无真正的使用,但也已经分配出去了。然而,当另外的一个服务要使用更多内存时,是能够把这部分拿出来使用的。因此没有占用的buffer/cache加上free就是availble
    • buffer/cache区别
      举栗:数据通过CPU计算,即将写入磁盘,这是用的内存叫buffer;
      CPU要计算是,须要把数据从磁盘中读出来,临时先放到内存中,这部分就是cache。
    • 公式:total=used+free+buff/cache
      通常来讲内存总大小等于。使用内存与剩余内存只和,可是这里不同。

ps命令

  • 介绍
    系统管理员必定要知道你所管理的系统都有那些进程在运行,ps命令可以检查某一个进程是否在运行 ​
  • 选项
    ps aux :列出全部进程,至关于windos里的任务管理器
    ps -elf:基本等于aux
  • 主要用法 如:ps aux | grep nginx 加管道符后面跟进程的名字,意为检查某个进程是否在运行或它的数量
    在使用grep命令查询命令数量时,其自己也算一个命令,因此要减一

-进程参数linux

  • 参数介绍
    pid:表示进程的id,在用kill命令杀死进程的时候能用到
    STAT:表示进程的状态。(有如下几种)
    • D 不能中断的进程
      R run状态的进程
      S sleep状态的进程
      T 暂停的进程
      Z 僵尸进程
      < 高优先级进程,CPU会优先处理
      N 低优先级进程
      L 内存中被锁了内存分页。了解就ok
      s(小写) 主进程
      l 多线程进程
      +前台进程,好比在当前终端执行的ps aux 就是前台进程
  • 线程和进程的区别
    1 进程里包含了线程,线程是进程的子单元
    2 同一个进程下的线程所有共享相同的内存,而进程之间内存相互隔离。

用 netstat 命令查看网络状态

  • 介绍:该命令主要用于于打印网络链接情况、系统所开放的端口、路由表等信息。
  • 主要用法:
    netstat -lnp 查看监听端口
    netstat -an 查看系统的网络链接情况
    netstat -lntp 只看出tcp的,不包含socket
    ss -an 和nestat殊途同归,相似但不会显示进程的名字
  • 示例
  • 扩展用法:能够查看全部状态的数字
    ESTABLISHED不大于1000时为正常,大于1000说明系统很忙 有被攻击的风险
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

抓包工具tcpdump

  • 介绍:
    有时想看某个网卡上有哪些数据包,尤为是当发现服务器上有流量攻击时,使用抓包工具抓取数据后就知道是哪些ip在攻击了
    默认没有安装命令,要用yum安装
  • 用法
    tcpdump -nn 表示让示例中的34列显示成(ip+端口号);不加-nn选项则显示(主机名+服务名称)
    tcpdump -nn -i ens33
    tcpdump -nn port 80 指定抓包端口
    tcpdump -nn –I eht0 not port 22 排除法
    tcpdump -nn not port 22 and host 192.168.0.100 增长条件 指定ip
    tcpdump -nn -c 100 -w 指定抓包的数量,并自动退出
    tcpdump -nn -c 100 -w 1.cap指定抓包的长度和个数并保存
  • 示例
  • 扩展 :
    查询指定网卡80端口的一个web访问状况 。至关于一个访客日志,可以知道访客的来源,访问了什么连接
    安装命令 yum install -y wireshark
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

扩展

tcp三次握手四次挥手
http://www.doc88.com/p-9913773324388.html
tshark几个用法:
http://www.aminglinux.com/bbs/thread-995-1-1.htmlios

相关文章
相关标签/搜索