鲲鹏服务器网络调优笔记分享
通用网络调优方法
一、跨CPU集群绑核,内存访问同die
跨CPU Cluster绑核的好处:
1.负载低的情况下可以最大的利用内存带宽。
2.CPU绑核尽量分布到多个CPU Cluster上,其L3 Cache Tag上的竞争会明显减小,内存带宽和CPU计算性能可以相应提升。
按跨CPU Cluster绑核,内存访问同NUMA。
以鲲鹏920 5250处理器为例,创建容器,容器名称8u16g_02,然后分配8核,绑核3,4,8,9,12,16,20,21,NUMAO节点,内存16G,然后创建容器的镜像是centos:latest,挂载本地volume卷,将本机"/home”映射到容器"/home”。
docker run -d -it --cpus=4 --cpuset-cpus=3,4,8,9,12,16,20,21 --cpuset-mems=0 -m 16384m --name 8u16g_02 -v /home:/homecentos:latest
docker run命令详细使用指导请参见:https://docs.docker.com/engine/reference/commandline/run/
二、网卡中断绑定
1.查看所需的网卡
2.查看网卡所在的NUMA节点,可根据实际情况将网卡中断绑到NUMA所在的节点CPU核
cat /sys /class/net/enp125s0fe/device/numa_node
3.关闭irqbalance服务,通过手动绑定中断的方法优化性能。
(1)停止irqbalance服务
service irqbalance stop
(2)关闭irqbalance服务
service irqbalance disable
4.查询网卡对应的中断号
cat /proc/interrupts | grep $eth | awk -F ':' '{print $1}'
注:其中$eth表示需要优化的业务网口名称
5.查询当前网卡中断绑核情况,手动绑定网卡中断到指定的CPU
根据中断号,将每个中断各绑定在一个核上
echo $cpunum > /proc/irq/$irq/smp_affinity_list
注:其中$cpunum表示需要绑定到的目标CPU序列号,$irq表示步骤 1执行的结果,如存在多个序列号,则需逐一执行绑定。
三、网络参数调优
对于不同的操作系统,通过在OS层面调整一些参数配置,可以有效提升服务器性能。
参数 |
含义和方法 | 操作命令 |
tcp_max_syn_backlog |
tcp_max_syn_backlog是指定所能接受SYN同步包的最大客户端数量。 默认值是2048,建议修改成8192。 |
|
net.core.somaxconn |
服务端所能accept即处理数据的最大客户端数量,即完成连接上限。 默认值是128,建议修改成1024。 |
|
net.core.rmem_max |
接收套接字缓冲区大小的最大值。 默认值是229376,建议修改成16777216。 |
|
net.core.wmem_max |
发送套接字缓冲区大小的最大值(以字节为单位)。 默认值是229376,建议修改成16777216。 |
|
net.ipv4.tcp_rmem |
配置读缓冲的大小,三个值,第一个是这个读缓冲的最小值,第三个是最大值,中间的是默认值。 默认值是"4096 87380 6291456",建议修改成"4096 87380 16777216"。 |
|
net.ipv4.tcp_wmem |
配置写缓冲的大小,三个值,第一个是这个写缓冲的最小值,第三个是最大值,中间的是默认值。 默认值是"4096 16384 4194304",建议修改成"4096 65536 16777216"。 |
|
net.ipv4.max_tw_buckets |
表示系统同时保持TIME_WAIT套接字的最大数量。 默认值是2048,建议修改成360000。 |
|
- 点赞
- 收藏
- 关注作者
评论(0)