We ran the SFS benchmarks with initial load set to 100 for 5 times and incremented the load by 100 at each run. We measured the server performances with different numbers of server threads, 1, 2, 4, 8 and 16. The results were listed here:
Run | # of Server | # of | # of Processes | Load | Throughput | Response Time |
Threads | Clients | Per Client | (Ops/Sec) | (Ops/Sec) | (Msec/Op) | |
1 | 1 | 4 | 2 | 100 | 98 | 1.4 |
2 | 1 | 4 | 2 | 200 | 200 | 2.7 |
3 | 1 | 4 | 2 | 300 | 302 | 3.3 |
4 | 1 | 4 | 2 | 400 | 402 | 6.8 |
1 | 2 | 4 | 2 | 100 | 99 | 1.0 |
2 | 2 | 4 | 2 | 200 | 200 | 1.7 |
3 | 2 | 4 | 2 | 300 | 302 | 2.0 |
4 | 2 | 4 | 2 | 400 | 398 | 3.3 |
1 | 4 | 4 | 2 | 100 | 98 | 1.0 |
2 | 4 | 4 | 2 | 200 | 200 | 1.4 |
3 | 4 | 4 | 2 | 300 | 303 | 1.5 |
4 | 4 | 4 | 2 | 400 | 398 | 2.1 |
1 | 8 | 4 | 2 | 100 | 98 | 1.0 |
2 | 8 | 4 | 2 | 200 | 200 | 1.4 |
3 | 8 | 4 | 2 | 300 | 302 | 1.6 |
4 | 8 | 4 | 2 | 400 | 398 | 2.1 |
The benchmarks show that even for the light load, the kernel-space NFS server outperforms the user-space one by a wide margin. In this test load, 4 kernel NFS server threads provides adequate performance.