线上事故--网卡带宽问题

线上事故–网卡带宽问题

先说下现象:早上高峰期时,rpc调用超时,只显示了超时日志,但是没有具体的逻辑日志,此时怀疑有资源限制,导致tcp连接已经建立,但是报文没有发过来。

资源有哪些限制

  1. 文件描述符占用
  2. cpu资源
  3. 内存资源
  4. 磁盘空间
  5. 网络带宽
    但是1到4都不会导致tcp连接已经建立,但是报文没发过来,所以此时可以断定是网络带宽的问题;

检查网络带宽可以用到哪些工具

  1. ethtool 网卡名,可以用这个命令查看某个网卡的带宽大小,如下:
    线上事故--网卡带宽问题_第1张图片图中显示为1000Mb;

2.nload 网卡名,该命令可以查看某个网卡使用的带宽,如下:
线上事故--网卡带宽问题_第2张图片这个最大值明显超过1000Mb,所以会有问题;

3.nethogs 网卡名,该命令可以查看具体的带宽占用,如下:
在这里插入图片描述图中第一行就是测试中的流量记录,表示192.168.40.250这台客户端去访问我的80 端口所占用的带宽。在PID 那一列,可以使用 lsof -p pid 查看进程测试。

总结:线上环境要注意网卡带宽等资源,代码中注意使用各种连接池(包含协程池、http连接池等),测试的时候要注意各种资源使用情况;

你可能感兴趣的:(golang,linux,服务器)