怎么在Linux利用Pstree查看导出文件系统的NFSD内核线程分布与负载

星晨小哥_8169

星晨小哥_8169

2026-05-03

408人浏览

原创

pstree 默认不显示内核线程如[nfsd],需加-t选项才能在进程树中呈现;可用ps -el | grep '[nfsd]'确认数量,pstree -p | grep rpc.nfsd定位启动服务,负载评估须结合nfsstat、sar等工具。

怎么在linux利用pstree查看导出文件系统的nfsd内核线程分布与负载

pstree 本身不直接显示内核线程(如 nfsd)的分布与负载,因为它默认只展示用户空间进程树,且 nfsd 是内核线程(kernel threads),在多数 Linux 发行版中以 [nfsd] 形式存在、无命令行参数、无用户属主、不隶属于任何用户进程树——这些特性导致它在默认 pstree 输出中被完全忽略或仅极简显示。

但你可以结合 pstree 的特定选项与辅助命令,间接定位、确认并初步评估 nfsd 内核线程的存在、数量及上下文关系。以下是实用、可操作的方法:


✅ 确认 nfsd 内核线程是否存在及数量

内核线程 nfsd 由 NFS 服务启动后在内核中创建,每个实例对应一个 CPU 核心(通常为 nfsd/0, nfsd/1, …),它们 PID 较小(常 [nfsd]、无 CMD 字段。

运行:

ps -eLo pid,tid,comm,cls,rtprio,pri,nice,pcpu,stat,uid | grep '\[nfsd\]'

或更简洁:

ps -eL | awk '$10 ~ /^\[nfsd\]$/ {print $1,$2,$10,$9}' | sort -n

输出类似:

24    24 [nfsd]   S
25    25 [nfsd]   S
26    26 [nfsd]   S
27    27 [nfsd]   S

→ 表明当前有 4 个 nfsd 内核线程(即支持最多 4 路并发 NFS 请求处理)。

⚠️ 注意:pstree 默认不显示方括号内的内核线程(如 [kthreadd], [nfsd]),除非显式启用 -t(threads)选项。


✅ 用 pstree -t 查看含内核线程的完整树(含 nfsd)

从 Linux 3.5+ 开始,pstree 支持 -t 选项显示轻量级进程(LWP)和内核线程(需 psmisc >= 23.0):

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
pstree -t -p | grep -A2 -B2 nfsd

若系统支持,你可能看到:

systemd(1)─┬─nfsd(24)─┬─[nfsd/0](24)
           │          ├─[nfsd/1](25)
           │          ├─[nfsd/2](26)
           │          └─[nfsd/3](27)

→ 这说明 nfsd 线程是 systemd 直接或间接派生的(实际由 rpc.nfsd 用户态程序触发内核模块加载并创建),pstree -t 成功将其纳入树中。

✅ 验证是否支持:pstree --help 2>&1 | grep -q '\-t' && echo "支持-t"
❌ 若报错或无输出,说明 psmisc 版本过低,需升级或改用 ps -eL 替代。


✅ 查看 nfsd 所属服务进程(用户态入口)

虽然 nfsd 自身是内核线程,但它由用户态 rpc.nfsd(或 systemd service nfs-server.service)启动。用 pstree 定位其控制进程:

pstree -p | grep -A5 -B5 nfs

常见输出:

systemd(1)─┬─rpc.nfsd(1234)─┬─nfsd(24)
           │                ├─nfsd(25)
           │                └─nfsd(26)

→ 实际上 rpc.nfsd 是 fork 出子进程后调用 syscall(__NR_nfsd) 创建内核线程;pstree 显示的 nfsd(xxx) 是占位符进程(已转为内核线程,原 PID 保留),因此该树形反映的是“启动关系”,而非真实父子继承(内核线程父 PID 恒为 2 —— kthreadd)。


✅ 评估 nfsd 负载:不能靠 pstree,需配合其他工具

pstree 不提供 CPU、IO、队列深度等负载指标。要评估 NFS 服务压力,应组合使用:

  • nfsstat -s:查看服务器端 NFSv3/v4 RPC 调用统计(rcvcnt, badcalls, netcnt)
  • cat /proc/nfsd/threads:显示当前活跃 nfsd 线程数(需内核支持 /proc/nfsd)
  • top -H -p $(pgrep -f 'rpc\.nfsd' | head -1):按线程查看 rpc.nfsd 进程的各 LWP 占用(注意:这不是内核 nfsd 线程,而是用户态管理线程)
  • sar -n NFS 1 5:监控 NFS 服务器请求延迟与吞吐(需 sysstat)

✅ 小结:pstree 在 NFS 场景中的合理用法

目标 是否可用 pstree 推荐命令
查看 nfsd 是否运行、有多少个 ✅(需 -t) pstree -t -p \| grep nfsd
确认 nfsd 由哪个服务启动 ✅(看父进程) pstree -p \| grep -A3 rpc.nfsd
判断 nfsd 当前 CPU 或 IO 负载 ❌(pstree 不提供) nfsstat -s, sar -n NFS, pidstat -t -p $(pgrep rpc.nfsd)
导出树状结构到文件供分析 ✅ pstree -t -p > nfsd-tree.log

提示:若需长期监控,建议写脚本定期采集 ps -eL \| grep '\[nfsd\]' + nfsstat -s + cat /proc/loadavg,比单靠 pstree 更有效。

不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2652

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

896

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

789

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2396

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4432

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习