文档章节

nfs卡住的问题

舒运
 舒运
发布于 2017/06/16 00:07
字数 1767
阅读 16
收藏 0
点赞 0
评论 0

最近使用nfs来存储文件,但是在客户端节点遇到了问题。

用df -h的时候系统直接就卡住了。

后来百度了一下,发现网上好多遇到这种问题的。是因为nfs的server其实已经挂了,但是客户端还存在。所以会出现这种情况,这里复制一段一位大神的语录:

之前开发时就碰到过nfs客户端卡住的情况,umount -f /mnt提示device is busy,并且尝试访问挂载目录、df -h等操作都会使终端卡住,ctrl+c也不能强行退出。

当时忙着赶进度,没研究这个问题。最近倒出功夫研究一下,顺便学习一下nfs的优化。
造成这种现象的原因是nfs服务器/网络挂了,nfs客户端默认采用hard-mount选项,而不是soft-mount。他们的区别是
soft-mount: 当客户端加载NFS不成功时,重试retrans设定的次数.如果retrans次都不成功,则放弃此操作,返回错误信息 "Connect time out"
hard-mount: 当客户端加载NFS不成功时,一直重试,直到NFS服务器有响应。hard-mount 是系统的缺省值。在选定hard-mount 时,最好同时选 intr , 允许中断系统的调用请求,避免引起系统的挂起。当NFS服务器不能响应NFS客户端的 hard-mount请求时, NFS客户端会显示
"NFS server hostname not responding, still trying"


下面列出mount关于nfs相关的参数
(1)-a:把/etc/fstab中列出的路径全部挂载。
(2)-t:需要mount的类型,如nfs等。
(3)-r:将mount的路径定为read only。
(4)-v mount:过程的每一个操作都有message传回到屏幕上。
(5)rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是4096个字节。
(6)wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是4096个字节。
(7)timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。
(8)retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。
(9)soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。
(10)hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。
(11)intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。
(12)fg:一直在提示符下执行重复挂载。
(13)bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。
(14)tcp:对文件系统的挂载使用TCP,而不是默认的UDP。

如#mount -t nfs -o soft 192.168.1.2:/home/nfs /mnt


至于传输尺寸的选择,可以进行实际测试
time dd if=/dev/zero of=/mnt/nfs.dat bs=16k count=16384
即向nfs服务器上的nfs.dat文件里写入16384个16KB的块(也有经验说文件大小可以设定为nfs服务器内存的2倍)。
得到输出如:
输出了 16384+0 个块
user    0m0.200s
输出了 66535+0 个块
user    0m0.420s
192.168.1.4:/mnt  /home/nfs  nfs   rsize=8192,wsize=8192,timeo=10,intr
重新挂载nfs服务器,调整读写块大小后重复上述过程,可以找到最佳传输尺寸。


NFS服务器的故障排除
故障排除思路:
NFS出现了故障,可以从以下几个方面着手检查。
(1)NFS客户机和服务器的负荷是否太高,服务器和客户端之间的网络是否正常。
(2)/etc/exports文件的正确性。
(3)必要时重新启动NFS或portmap服务。
运行下列命令重新启动portmap和NFS:
service portmap restart
service nfs start
(4)检查客户端中的mount命令或/etc/fstab的语法是否正确。
(5)查看内核是否支持NFS和RPC服务。
普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。
我们可以使用常见的网络连接和测试工具ping及tracerroute来测试网络连接及速度是否正常,网络连接正常是NFS作用的基础。rpcinfo命令用于显示系统的RPC信息
,一般使用-p参数列出某台主机的RPC服务。用rpcinfo-p命令检查服务器时,应该能看到portmapper、status、mountd nfs和nlockmgr。用该命令检查客户端时,应
该至少能看到portmapper服务。


使用nfsstat命令查看NFS服务器状态
nfsstat命令显示关于NFS和到内核的远程过程调用(RPC)接口的统计信息,也可以使用该命令重新初始化该信息。如果未给定标志,默认是nfsstat -csnr命令。使用该命令显示每条信息,但不能重新初始化任何信息。

nfsstat命令的主要参数如下。
(1)-b:显示NFS V4服务器的其他统计信息。
(2)c:只显示客户机端的NFS和RPC信息,允许用户仅查看客户机数据的报告。nfsstat命令提供关于被客户机发送和拒绝的RPC和NFS调用数目的信息。
要只显示客户机NFS或者RPC信息,将该参数与-n或者-r参数结合。
(3)-d:显示与NFS V4授权相关的信息。
(4)-g:显示RPCSEC_GSS信息。
(5)-m:显示每个NFS文件系统的统计信息,该文件系统和服务器名称、地址、安装标志、当前读和写大小,以及重新传输计数
(6)-n:为客户机和服务器显示NFS信息。要只显示NFS客户机或服务器信息,将该参数与-c和-s参数结合。
(7)-r:显示RPC信息。
(8)-s:显示服务器信息。
(9)-t:显示与NFS标识映射子系统的转换请求相关的统计信息,要只显示NFS客户机或服务器信息,将-c和-s选项结合。
(10)-4:当与-c、-n、-s或-z参数组合使用时,将包含NFS V4客户机或服务器的信息,以及现有的NFS V2和V3数据。
(11)-z:重新初始化统计信息。该参数仅供root用户使用,并且在显示上面的标志后可以和那些标志中的任何一个组合到统计信息的零特殊集合。


要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息,输入:
nfsstat -c
要显示和打印与客户机NFS调用相关的信息,输入如下命令:
nfsstat -cn
要显示和打印客户机和服务器的与RPC调用相关的信息,输入如下命令:
nfsstat -r
要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息,输入如下命令:
nfsstat –s

这里就是详细的解释了。

© 著作权归作者所有

共有 人打赏支持
舒运
粉丝 7
博文 213
码字总数 510016
作品 0
深圳
关于NFS在外网因为防火墙没设置好导致namenode -fomat一直卡住

@平江夜弹 你好,想跟你请教个问题: 您好 我现在在外网搭建hadoop环境 用了NFS 现在不知道是防火墙的哪个设置没设置好 导致 hadoop namenode -format在格式化NFS目录的时候一直被卡住 然后就...

熊云长 ⋅ 2012/08/28 ⋅ 0

OSC故障分析:频繁的重启 Tomcat 会导致系统的性能下降吗?

今天下午 OSChina 挂了挺长时间,主要的现象是应用服务器 CPU 非常繁忙,连接池爆满,Tomcat 对请求的处理非常缓慢,报大量的 work queue full 的错误。但是前端 Nginx 的日志里看不到明显的...

红薯 ⋅ 2015/10/16 ⋅ 24

linux df -h卡成狗

今天遇到一个很奇怪的问题,在一台linux执行df -h查看磁盘使用情况,发现卡成狗,于是着手去解决: 1、通过strace df -h追踪是卡在什么位置 [root@new_web ~]# strace df -hexecve("/bin/df"...

chenyicai ⋅ 2017/05/11 ⋅ 0

Linux运维笔记-文档总结-NFS文件共享(网络文件系统)

转自:http://m.blog.csdn.net/blog/index?username=Ningdaxing1994 觉得这个写得不错哈哈~ 以下所有操作都是在Red-hat 7.0上 1.NFS的介绍 NFS(Network File System)即网络文件系统,是Fre...

AELY木 ⋅ 2017/06/09 ⋅ 0

Windows补丁再次惹祸了 卡住用户电脑

现如今,微软每个月发布更新补丁之后,几乎总会出现大大小小的一些问题。唉也没办法,那么多系统、软件,海量的代码,完美无瑕才邪门了呢。微软本月放出了多达13个安全补丁和一堆其他修复补丁...

Foundation ⋅ 2015/08/20 ⋅ 0

maven generating project in batch mode卡住

@iamyangjy 你好,想跟你请教个问题: 我看到你的文章中有解决创建maven工程卡住的的问题,但是我按照你说的操作idea还是卡住不动,请问添加参数的时机是什么时候,是卡住后再加上吗?加上参...

小Y_ ⋅ 2016/03/25 ⋅ 1

linux ftp客户端的编码问题

准备下载ftp上的文件,记得curl可以实现下载ftp的文件,然后尝试了, 结果是卡住不动了!卡住不动了!卡住不动了!没有出现预想的下载进度条。 怀疑自己的命令写错了,然后使用ftp客户端 输入...

夜风飘尘 ⋅ 2016/08/17 ⋅ 0

BZOJ4944: [Noi2017]泳池(线性递推)

传送门 题解: 首先转换问题为最终面积小等于 注意到最终图形的底边会被禁止的地方分为不同段,每一段的最大面积都不能超过 考虑如何处理 注意有一个小细节是一行有多个被卡住的地方,此时要...

qq_35649707 ⋅ 05/11 ⋅ 0

VS2013编译卡顿如何解决?

使用VS2013编译C#程序代码时,不管代码量多少,一调试运行就会卡住10s左右才弹出程序窗口,然后修改一个字符或者加个空格再编译又卡住10s。以上这种情况在关闭网络连接后就不会出现,一打开网...

Lance丶 ⋅ 2015/09/23 ⋅ 4

Hadoop运行时出现了一个神奇的现象

做毕业设计需要在33个节点的集群上跑程序,1个master和32个slave,节点配置都是4核CPU+4G内存,为了方便配置,我先用3个节点配置后跑了10G数据的TeraSort程序,可以成功跑完,但是把配置扩展...

HotGaoGao ⋅ 2016/03/14 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部