前言
作为后端开发,与服务器天天打交道。由于公司缺少专职运维人员,服务器的一些工作自然落在本人身上。日常安装软件和访问系统的时候,总觉得系统不是很流畅,猜测是否网络存在问题,
于是尝试一番研究。
目标
- 了解服务器的网卡设备信息,并修改网卡参数。
- 掌握服务器的网络下载速度、上传速度
- 了解服务器的路由链路,查询访问较慢的问题所在。
- 网络监控,找出占用带宽多的ip。
环境
本地mac
服务器是阿里云ecs和公司机房服务器。
网络本地是家庭电信宽度
公司服务器是电信。阿里云机房未知。
服务器系统版本是centos7
实践过程
硬件信息
- 网卡型号查看
lspci | grep Ethernet
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
上面会显示具体的网卡信号。通过百度即可查询一些信息。
image.png
- 网卡配置
先通过ifconfig
命令可以显示网口信息。
image.png
centos7系统的网卡名 以 eno+数字来命名。
执行下面命令可以看到参数。
ethtool eno1
Settings for eno1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
通过参数可以了解到,我的网卡支持千兆。因此可以通过下面的命令来修改
image.png
测试网速
依次自信下面3个命令。
wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod 777 speedtest.py
./speedtest.py
测速报告如下
image.png
这里是自动选择了测试地点。可以自己选择一个测试地点。
通过下面的命令,获取可以选择的测试地点列表。
./speedtest.py --list
这里选择了一个 15116的测试点。
image.png
链路
网络数据都是通过网线和一个个路由设备达到服务器的。其中链路存在问题,也会影响系统的运行。
这里测试的是 我本地家里电信宽带 访问 公司机房服务器的链路。由于探测时间较长,截图只是局部。
image.png
阿里云的ecs ,目前 vpc 环境暂时不支持 traceroute 探测。
还可以通过mtr进行处理。
image.png
网络监控
nethogs
image.png
该命令可以查看到哪个进程占用带宽最多。
网络监控工具较多,还有下面这个比较常用。
iftop
image.png
几个标识说明:
"<="与"=>",表示的是流量的方向
"TX":从网卡发出的流量
"RX":网卡接收流量
"TOTAL":网卡发送接收总流量
"cum":iftop开始运行到当前时间点的总流量
"peak":网卡流量峰值
"rates":分别表示最近2s、10s、40s 的平均流量