Linux NFSv4.1 performance under a microscope
Abstract
NFS is a highly popular method of consolidating file resources in today’s complex computing environments. NFSv4.1, the latest version of the NFS protocol, has improvements in security, maintainability, and performance. Before system administrators can take advantage of NFSv4.1 in production systems, we need a good understanding of its performance. For this purpose, we present a detail-oriented benchmarking study of Linux’s implementation of NFSv4.1 using micro-workloads. The NFSv4.1 servers in the 2.6.32 and 3.12.0 kernels performed well in most of our experiments. However, we also observed that Linux’s memory management can waste up to 80% of NFS I/O throughput. NFS performance also suffers from unfair networking behavior that causes the throughputs of identical NFS clients to differ by a factor up to19×. We show that NFS delegations can boost performance by saving up to 90% of network traffic, but a delegation conflict can cause a delay of at least 100ms—more than 500× the RTT of our network. We also found that NFS can exhibit counterintuitive performance behavior due to its intricate interactions with networking and with journaling in local file systems. Tags: benchmarking, file system, NFS, performance analysis, storage systems.