如何查看我nfsd
的 Mac 上正在运行多少个 Service Worker?
语境
我正在使用 Vagrant 环境,它运行速度非常慢。从tcpdump -i any port not 22
虚拟机内部来看,我可以看到网络接口负担很重。布皮托盒子里面也是如此。
我可以从这两篇文章中读到:
... 可以通过更改 -daemon 运行的服务工作程序数量来改进 NFS nfsd
。但他们关于如何执行此操作的指南是针对 Unix 的 - 而我在 Mac 上。
我很困惑,如何知道有多少服务人员在运行。
解决方案尝试
- 我尝试看一下
nfsstat
,但却没能真正看到它。 - 我尝试
nfsstat
使用此命令每秒运行一次:while true; do nfsstat; echo " \n\n --------- \n\n $(date '+%H:%M:%S') \n\n"; sleep 1; done
- 看看是否能发现某处的任何重大变化。 - 我看了看,
/etc/nfs.conf
但那是空的(忽略顶部的评论)。 /etc/exports/
我也看了,但那只是列出了已安装的文件夹。- 我尝试看一下
ps aux | egrep "nfs|PID"
,但确实看不到任何重要的东西。
答案1
nfsd
通过探索终端中的命令找到了解决方案。
我可以通过输入以下内容来查看金额:nfsd status
。
如何改变它
通过编写:man nfsd
我可以看到我可以添加一个-n
标志,这样就可以指定要启动的线程数量(默认值为 8)。但是如果我写:
sudo nfsd stop
进而
sudo nfsd start -n 16
进而
nfsd status
...它仍然显示8个线程。
我尝试了很多不同的东西。
解决方案是通过编写找到的:man nfs.conf
,我可以看到我可以添加以下行:
nfs.server.nfsd_threads=16
到/etc/nfs.conf
。
在我完成这些之后,我写道:sudo nfsd restart
然后 BAM!16 个线程正在运行。嘘!