“Linux下找出占用swap的进程”与“Linux下按进程实时统计网络带宽利用率 nethogs的安装”:页面之间的差异

来自linuxsa wiki
(页面间差异)
跳转到导航 跳转到搜索
Evan留言 | 贡献
导入1个版本
 
Evan留言 | 贡献
无编辑摘要
 
第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