LinuxにおけるNFSタイムアウト値について
※過去にまとめたwikiからの移行記事
LinuxでのNFSタイムアウト値はtimeo、retransオプションで決定されるが、プロトコル(TCP/UDP)によって若干動きが異なる。
TCPの場合
リトライ時に(timeo/10)秒だけretrans+1回待つ動きとなる。
具体的には以下の通り。
※パラメータはデフォルト設定(timeo=600、retrans=2)
- 障害発生
- 60秒(timeo/10)待機
- リトライ(1回目)
- 60秒(timeo/10)待機
- リトライ(2回目)
- 60秒(timeo/10)待機
- リトライ(3回目)&タイムアウト
そのため、180秒待つこととなる。
UDPの場合
retrans+1回リトライするのはTCPと同じであるが、待機秒数が異なる。
UDPの場合では、リトライ毎に待機時間が(前回の待機時間×2)秒となる。
具体的には以下の通り。
※パラメータはデフォルト設定(timeo=600、retrans=2)
- 障害発生
- 60秒(timeo/10)待機
- リトライ(1回目)
- 120秒(timeo/10×2)待機
- リトライ(2回目)
- 240秒(timeo/10×2×2)待機
- リトライ(3回目)&タイムアウト
そのため、420秒待つこととなる。