产品:openEuler
版本:22.03 SP1
分类:性能/分布式存储
来源:现网
[背景及现象描述]
- 启动nfs-server服务后,采用nfs的默认配置,正常可以达到千兆网的速率
- 经过不到1天的写入操作,客户端响应速度非常慢,基本只能到2MB/s (现场切换过v4 v3不同协议都有此问题)
- nfs-server端暴露的路径对应硬盘是ssd单独压测性能一直比较稳定
- 故障出现后无法通过重启nfs-server和rpcbind恢复,必须要重启nfs-server所在的欧拉才能恢复
[原因分析]
存在以下两个内核缺陷
- 内存申请集中在一个numa node上面(次要原因)
- 申请内存的流程中,申请内存时,不会同步回收内存,后台回收内存速度慢。当申请不到足够的内存时等待500毫秒。 主要体现在服务端cache上涨至50%时性能就会骤降,是导致nfs存储性能下降的主要原因。(代码如图)
[解决方法]
合入内核补丁解决:kernel/git/torvalds/linux.git - Linux kernel source tree