Linux学习-1024(系统监控2)

10月24日任务

10.6 监控io性能

10.7 free命令

10.8 ps命令

10.9 查看网络状态

10.10 linux下抓包

扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html

tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html 

一、监控io性能

    磁盘io监控有两个命令:iostat -x    iotop

  • iostat -x 查看磁盘io负载

        iostat和sar属于同一个包,安装了sar就可以使用iostat

        

        主要关注 %util,这个值越高说明磁盘I/O负载越高。一般大于70%说明I/O的压力就很大了,需要进行排查是磁盘的问题还是服务的问题。

  • iotop

        iotop监控磁盘I/O使用情况,类似于top,可以监测到那一个程序在占用I/O

        安装:yum -y install iotop

        使用iotop命令查看一下:

        

        

二、free命令

    free命令是用来查看内存和swap的使用情况,默认的单位是kb

    

    可以使用-m或-g来指定单位,也可以使用-h来查看

    

    详解:

    Mem:物理内存信息

    toptal:物理内存总和

    used:已使用的内存大小

    free: 空闲内存大小

    shared: 共享内存

    buff/cache: 缓存大小。

        buffer与cacher 的区别
       (数据)磁盘——>内存(cache)——>cpu

        CPU要计算时,需要把数据从磁盘中读出来,临时放到内存中,这部分内存就是cache

     (数据)cpu——>内存( buffer)——>磁盘

        数据经过CPU计算,即将要写入磁盘,这时用的内存为buffer。

      available: buff/cache+free的总和,也就是可用内存。如果想看可用内存,关注这个即可。

        计算公式:

            total=used + free + buff/cache

 三、ps命令

        ps命令是用来查看系统进程

  • ps常用的两种方式

        ps -aux  、ps -elf

        ps aux 会把系统中所有的进程给列出来,静态的显示出来

        

         ps -elf 显示出的效果和ps aux基本类似,只不过输出格式不同

         

  • 显示说明 ,以ps -aux为例

        

        USER:进程运行的用户

        PID:进程的pid

                如果要杀掉进程可以:kill  pid

                查看进程启动目录:ls -l /proc/PID号

                

        %CPU:进程所使用的cpu占比

        %MEM:进程使用的内存占比

        VSZ:   虚拟内存

        RSS:物理内存

        TTY:运行在哪一个终端

        STAT:进程运行状态

        START:进程启动时间

        TIME:进程运行时间

        COMMAND:命令行

  •   需要注意STAT进程运行状态:

            D 不能中断的进程 (会影响CPU资源)
            R run状态的进程(正在运行的进程)
            S sleep状态的进程
            T 暂停的进程
            Z 僵尸进程
            字符< 高优先级进程
            N 低优先级进程
            L 内存中被锁了内存分页
            s 主进程
            l 多线程进程
            字符+ 前台进程

四、监控网络状态

        查看网络状态使用netstat命令

  • 查看监听端口

        netstat -lnp 

        

        unix中也通信文件socket,也显示socket 的连接信息

        

  • 查看所有的连接状态  

        netstat -an

        

  •  只查看tcp连接

        netstat -ltnp 

        

  • 只查看tcp和udp

        netstat -ltunp

        

        

  • 查看网络状态小技巧

        查看所有的状态的数字

        netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t" ,sta[key]}'

        

        主要关注ESTABLISHED这个值,它是网站的并发连接数,就是同一时间有多少个客户端在连接你。如果这个值很大说明系统很繁忙,通常这个值在一千以内都是可以接受的。

        

  • 和netstat类似的命令

        ss -an

        这命令和netstat显示的差不多,但是它不显示进程的名字

五、linux下抓包

       抓包工具:tcpdump

       这个命令如果不能使用则需要安装:yum install -y tcpdump

  • tcpdump最简单的用法:

        tcpdump -nn -i eth0 

        第一个n表示显示ip,如果不加则显示主机名

        -i表示指定网卡

       

        第一列:时间

        第二列:IP  源ip+端口  > 目标ip+端口

        第三列:数据包信息

  • DDos攻击

        udp flood 利用大量UDP小包攻击服务器,遇到这种情况只能接入防攻击设备。

  • 指定端口

        tcpdump -nn -i eth0 port 22

  • 也可以排除端口

        tcpdump -nn -i eth0  not port 22

  • 排除端口并指定ip

        tcpdump -nn -i eth0  not port 22  and host  ip地址

  •  指定数据包,并存到文件中

        tcpdump -nn -i eth0 port 22 -c 10 -w 2.cap

        -c:指定统计多少流量包

        -w:指定生成到2.cap文件中

        .cap不能直接查看,可以使用file命令查看文件信息:

        

        查看还需要使用tcpdump 命令:

        tcpdump -r 2.cap 

        -r:表示读取

        

  • tshark命令

        tshark是一个类似于tcpdump的抓包工具,它有一个实用的功能:查看指定网卡的80端口的web访问情况。它可以查看外部访问的一个信息。

        使用需要安装:yum install -y wireshark

        

       

猜你喜欢

转载自my.oschina.net/u/3755326/blog/2254194