群晖上查找占用带宽最大的进程的一种解决方案(异常流量排查)
起因
有天,在群晖的 Web 界面,看到网络监控那里,上传速度竟然有 1-2M/s,漏油器上也看到群晖的上传很高,也就是说流量上传到了外网,卧槽,这到底是哪个进程吃我带宽的,找出来我非得杀掉不可。
可惜,群晖自带的 “资源监控” 无法查看进程对网络的占用。
过程
通常我们在 Linux 上是如何做的呢?1
Linux/Mac
- iftop
通过 iftop
,我们可以找出占用 上传/下载 最高的TCP连接
这里以 Debian 为例吧
安装 iftop
1 | apt install iftop |
运行 iftop
(默认是监听 eth0)
1 | iftop |
可以通过 -i
来指定其他的网络接口,比如
1 | iftop -P -i en8 |
参数说明
1 | -i interface 监听指定网络接口 |
- netstat
上一步查到的 TCP 连接,包含 remote ip 和 端口。
使用 netstat
,可以定位到具体的进程。
1 | netstat -pantu | grep [port] |
在群晖上
因为群晖的系统,虽然是基于 debian,但是默认没有包管理器,无法通过 apt/yum 安装 iftop。不过群晖支持 docker。
群晖 - 套件中心 - docker - 安装
ssh 连接群晖
janten/iftop 这个镜像为我们提供了iftop
命令1
docker run -it --rm --net host janten/iftop -P -i eth0
如果本地没有没有这个镜像,会自动进行拉取,拉取镜像完成后,就可以看到 iftop 的运行界面
- 使用
netstat
定位进程1
netstat -pantu | grep [port]
这样就能找到具体的进程了
参考:
来源:https://blog.meow.page/archives/find-which-process-eat-my-bandwidth-on-synology/
评论