网络子系统性能调优

调优思路
本章主要是围绕优化网卡性能和利用网卡的能力分担CPU的压力来提升性能。在高并发的业务场景下,推荐使用两块网卡,减少跨片内存访问的次数。即将两块网卡分别绑定在服务器的不同CPU上,每个CPU只处理对应的网卡数据。高并发场景还可以为网卡选择x16的 PCIe 卡。
二、
介绍
ethtool是一个Linux下功能强大的网络管理工具,目前几乎所有的网卡驱动程序都有对ethtool的支持,可以用于网卡状态/驱动版本信息查询、收发数据信息查询及能力配置以及网卡工作模式/链路速度等查询配置。

安装方式
以CentOS为例,使用如下命令安装:

yum -y install ethtool net-tools

使用方式
命令格式:ethtool [参数]

常用参数如下:

参数

说明

ethX

查询ethx网口基本设置,其中x是对应网卡的编号,如eth0、eth1等。

-k

查询网卡的Offload信息。

-K

修改网卡的Offload信息。

-c

查询网卡聚合信息。

-C

修改网卡聚合信息。

-l

查看网卡队列数。

-L

设置网卡队列数。

输出格式:

ethtool -k eth0

Features for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on

ethtool -l eth0

Channel parameters for eth0:
Pre-set maximums:

Current hardware settings:

Combined: 8

ethtool -c eth0

Coalesce parameters for eth0:
Adaptive RX: off TX: off

rx-usecs:30
rx-frames:50

tx-usecs:30
tx-frames:1
参数含义如下:

参数

说明

rx-checksumming

接收包校验和。

tx-checksumming

发送包校验和。

scatter-gather

分散-聚集功能,是网卡支持TSO的必要条件之一。

tcp-segmentation-offload

简称为TSO,利用网卡对TCP数据包分片。

Combined

网卡队列数。

adaptive-rx

接收队列的动态聚合执行开关。

adaptive-tx

发送队列的动态聚合执行开关。

tx-usecs

产生一个中断之前至少有一个数据包被发送之后的微秒数。

tx-frames

产生中断之前发送的数据包数量。

rx-usecs

产生一个中断之前至少有一个数据包被接收之后的微秒数。

rx-frames

产生中断之前接收的数据包数量。
三、
介绍
strace 是Linux环境下的程序调试工具,用来跟踪应用程序的系统调用情况。strace命令执行的结果就是按照调用顺序打印出所有的系统调用,包括函数名、参数列表以及返回值等。

安装方式
以CentOS为例,使用如下命令安装:

yum -y install strace

使用方式
命令格式:strace [参数]

常用参数如下:

参数

说明

-T

显示每一调用所耗的时间。

-tt

在输出中的每一行前加上时间信息,微秒级。

-p

跟踪指定的线程ID。

输出格式:

18:25:47.902439 epoll_pwait(716, [{EPOLLIN, {u32=1052576880, u64=281463144385648}}, {EPOLLIN, {u32=1052693569, u64=281463144502337}}, {EPOLLOUT, {u32=1052638657, u64=281463144447425}}, {EPOLLIN|EPOLLOUT|EPOLLRDHUP, {u32=1052673241, u64=281463144482009}}, {EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP|EPOLLRDHUP, {u32=1052636016, u64=281463144444784}}], 512, 1, NULL, 8) = 5 <0.000038>
参数含义如下:

参数

说明

18:25:47.902439

为系统调用发生的时间。

epoll_pwait

为系统调用的函数名。

(716…)

括号内的值为函数参数。

=5

为系统调用的返回值。

<0.000038>

为系统调用的执行时间。
四、
原理
网卡自带的内存和CPU使用的内存进行数据传递时,是通过PCIe总线进行数据搬运的。Max Payload Size为每次传输数据的最大单位(以字节为单位),它的大小与PCIe链路的传送效率成正比,该参数越大,PCIe链路带宽的利用率越高。

Transaction Layer Packet

Header

Data Payload

ECRC

修改方式
按照进入BIOS界面的步骤进入BIOS,选择“Advanced > Max Payload Size”,将“Max Payload Size”的值设置为“512B”。

在这里插入图片描述

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值