CVL网卡的ADQ特性在SPDK的NVMF测试中的应用实例(二)

一. 系统配置(包括target端和host端)

提示:这里很多配置在系统重启之后需要重新配置,可以参照你的操作系统进行持久配置或者启动之后运行脚本。

系统优化

注意:这里的系统优化也会依赖于硬件和软件环境和不同的负载。这里的优化在重载系统和快速IO系统中比较明显,但是也只是在有限的硬件和软件系统中测试过。在我们的环境(Fedora29)里的配置步骤如下:

1. 禁用防火墙

#service firewalld stop; systemctl mask firewalld

2. 禁用SELinux

#vim /etc/selinux/config
修改SELINUX=enforcing为SELINUX=disabled

3. 启用latency-performance低延迟的性能模式

#yum install -y tuned
#tuned-adm profile latency-performance

使用以下命令查看配置的结果

#cat /etc/tuned/active_profile
结果为latency-performance
#cat /etc/tuned/profile_mode
结果为manual

4. 设置CPU调整频率模式为performance

#cpupower frequency-set -g performance

5. 禁用irqbalance服务

#systemctl stop irqbalance

6. 配置操作系统参数来处理增加的数据包速率

a. 增加socket侦听队列的连接请求的最大数目,该配置再重启后会失效,参数值重新恢复成默认的128

#sysctl -w net.core.somaxconn=4096

b. 当特定接口接收数据包的速度快于内核处理数据包的速度时,增加允许排队的最大数据包数目

#sysctl -w net.core.netdev_max_backlog=8192

c. 指定所能接受SYN同步包的最大客户端数量

#sysctl -w net.ipv4.tcp_max_syn_backlog=16384

d. 增加发送和接受套接字缓冲区大小的最大值

#sysctl -w net.core.rmem_max=16777216
#sysctl -w net.core.wmem_max=16777216

e. 确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)。第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。示例中第一个值为786432*4/1024/1024=3G,第二个值为1019584*4/1024/1024=3.9G,第三个值为16777216*4/1024/1024=64G

#sysctl -w net.ipv4.tcp_mem=”764688 1019584 16777216”

f. 自动调优定义socket使用的内存,第一个值是为socket接收/发送缓冲区分配的最少字节数;第二个值是默认值(该值会被rmem_default/wmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收/发送缓冲区空间的最大字节数(该值会被rmem_max/wmem_max覆盖)

#sysctl -w net.ipv4.tcp_rmem=”8192 87380 16777216”
#sysctl -w net.ipv4.tcp_wmem=”8192 65536 16777216”

g. 允许分配所有的物理内存

#sysctl -w vm.overcommit_memory=1

h. 禁用透明大页

#echo never > /sys/kernel/mm/transparent_hugepage/enabled

以上所有系统优化的步骤总结在以下脚本里(除了禁用SELinux的命令)

service firewalld stop
systemctl mask firewalld
tuned-adm profile latency-performance
cat /etc/tuned/active_profile
cat /etc/tuned/profile_mode
cpupower frequency-set -g performance
systemctl stop irqbalance
sysctl -w net.core.somaxconn=4096
sysctl -w net.core.netdev_max_backlog=8192
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_mem="764688 1019584 16777216"
sysctl -w net.ipv4.tcp_rmem="8192 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="8192 65536 16777216"
sysctl -w vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值