Test
After having analyzed the performance of
NFSv4 for files creation, compared it to ext3
performance, and compared it to NFSv3 performance, we have concluded
that there is a performance issue in NFSv4.
To help to find where the problem is, I have compared the performance
of NFSv4 on Linux with a non-Linux server.
The NFSv4 server is installed on a well known systemV-like operating
system ; the NFSv4 client is still on Linux.
{Tests scripts are the same than for tests previously done (see
archive). The scripts continuously create and sync files (open
with O_CREATE and fsync(fd)).}
Diagrams:
- The first diagram is the time to create 100 files on NFSv4 using
a sysV server and a Linux client. We can see the modification of the
behavior when reaching the second indirection in the local File System,
near to 700,000 files. Compared to previous experimentations done with
a Linux server, it is clear that the abnormal behaviour for files
creations we have seen with Linux server does not appear with this
SystemV server.
- The second diagram is a superposition of two diagrams showing a
strange behavior with Linux and a correct behavior for the SystemV O.S.:
- The file creation behavior using a Linux client and a Linux
server
- The file creation behavior using a Linux client and a SystemV
server
At this point we can conclude the Linux server is the cause of
performance issues when reaching 1,620,000 files.
This above diagram is a detail of previous curves. We can see file
creation throughput on NFSv4/Linux server is four time higher than with
a sysV server. Since the client used for testing is the same for both
tests, the linux server is responsible for that loss of performance.
This above diagram represents the total amount of time to create n
files using NFSv4 with Linux client and :
- a Linux server (pink)
- a sysV server (blue)
That is the sum of aboves curves. It confirms the above results : there
is a loss of performances when creating files on the Linux NFSv4
server.
Conclusion
- Limitation of file creation is caused by NFSv4 server.
Software configuration
- Client :
- Linux 2.6.12-CITI_NFS4_ALL-3.diff
- Distribution : modified Fedora Core 2
- Server :
- i386 SysV compliant operating system
- exports options : rw, default
Hardware configuration
(Client and Server) br>
- 2 processors : Intel(R)
- Xeon(TM) CPU 2.80GHz, cache 512 KB
- Total memory: 2Gb
- Ethernet: 1Gb/s link