性能优化

 

 

 

1.numactl

cpu绑定,内存调优,例如:

# numactl --cpubind=0 --membind=0 python param

# numactl --cpubind=1 --membind=1 java param

即分配所有的node供其使用,这也是官方推荐的用法:

# numactl --interleave=all mongod -f /etc/mongod.conf

通过numastat命令可以查看numa状态

# numastat
node0 node1
numa_hit 1775216830 6808979012
numa_miss 4091495 494235148
numa_foreign 494235148 4091495
interleave_hit 52909 53004
local_node 1775205816 6808927908
other_node 4102509 494286252


other_node过高意味着需要重新规划numa.

https://blog.youkuaiyun.com/qccz123456/article/details/81979819

2.tcpdump 

tcpdump --time-stamp-precision=nano -i enp95sofo host 10.128.6.5 and dst port \(320001 or 8019 \) or src port \(320001 or 8019 \) -vn -w ./cc.txt

3.DPDK网络收发加速

https://www.cnblogs.com/bakari/p/8404650.html

https://blog.youkuaiyun.com/jffyuhgv/article/details/83788260

包含了代码优化的介绍:https://www.cnblogs.com/qcloud1001/p/9585724.html

相关平台优化配置
硬件:

PCIe Gen3 x 8,x16.

网卡多队列收发包,支持收包RSS时分发进多个队列。

软件:

关闭CPU以及设备的省电模式;

让内存运行在所支持的最高频率上;

内核初始化时设置好大页;

增加内核启动参数,预先指定DPDK使用的逻辑核,不被操作系统调度;

DPDK参数配置:

         收包队列长度,即每个收包队列分配的收包描述符个数,反映了在软件驱动程序读取所收到包之前最大的缓存包的能力。太长占用资源,太短容易丢包,默认长度为128.

         发包队列长度,即每个发包队列分配的发包描述符个数,默认长度为512.

         收包队列可释放描述符数量阈值,DPDK驱动程序并没有每次收包都更新收包队列尾部索引寄存器,而是在可释放的收包描述符数量达到一个阈值时更新,设置合理,可以减少没有必要的过多收包队列尾部索引寄存器的访问。默认值为32.

         发包队列可释放描述符数量阈值,通过将回写标记设置在一定间隔的发包描述符上,减少不必要的回写次数,改善性能,默认为32.

         发包描述符释放阈值,当用来重新配置的发包描述符数量少于阈值时,才会启动描述符和Mbuf释放动作,设置太大释放频繁,影响性能,设置太小可用描述符少,容易丢包,默认值为32.
 

4.cpu禁止降频

4.Solarflare

dkdp对应的另一种商业解决方案,交易所常用。

https://zhuanlan.zhihu.com/p/59242346

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值