Benchmark results part 3: NCP performance


As with the CIFS test, caching was present in one half of the environment so analysis isn't straight forward. NCP-on-Linux involved local caching where NCP-on-NetWare apparently did not. This was a confusing result, since the identical client settings were used for both environments. Also interesting to note is that the results of NCP-on-Linux were similar to the results for CIFS-on-NetWare. There are differences, but the general trends were similar.

As with the CIFS tests, the two tests that give the best uncached results are the Reader and Backward Reader tests.
NCP Reader comparisonReader Test, Comparing NetWare vs. Linux. The value is the multiplier that NetWare is faster than Linux. Units are in KB.

As with the CIFS test, the key value here was the record size. The sense is inverted from the CIFS test, in that it is the Linux environment that performs faster than the NetWare environment. This is a surprising result, considering that NCP is a native NetWare protocol, and NCP on Linux is a relative newcomer. The magnitude of the improvement is comparable to that of CIFS-on-NetWare over CIFS-on-Linux, which is an interesting result by it self. Also, as with the CIFS-on-NetWare, the improvement of NetWare over Linux in the larger record sizes is quite visible. The improvement is on the order of 5%, which comes close to the 7% improvement on larger file-sizes reported by CIFS-on-Linux.
NCP Backward Reader, file size view, comparisonBackward Read Test, File Size view, NetWare vs. Linux. The value is the multiplier that NetWare is faster than Linux. Units are in KB.

This test showed a difference between the CIFS and NCP tests. Unlike the CIFS test, file-size was not a strong determiner of performance. Record size was more closely associated.
NCP Backward Reader, record size view, comparisonBackward Read Test, Record Size view, NetWare vs. Linux. The value is the multiplier that NetWare is faster than Linux. Units are in KB.

As you can see from the chart, record size is the thing that separates performance. The break comes between the 64K and 128K record sizes. Unlike the CIFS results on this test, the level of improvement for NCP-on-Linux is not to the same magnitude as the improvement for CIFS-on-NetWare. As has proven to be common with cached vs. uncached access, larger file-size access for the uncached method is a little faster. In this case about 5%, which isn't close to the 14% gain reported by CIFS-on-Linux.

As with the CIFS tests, the cache mechanism makes checking true performance of the file system under certain levels hard. However, the cache only provides performance boosts below certain file-size and record-size levels, so we do have some data to play with. Not as much as I'd like, but it is still there.

The 'Record Rewrite' test shows how the effectiveness of caching reduces over time.
NCP Record Rewrite, NetWare vs Linux comparison
Record Rewrite Test, average improvement per record-size, NetWare vs. Linux. The value is the average multiplier of NetWare performance over Linux performance, averaged across all file-sizes.

That is a very clear curve, and shows rather well that caching only handles the first 256K of a record rewrite and the rest is handled through normal methods. The point where NCP-on-NetWare pulls ahead of NCP-on-Linux is between 2MB and 4MB. The curve suggests that rewrites higher than 16MB would pull even farther ahead, but that sort of file-access is rather rare, all things considered.

The 'Random Write' test does not show an improvement for the uncached method like it did with the CIFS tests. The improvement is linear starting at 128K and never breaks 1.00. Again, once the record size gets beyond 32MB there may be a point where it does, but again this sort of file-access is rather rare.

The 'Writer' test is cached, which is in the Novell Client spec. The improvements are for file sizes larger than 32MB and record sizes larger than 2MB. In that range the improvement of NCP-on-NetWare is about 7%. In the FileSize > 32MB range, regardless of record-size, the improvement is 1%. In the RecordSize > 2MB range, regardless of record-size, the improvement is 7%. This tells us that Record Size is again the biggest determiner of performance.

Like the CIFS tests, the data here show that NCP-on-Linux is the better bet. This has much more to do with NCP-on-Linux being cached better than NCP-on-NetWare. I am suspicious of this result, since NCP-on-NetWare should have been doing local caching as well, but it wasn't. Since the majority of file-access on our file-servers is going to be with files under 64K in size, NCP-on-Linux is the better bet from a pure performance perspective.

Part 4: Comparing Cached, NCP-on-Linux vs CIFS-on-NetWare