|
|
第1行: |
第1行: |
| ==问题来了==
| | NetHogs 是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率. |
| 是不是有时又有swap被用了呢 这个时候呢 不要烦 哥帮你 哈哈
| |
|
| |
|
| == 最佳解决安装是 iotop ==
| | 来自NetHogs项目网站: |
| <pre>yum install -y iotop
| | NetHogs是一个小型的’net top’工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组.NetHogs NetHogs不需要依赖载入某个特殊的内核模块. 如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽. |
| | |
| | wget -O /etc/yum.repos.d/epel.repo |
| | yum -y install nethogs |
| | sudo apt install nethogs |
|
| |
|
| 如果升级了python
| |
| vim /usr/sbin/iotop
| |
| #!/usr/bin/python2.6 </pre>
| |
|
| |
|
| ==shell==
| | Usage |
| <pre>在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中 ,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些。
| | nethogs eth0 eth1 |
| cat /proc/1/smaps
| |
|
| |
|
| 这里解释下samps里面的内容:
| |
| bfdca000-bfddf000 是该虚拟内存段的开始和结束位置
| |
| rw-p 内存段的权限,rw是指可读写,p是指私有,如果是s则为共享
| |
| bffea000 该虚拟内存段在对应的映射文件中的偏移量
| |
| 00:00 文件的主设备和次设备号
| |
| 0 被映射到虚拟内存的文件的索引节点号
| |
| [stack] 被映射到虚拟内存的文件名称
| |
| Size 是进程使用内存空间,并不一定实际分配了内存(VSS)
| |
| Rss是实际分配的内存(不需要缺页中断就可以使用的)
| |
| Shared_Clean 和其他进程共享的未改写页面
| |
| Shared_Dirty 和其他进程共享的已改写页面
| |
| Private_Clean 未改写的私有页面页面
| |
| Private_Dirty 已改写的私有页面页面
| |
| Swap 存在于交换分区的数据大小(如果物理内存有限,可能存在一部分在主存一部分在交换分区)
| |
| Pss是平摊计算后的使用内存(有些内存会和其他进程共享,例如mmap进来的)
| |
|
| |
|
|
| |
|
| | |
|
| |
|
| awk '/^Swap:/ {SWAP+=$2}END{print SWAP" KB"}' /proc/$(pid)/smaps
| | =参考= |
| | http://mirrors.aliyun.com/help/epel |
|
| |
|
| | [https://linux.cn/article-2808-1.html Linux下按进程实时统计网络带宽利用率] |
|
| |
|
| cat /proc/pid/smaps | grep Swap |wc -l
| | [https://linuxhint.com/monitor_network_traffic_nethogs/ How to Monitor Network Traffic using nethogs] |
|
| |
|
| #!/bin/bash
| | https://www.tecmint.com/nethogs-monitor-per-process-network-bandwidth-usage-in-real-time |
| # Get current swap usage for all running processes
| | [[category:ops]] |
| # writted by xly
| |
|
| |
| function getswap {
| |
| SUM=0
| |
| OVERALL=0
| |
| for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
| |
| PID=`echo $DIR | cut -d / -f 3`
| |
| PROGNAME=`ps -p $PID -o comm --no-headers`
| |
| for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
| |
| do
| |
| let SUM=$SUM+$SWAP
| |
| done
| |
| echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
| |
| let OVERALL=$OVERALL+$SUM
| |
| SUM=0
| |
|
| |
| done
| |
| echo "Overall swap used: $OVERALL"
| |
| }
| |
|
| |
| getswap
| |
| #getswap|egrep -v "Swap used: 0"
| |
| </pre>
| |
| | |
| ==参考==
| |
| linux 查看哪些进程战用swap
| |
| http://blog.csdn.net/xiangliangyu/article/details/8213127
| |
| http://blog.sina.com.cn/s/blog_704836f40101b3v3.html
| |
| | |
| [[category:linux]] [[category:ops]]
| |
2020年9月16日 (三) 08:33的最新版本
NetHogs 是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率.
来自NetHogs项目网站:
NetHogs是一个小型的’net top’工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组.NetHogs NetHogs不需要依赖载入某个特殊的内核模块. 如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽.
wget -O /etc/yum.repos.d/epel.repo
yum -y install nethogs
sudo apt install nethogs
Usage
nethogs eth0 eth1
参考
http://mirrors.aliyun.com/help/epel
Linux下按进程实时统计网络带宽利用率
How to Monitor Network Traffic using nethogs
https://www.tecmint.com/nethogs-monitor-per-process-network-bandwidth-usage-in-real-time