因要通過nfs 進行文件共享,但場景是小流量的隨機讀寫,外部是通過nginx 進行服務 通常會建立一個長的tcp鏈接 讀取nfs文件系統中的文件,但是實際測試并發卻上不來。
後來排查到問題是因爲linux nfs客户端对于同时发起的NFS请求数量进行了控制,若该参数配置较小会导致IO性能较差,查看该参数:
cat /proc/sys/sunrpc/tcp_slot_table_entries
默认编译的内核该参数最大值为256,可适当提高该参数的值来取得较好的性能,请以root身份执行以下命令:
echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
sysctl -w sunrpc.tcp_slot_table_entries=128
修改完成后,需要重新挂载文件系统或重启机器。