Timeo is a timeout mount option in NFS mount. It is the timeout value that the NFS client uses to wait for a response before it retries an NFS request. Let's dive into the details about what this timeout value means between NFS over TCP and NFS over UDP. Check this post to learn more about NFS port.
Timeo is the timeout period that is specified by the mount parameter and is expressed in tenths of a second. For example, the default NFS timeout value is 600 in Redhat which means 60s. Check this post to learn more about the difference between TCP and UDP.
Check Timeout For NFS over UDP
NFS over UDP, the client uses an adaptive algorithm to estimate an appropriate timeout value for READ / WRITE request, but uses the timeo setting for FSINFO request.
If the timeo option is not specified, FSINFO request types are retried after 1.1 seconds.
After each retransmission, the NFS client doubles the timeout for that request, up to a maximum timeout length of 60 seconds. The default retrans value for UDP is 3.
Check Timeout For NFS over TCP
For NFS over TCP the default timeo value is 600 (60 seconds) and retrans is 2.
The NFS client tries 2 times (as retrans = 2) after the timeo. The total time NFS
will wait for is 180 sec after a disconnect to start displaying 'nfs not responding' messages
The values for these options can be changed per the requirement.
On Redhat, for NFS over TCP, the default timeo=600, retrans=2, so the major timeout value = timeo + timeo * retrans=600+600*2=1800=180s.
What happens next after NFS Timeout?
In NFS timeout issue, we can use tcpdump to capture packets. After a major timeout, the message:
NFS server host not responding still trying
is printed on the client's console. If a reply is eventually received, the "not responding" message is followed with the message:
NFS server host ok