系统服务器的网络状况探究

0.165字数 658阅读 64

前言

作为后端开发,与服务器天天打交道。由于公司缺少专职运维人员,服务器的一些工作自然落在本人身上。日常安装软件和访问系统的时候,总觉得系统不是很流畅,猜测是否网络存在问题,
于是尝试一番研究。

目标

  • 了解服务器的网卡设备信息,并修改网卡参数。
  • 掌握服务器的网络下载速度、上传速度
  • 了解服务器的路由链路,查询访问较慢的问题所在。
  • 网络监控,找出占用带宽多的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 的平均流量

推荐阅读更多精彩内容