NFSv4.2 RPC Socket Starvation During Distributed PyTorch 8x A100 Checkpoint Flush
During a 70B parameter distributed LLM checkpointing run across 8x NVIDIA A100 GPUs, compute nodes attempted to simultaneously burst write ~480 GB of unbuffered tensor weights to TrueNAS SCALE over NFSv4.2 with sec=krb5p. Client-side kernel TCP RPC slots were instantly saturated, triggering cascading ESTALE and RPC timeout cascades.
- 14:02:11 Slurm job #8924 initiates epoch 14 checkpoint flush (480 GB total payload).
- 14:03:40 TrueNAS disk write queue depth exceeds 256; NFS RPC latency spikes from 0.8ms to 14,200ms.
- 14:05:12 Kernel emits
sunrpc: task 40182 on broken transporton compute nodes. - 14:14:00 NOC on-call engineer paged via automated Slurm GPU non-responsive watchdog.
- 14:26:30 Emergency sysctl socket queue expansion applied live across compute cluster.
- 14:40:00 NFS client RPC slots recovered; checkpoint committed safely without data corruption.
Root Cause: Default Linux kernel sunrpc.tcp_slot_table_entries was pegged at 16, creating severe head-of-line blocking under parallel multi-threaded synchronous I/O.
# Corrective Kernel Parameter applied across all cluster compute nodes:
sysctl -w sunrpc.tcp_slot_table_entries=128
sysctl -w sunrpc.tcp_max_slot_table_entries=128
# TrueNAS ZFS dirty data throttle tuned to avoid RPC burst stalls:
echo 17179869184 > /sys/module/zfs/parameters/zfs_dirty_data_max_max