zoukankan      html  css  js  c++  java
  • Linux下监控进程的网络以及目标主机建立连接的网络流量&非交互使用iotop

    1、nethogs工具

    while true;
    do	
    	echo "-----------------------------------------------------------------------" >> /tmp/net_process.log
    	date >> /tmp/net_process.log
    	nethogs  -t -d 3 -c 5 &>> /tmp/net_process.log
    	sleep 10
    done
    

    简单讲述一下此命令的使用帮助:

    -t 表示非交互显示,这里主要是为了写入本地的文本文件
    -d 3表示每隔3s刷新一次
    -c 5表示打印5次,为什么要打印5次呢?因为前面几次的流量都不准,所以基本是第3-5次流量是比较准确的。所有的监控工具基本都有这个毛病
    

    可以把上面脚本做个守护进程运行,效果如下所示:

    Refreshing:
    wget/13089/0	140.115	9734.96
    sshd: root@pts/1/11359/0	1.03906	0.234375
    /usr/bin/node_exporter/904/0	0	0
    /usr/local/cloudmonitor/bin/argusagent/970/0	0	0
    /usr/local/aegis/aegis_client/aegis_10_97/AliYunDun/25138/0	0	0
    

    可以看到wget命令的流量很大,主要是看最后一段是9734.96数字,单位是Kb/s(不是带宽),说明目前是9M的速度在下载东西
    注意:主要是看最后一列

    2、iftop命令

    iftop也是一个交互的,但是事实上我们不直接交互使用,还是要写入文本文件,脚本如下所示:

    while true;
    do
            echo "-------------------------------------------------------" >> /tmp/network.log
            date >> /tmp/network.log
    	iftop -i eth0 -N -P -t -L 5 -s 3 -u bytes &>> /tmp/network.log
    	sleep 10
    done
    

    主要是说一下-s 3,测试了一下如果是1或者2的话结果不是很准确,这里使用3比较好,-u bytes是为了用速率的单位显示,因为默认是带宽,个人不是很习惯这种显示方式,毕竟还要除以8才行
    其他命令就不再解释了,直接使用就行,打印的内容如下所示:

    其中=>表示本地上传到远端主机,而<=表示从远端主机下载的流量。

    3、iotop命令使用

    while true;do	
    	echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" >> /tmp/iotop.log
    	iotop -bot -n 5 -d 2  &>> /tmp/iotop.log
    	echo -e "
    
    " >> /tmp/iotop.log
    	sleep 10
    done
    

    这里的参数-o表示只打印正在进行io的进程

    补充:找到io比较大的进程后,拿到其pid号,然后使用lsof -p xxx可以看到此进程打开的文件,并依次排查究竟是写入了什么文件导致了IO比较大。
    事实上lsof查看到的文件也是从/proc/xxx/fd目录下的软链接文件拿到的数据,不妨直接执行ls -l /proc/xxx/fd也可以看到这个进程打开的文件都有哪些

  • 相关阅读:
    关于java中的批注@SuppressWarnings
    Enumeration接口的用法
    java中的Properties类的操作
    编译java时出现(端口冲突)Address already in use: JVM_Bind<null>:1919
    jQuery画廊插件-GalleryView
    jQuery中用attr和prop获取checkbox的属性问题
    (报错记录)Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:
    JDK 和 JRE 的区别(转载)
    css属性之vertical-align详解
    this——笔记
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/15149938.html
Copyright © 2011-2022 走看看