HCRM博客

如何在CentOS系统中有效管理与优化带宽?

在 CentOS 系统中,监控和管理带宽是确保网络性能和资源合理分配的关键任务,本文将详细介绍如何在 CentOS 中查看和管理带宽,包括使用各种命令行工具来实时监控网络流量、检测网络端口状态以及优化网络配置。

一、查看网络带宽出口

要查看 CentOS 服务器的网络带宽出口,可以使用ethtool 命令,这个命令可以显示网络接口的详细信息,包括支持的端口类型和速度,要查看 eth0 接口的信息,可以使用以下命令:

如何在CentOS系统中有效管理与优化带宽?-图1
(图片来源网络,侵权删除)
  • sudo ethtool eth0

输出示例如下:

  • Settings for eth0:
  • Supported ports: [ TP ]
  • Supported link modes: 10baseT/Half 10baseT/Full
  • 100baseT/Half 100baseT/Full
  • 1000baseT/Full
  • Supported pause frame use: No
  • Supports autonegotiation: Yes
  • Advertised link modes: 10baseT/Half 10baseT/Full
  • 100baseT/Half 100baseT/Full
  • 1000baseT/Full
  • Advertised pause frame use: No
  • Advertised autonegotiation: Yes
  • Speed: 1000Mb/s
  • Duplex: Full
  • Port: Twisted Pair
  • PHYAD: 0
  • Transceiver: internal
  • Autonegotiation: on
  • MDIX: Unknown
  • Supports Wakeon: d
  • Wakeon: d
  • Current message level: 0x00000007 (7)
  • Link detected: yes

在这个例子中,可以看到Speed 字段显示为1000Mb/s,表示该网络接口的最大带宽为 1Gbps。

二、实时监控网络带宽

1. nload

nload 是一个简单但功能强大的工具,用于实时监控网络流量和带宽使用情况,它可以分开显示入站流量和出站流量,并绘制图表以直观展示数据,安装和使用步骤如下:

  • 安装 nload
  • sudo yum install nload y
  • 使用 nload 查看网络流量
  • nload

输出示例如下:

  • 13:45:22 Incoming: 10.0 kB 1.2 kB 11.2 kB 1.2 kB 1.2 kB
  • 13:45:22 Outgoing: 8.8 kB 1.2 kB 10.0 kB 1.2 kB 1.2 kB

2. iftop

如何在CentOS系统中有效管理与优化带宽?-图2
(图片来源网络,侵权删除)

iftop 是一款实时网络流量监控工具,可以按照源地址、目标地址和端口号等多个维度进行流量统计,并以直观的图形界面展示网络带宽占用情况,安装和使用步骤如下:

  • 安装 iftop
  • sudo yum install iftop y
  • 使用 iftop 查看实时网络带宽占用情况
  • sudo iftop

输出示例如下:

  • IFACE RX/TX AVG ZONES % OUT % | src address dst address src port dst port
  • eth0 => 1.2MiB / 771KiB 1.2MiB / 771KiB 99% | 192.168.1.2 192.168.1.1 54321 80
  • <SRC Port > DST Port

3. bmon

bmon(带宽监控器)是一款类似nload 的工具,可以显示系统上所有网络接口的流量负载,它还支持生成 HTML 格式的报告,安装和使用步骤如下:

  • 安装 bmon
  • sudo yum install bmon y
  • 使用 bmon 查看网络流量
  • bmon

输出示例如下:

  • | Network interface statistics |
  • |
  • | Receive Transmit Total |
  • | Bytes Bytes Bytes |
  • |
  • | Device | Curr | Avg | Min | Max | Curr | Avg | Min | Max | Curr | Avg | Min | Max | Curr | Avg | Min | Max |
  • |
  • | eth0 | 123456789 | 123456789 | 123456789 | 123456789 | 987654321 | 987654321 | 987654321 | 987654321 | 222222222 | 222222222 | 222222222 | 222222222 | 222222222 | 222222222 | 222222222 | 222222222 |
  • ++

4. nethogs

如何在CentOS系统中有效管理与优化带宽?-图3
(图片来源网络,侵权删除)

nethogs 是一款小巧的 "net top" 工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面,安装和使用步骤如下:

  • 安装 nethogs
  • sudo yum install nethogs y
  • 使用 nethogs 查看每个进程的带宽使用情况
  • sudo nethogs

输出示例如下:

  • Net Hogs version 0.8.1
  • PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  • 1234 root 20 0 123456 65432 4321 S 1.2 0.3 0:00.123 iftop
  • 5678 user 20 0 43210 12345 6543 S 0.8 0.1 0:00.456 firefox

5. dstat

dstat 是一个强大的系统资源监控工具,可以实时监测网络的状态,安装和使用步骤如下:

  • 安装 dstat
  • sudo yum install dstat y
  • 使用 dstat 查看网络状态
  • dstat n

输出示例如下:

  • totalcpuusagedsk/totalnet/totalpagingsystem
  • usr sys idl wai stl run qre| read writ/segZ/ merg inact| recv send out err| in out | int csw
  • 133 6 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 1 kB/s 456 kB/s | 1 kB/s 456 kB/s | | | | | | | | | | | | | | | | | | | | /dev/null | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | /dev/null | | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/null | /dev/numa_node,idle,guest,steal,vmware_balloon,io_delay,irqpoll,irqpollsoftirq,hz,migrations,pageout,contextswitch,cpu_MHz,intr,proc,csw,task_clock,boot,power_off,power_cycle,ipi,resched_average,sched_stat_sleep,scheduler_start,task_switch,cpu_idle,cpu_freq,cpu_nice,cpu_user,cpu_system,cpu_iowait,cpu_irq,cpu_softirq,cpu_steal,cpu_guest,cpu_guest_nice,idle_waste,hibernation,hibernation_exit,suspend,suspend_exit,swap,swapin,swapout,io,bi,bo,br,bs,be,ba,bd,bf,bl,bt,bx,by,bz,bu,bv,bw,bj,bk,bm,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cd,cf,cm,cp,cr,cs,cu,cv,cw,cx,cy,dx,dy,dz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dr,ds,dt,du,dv,dw,dx,dy,dz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dr,ds,dt,du,dv,dw,dx,dy,dz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,nd,no,np,ns,na,nt,ni,ne,ng,nb,na,nc,nd,ne,ng,nn,no,np,ns,nu,nx,ny,nz,n7,n6,n5,n4,n3,n2,n1,nZ,nl,nm,nm,nr,nq,nj,n8,n7,n6,n5,n4,n3,n2,n1,nZ,nl,nm,nm,nr,nq,nj]sockets:buffers:latency:memory:swap:slab:http:contexts:connections:processes:threads:blocked:files:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:uptime:loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:up time :loadavg:loadavg:loadtime :uptime :loadavg:downtime :loadavg:uptime :loadavg:downtime :loadavg:uptime :loadavg:downtime :loadavg:loadavg:downtime :loadavg:uptime :loadavg:downtime :loadavg:uptime :loadavg:downtime :loadavg:loadavg:downtime :loadavg:loadavg:downtime :loadavg:uptime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downtime :loadavg:downavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerloadavgeerlogdmesgerrpanicsoftlockuptracebackrebootpowerfailbootexceptionIPCIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDCPCIDCPCIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDCPCIDCPCIDCPCICIDPDCPDCPCIDCPCIDC[root@localhost ~]#

三、优化网络配置

为了优化 CentOS 系统的网络性能,可以考虑以下几个方面:

1、调整网络参数:通过修改/etc/sysctl.conf 文件中的相关参数,可以优化网络栈的性能,增加文件描述符的数量、调整TCP窗口大小等。

  • # 编辑 /etc/sysctl.conf 文件
  • sudo vi /etc/sysctl.conf

添加或修改以下参数:

  • net.core.somaxconn = 65535
  • net.ipv4.tcp_rmem = '4096 87380 4194304'
  • net.ipv4.tcp_wmem = '4096 65536 4194304'
  • net.ipv4.tcp_window_scaling = 1
  • net.ipv4.tcp_congestion_control = cubic

使更改生效:

  • sudo sysctl p

2、使用高性能网卡驱动程序:确保使用的是最新的网卡驱动程序,以提高网络性能,可以通过yumrpm 包管理器更新网卡驱动程序。

  • sudo yum update kmod

3、调整防火墙设置:如果使用了防火墙,确保其规则不会对网络性能产生负面影响,避免过多的规则匹配,优化规则顺序等。

  • sudo firewallcmd listall

4、监控和调优网络流量:定期使用上述工具监控网络流量,及时发现并解决潜在的瓶颈问题,使用iftop 监控实时流量,使用vnstat 记录历史流量数据等。

四、常见问题解答(FAQs)

Q1:如何更改网卡的 MTU(最大传输单元)值?

A1:可以通过ip 命令临时更改 MTU 值,或者通过配置文件永久更改,临时更改 MTU 值的命令如下:

  • sudo ip link set dev eth0 mtu 1500

要永久更改,可以在/etc/sysconfig/networkscripts/ifcfgethX 文件中添加或修改以下行:

  • MTU="1500"

然后重启网络服务:

  • sudo systemctl restart network

Q2:如何限制特定进程的网络带宽使用?

A2:可以使用tricklewondershaper 等工具来限制特定进程的网络带宽,使用trickle

  • sudo trickle d 128 ifconfig iftop &

这将限制iftop 命令的下载速度为 128Kbps。

Q3:如何诊断网络连接问题?

A3:可以使用pingtraceroutenetstatss 等工具来诊断网络连接问题,使用ping 检查与目标主机的连通性:

  • ping www.google.com

使用traceroute 跟踪到目标主机的路径:

  • traceroute www.google.com

使用netstat 查看当前的网络连接:

  • netstat tuln

使用ss 查看更详细的套接字信息:

  • ss tuln

这些工具可以帮助你识别网络连接问题的根源,如延迟高、丢包严重等。

通过以上方法和工具,您可以有效地管理和优化 CentOS 系统中的网络带宽,确保系统运行高效稳定。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18967.html

分享:
扫描分享到社交APP
上一篇
下一篇