当前位置: 首页 > news >正文

nfs故障排查

1. 检查当前 nfsd 线程状态

# 查看当前 nfsd 线程数
cat /proc/net/rpc/nfsd | grep th# 查看 NFS 服务器状态
nfsstat -s# 查看当前 NFS 连接
ss -tnp | grep :2049

2. 临时增加 nfsd 线程数

# 查看当前线程数(默认通常是 8)
echo $(cat /proc/fs/nfsd/threads)# 增加线程数(例如增加到 64)
echo 64 > /proc/fs/nfsd/threads# 验证修改结果
cat /proc/fs/nfsd/threads

3. 永久修改 nfsd 线程数

方法一:使用 systemd 服务配置(推荐)

# 创建或编辑 nfs-server 的配置文件
sudo mkdir -p /etc/systemd/system/nfs-server.service.d/
sudo nano /etc/systemd/system/nfs-server.service.d/override.conf
添加以下内容:ini
[Service]
ExecStart=
ExecStart=/usr/sbin/rpc.nfsd -N 2 -N 3 -N 4 128

方法二:在 /etc/sysconfig/nfs 中配置(RHEL/CentOS)

# 编辑 nfs 配置文件
sudo nano /etc/sysconfig/nfs# 添加或修改以下行
RPCNFSDCOUNT=64

方法三:在 /etc/default/nfs-kernel-server 中配置(Debian/Ubuntu)

# 编辑 nfs 配置文件
sudo nano /etc/default/nfs-kernel-server# 添加或修改以下行
RPCNFSDCOUNT=64

4. 重启 NFS 服务使配置生效

# 重新加载 systemd 配置
sudo systemctl daemon-reload# 重启 NFS 服务
sudo systemctl restart nfs-server  # 或 nfs-kernel-server# 检查服务状态
sudo systemctl status nfs-server

5. 优化内核参数(可选)

如果连接数非常大,可能还需要调整相关内核参数:

# 临时修改
echo 65536 > /proc/sys/net/core/somaxconn
echo 2097152 > /proc/sys/net/ipv4/tcp_max_syn_backlog# 永久修改,在 /etc/sysctl.conf 中添加:
sudo nano /etc/sysctl.conf

添加以下内容:

net.core.somaxconn = 65536
net.ipv4.tcp_max_syn_backlog = 2097152
fs.file-max = 65536

应用修改:

sudo sysctl -p

6. 监控和诊断

# 监控 nfsd 线程使用情况
watch -n 1 'cat /proc/net/rpc/nfsd | grep th'# 查看 NFS 性能统计
nfsstat -o all# 监控 NFS 连接数
watch -n 1 'ss -tnp | grep :2049 | wc -l'

建议的线程数设置

  • 小型环境:16-32 个线程
  • 中型环境:32-64 个线程
  • 大型/高并发环境:64-256 个线程

根据你的实际负载情况逐步调整,监控系统资源使用情况(CPU、内存),避免设置过高导致资源浪费。

完成上述配置后,建议观察一段时间,确认错误信息是否消失,并根据实际性能表现进行进一步优化。

http://www.rkmt.cn/news/12335.html

相关文章:

  • 业绩亮眼,转型仍有隐忧,若羽臣赴港上市能否实现价值重构? - 指南
  • 基于CSMA/CA协议的V2X通信MATLAB仿真
  • 【招聘专场】想斩获高含金量名企Offer?京东、微芯研究院等企业 软件测试开发岗,虚位以待!
  • 练习题:成绩评定系统
  • Day22方法重写
  • 深入解析:list的学习
  • 实用指南:用Playwright实现接口自动化测试:从基础到实战
  • 数据质量定胜负:Apple 如何破解双语大模型性能鸿沟
  • 实用指南:Agent智能体+DeepSeek全教程:零基础到精通,一键生成可视化报表!
  • 完整教程:决策树(Decision Tree)
  • 自定义中间件进入管道中执行队列的流程
  • .net8+winform+Antdui 制作 LOL 小助手
  • 深入解析:【Git】Git 简介及基本操作
  • 20250916_QQ_Powershell
  • 1_2025.9.26_1
  • Kinect屏幕边缘检测不灵敏的解决方案
  • RK3399:性能与能效的嵌入式先锋,解锁多场景应用潜力
  • Node.js后端学习笔记:Express+MySQL - 指南
  • TorchV知识库安全解决方案:基于智能环境感知的动态权限控制
  • 详细介绍:Java HTTP协议(二)--- HTTPS,Tomcat
  • Solon v3.4.6, v3.5.4, v3.6.0-M1 发布。正式开始 LTS 计划
  • 串口通信、阻塞与非阻塞、qt
  • 破解 Java 系统 AI 化难题:JBoltAI 框架自带 RAG、Function Calling 核心功能
  • CF1706E Qpwoeirut and Vertices
  • Prometheus-01-框架架构与核心概念详解
  • OTA测试实战指南:测试流程、用例设计与自动化实现
  • How to use SQL Server Management Studio track one store procedure performance - 详解
  • 【2025-09-25】连岳摘抄
  • activiti部署流程后act_re_procdef表中无流程定义信息
  • 手写代码使用Fls模块的方法