鲲鹏社区首页
中文
注册
开发者
风控系统调优实践

风控系统调优实践

性能调优

发表于 2025/09/30

0

作者 | 朱勇

1 背景介绍

1.1 环境信息

硬件环境信息

类别

ARM

ARM

CPU

鲲鹏920 5225F处理器(32core*2),3.0GHz

鲲鹏920 5220处理器(32core*2),2.6GHz

内存

8*32G

8*32G

磁盘

SSD

HDD

网卡

CX5 25GE

CX5 25GE

1.2 系统架构

风控系统-委托端的部署如下图所示。

客户端的请求到达前置系统后发送给风控系统,风控系统验证完毕后返回验证结果给前置系统,前置系统再将请求继续发送给交易系统,交易系统再将请求发送给报盘处理系统。

在风控系统内部,主要进行一些风控指标的验证,但在测试时不验证任何指标,只执行固定的架构业务代码,并涉及少量的写日志操作。

2 性能瓶颈分析

2.1 CPU

使用top命令观察:


从top中可以看到,风控系统使用的核比较少,且CPU资源使用率也比较低,根据经验,使用忙等机制可以获得不错的性能,因此使用了poll机制,使用后CPU使用率为100%,瓶颈主要为单核瓶颈。

抓取应用火焰图:

火焰图中存在部分写文件的热点,经过了解后得知这是日志记录导致的,在配置文件中关闭日历记录后,可以获得10us左右的性能提升。在生产环境中,使用异步机制来提升性能。

微架构分析结果如下:

从微架构分析中可以看到前端瓶颈占比较大,后续可以考虑使用pgo进行编译深度优化业务代码。

2.2 内存

使用free -h观察内存大小,发现鲲鹏5220上只有32G(2*16G)内存,不但内存性能差,还会导致跨NUMA访问内存的问题,与客户沟通后已扩容到256G(8*32)内存。

2.3 磁盘

在开启日志记录的情况下,使用iostat可以看到有几秒一次的磁盘写入。

结合blktrace的分析,瓶颈主要在磁盘调度阶段,不在IO硬件层面,如果不能使用异步写机制规避IO瓶颈,则需结合业务代码优化磁盘调度瓶颈。

2.4 网络

使用sar命令观察网卡资源情况。

从结果中没有观察到明显瓶颈,但默认的网络数据包收发会经过内核态,使用gazelle等类似的方案可以将网络数据包全部转移到用户态进行处理,提高收发包效率。

3 性能调优实践

3.1 BIOS调优

  • 关闭SMMU:BIOS路径为“Advanced > MISC Config”,将“Support Smmu”设置为“Disable”。SMMU为虚拟化特性支持,虚拟化场景下开启,非虚拟化场景下关闭可以获取更好的性能。

  • 开启CPU预取:BIOS路径为“Advanced > MISC Config”,将“CPU Prefetching Configuration”设置为“Enabled”。对于数据比较集中的场景,预取的命中率高,适合打开CPU预取,反之需要关闭CPU预取。

  • 电源使用性能模式:BIOS路径为“Advanced -> Performance Config” ,将“Power Policy”设置为“Performance”。有性能模式和节能模式两个选项,节能模式会降低CPU运行功耗,导致CPU降频,性能变差。

  • Max Payload Size:BIOS路径为“Advanced -> PCIE Config->cpu0/1 PCIe Configuation->cpu0/1 XX portXX-> Max Payload Size”,将其设置为512B。如果不确定自己用的是哪个PCIE PORT的时候,可以把所有的PCIE PORT的MaxPayload都设置成512B。

3.2 OS调优

  • tuned模式设置:将tuned模式设置为network-latency,可以提升网络时延性能。执行命令如下。

systemctl start tuned

Tuned-adm profile network-latency

  • 进程绑核:在前置系统和风控系统的启动脚本中添加numactl -c 0参数,将进程核绑到NUMA0上,保证进程不会出现跨NUMA访问内存的情况。

3.3 网络调优

使用VMA(Mellanox Messaging Accelerator,Mellanox 消息加速器)网络加速可以提升网络收发包效率,根据VMA官网教程安装好VMA后,在进程启动命令前面添加如下命令。

VMA_SPEC=latency LD_PRELOAD=libvma.so VMA_SELECT_POLL=100000

3.4 磁盘调优

关闭日志记录:在生产环境中该功能不可以直接关闭,可以通过改为异步写或者调整磁盘调度策略来进行优化。

4 调优后效果

处理器类型

调优前风控上行时延

调优后风控上行时延

调优前全链路时延

调优后全链路时延

鲲鹏920 5220处理器

57us

28us

209us

105us

鲲鹏920 5225F处理器

69us

39us

243us

110us

本页内容