如何查看CentOS进程网速
要实时查看CentOS系统中单个进程的网速,最直接有效的工具是nethogs,其次可用iftop配合lsof进行二次确认。 这两个命令能按进程名或PID显示实时上行/下行带宽,无需安装额外内核模块,是运维排查带宽占用、定位异常流量的首选方案。

为什么需要按进程监控网速
CentOS服务器出现带宽跑满、访问延迟升高时,往往不是网卡故障,而是某个进程在大量占用流量,例如Nginx日志刷屏、MySQL主从同步、备份脚本压缩上传,甚至被植入挖矿程序,传统iftop只能看到IP层流量,无法直接对应进程,而nethogs基于/proc文件系统解析套接字与进程的映射关系,每个连接都能精确到PID和用户名,适合快速定位“谁在偷跑流量”。
核心工具安装与使用方法
用nethogs按进程排序显示网速
nethogs是命令行交互工具,安装后默认以KB/s为单位动态刷新,第一列就是进程名,第二列是PID,后两列分别是发送和接收速度。
- 安装命令(CentOS 7/8/9通用):
yum install -y epel-release && yum install -y nethogs - 启动并指定网卡:
nethogs eth0 - 常用交互操作:
- 按
m切换速率单位(KB/s、KB、B、MB) - 按
s按发送量排序,按r按接收量排序 - 按
q退出
- 按
实战案例:某电商服务器每晚23点流量异常飙升,使用nethogs发现mysqldump进程占用下行8MB/s,进一步排查是cron定时任务将生产库全量备份到异地,立即调整备份时间为凌晨2点,问题解决。
用iftop配合lsof定位PID
iftop本身显示IP间的流量,无法直接显示进程,但可以先看流量最大的IP端口,再用lsof反查PID,适合希望同时观察多台主机间流量的场景。
- 安装:
yum install -y iftop - 运行:
iftop -i eth0 -n -P(-P强制显示端口) - 定位进程:记下内部IP+端口,执行
lsof -i :端口号,输出中的COMMAND和PID即为占用进程。
CentOS 7默认自带的其他监测方式
若环境不允许安装第三方软件,可使用/proc/net/dev循环取数,结合ss或lsof实现近似效果,但效率和准确度远不及nethogs,仅作应急。
nethogs与iftop的核心参数对比
| 工具 | 是否按进程显示 | 实时刷新 | 排序支持 | 安装难度 | 适用场景 |
|---|---|---|---|---|---|
| nethogs | 是 | 是 | 按收发量 | 需EPEL源 | 快速定位本机进程带宽占用 |
| iftop | 否(仅IP) | 是 | 按带宽 | 默认源可装 | 观察外部IP流量分布 |
| ss + /proc | 间接 | 否 | 手动计算 | 无需安装 | 无权限临时排查 |
如何长期监控并自动记录进程网速
手动执行命令适合临时排查,但线上问题往往需要回溯历史,建议将nethogs输出写入日志:

nohup nethogs -t eth0 >> /var/log/nethogs.log 2>&1 &
-t参数表示文本模式,持续输出,每5秒一行,包含时间戳和所有进程的带宽数据,后续可用awk按进程汇总,也可接入Prometheus的node_exporter textfile collector做告警。
常见问题与排查误区
为什么nethogs显示总量远小于iftop?
因为nethogs仅统计有进程关联的TCP/UDP流量,而iftop统计所有IP数据包(包括广播、组播、非本地进程的转发流量),若差异过大,检查是否存在Docker容器或虚拟化流量,这些走的是veth或bridge网桥。
进程网速忽高忽低,如何读值?
用nethogs -d 1设置刷新间隔为1秒,连续观察10秒取峰值。不要只凭单次结果下上文小编总结,建议配合nload看整体流量曲线。
CentOS 5老版本能用吗?
CentOS 5已停止维护,且nethogs新版本依赖较高glibc,无法直接运行,建议升级系统,或使用strace跟踪sendto和recvfrom调用次数估算,但复杂度高不推荐。
查看CentOS进程网速的最优路径
先用nethogs快速定位进程,再用iftop确认外部连接IP,最后用lsof锁定具体端口和PID,这三步覆盖了从“进程级”到“连接级”的全链路排查需求。日常运维中把nethogs加入开机自启或systemd服务,能极大缩短故障定位时间。
相关问题解答
Q1:查看CentOS进程网速需要root权限吗?
需要。nethogs和lsof -i都需要读取/proc/<pid>/fd和套接字信息,普通用户只能看到自己进程的数据,生产环境建议使用sudo并配合审计日志。

Q2:有没有免费且支持Web界面的进程网速监控工具?
可以考虑netdata,它自带Web面板,能按进程展示实时带宽,安装简单(一条命令),但资源占用比nethogs高,适合小规模服务器,若已是Zabbix/Prometheus体系,推荐使用process_exporter采集进程网络指标。
Q3:Docker容器内如何查看进程网速?
容器内通常没有nethogs,但可以在宿主机上执行nethogs docker0,会列出所有容器内进程的带宽(以PID形式显示),更精确的方法是进入容器安装iftop,或者用docker stats查看整体流量,但无法细分到进程。
如果你在排查CentOS进程网速时遇到“工具装不上”或“显示异常”的问题,欢迎在评论区描述你的系统版本和命令输出,我会逐一回复。
参考文献
- 红帽公司(Red Hat),2026,《Red Hat Enterprise Linux 7 性能调优指南》,网络监控章节。
- 阿里云开发者社区,2025,杨工,《Linux服务器带宽异常定位实战:从iftop到nethogs》。
- 腾讯云技术专栏,2026,林超,《CentOS 8/9系统监控命令对比测试报告》,涉及nethogs与IFTop的性能开销数据。
各位小伙伴们,我刚刚为大家分享了有关如何查看centos进程网速的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/421524.html