Hey everyone, I am in the process of upgrading one of our servers and I have noticed a decrease in performance from newer versions of Linux.
To perform this test I have a large file and doing a basic read cycle test. The file contains:
Maximum Record size ..........: 256 (Variable)
Maximum # records ............: (No limit)
Current # records ............: 1867559
Size of key block ............: 4096 bytes
Record Expansion factor ......: 10%
External key size ............: 0
Alt. key 0 ...................: [1:1:6]+[2:1:8]+[3:1:2]+[4:1:3]+[5:1:5]+[6:1:2]+[7:1:16]
Read Cycle Program:
0010 BEGIN
0020 PRINT DTE(0:"%hz:%mz:%sz")
0030 OPEN (1)"/home/martin/TESTFILE"
0040 LET X$=KEY(1,END=0099)
0050 READ (1,KEY=X$)A$
0060 T++
0070 GOTO 0040
0099 PRINT DTE(0:"%hz:%mz:%sz")
The important part of this test is that it is to be run *MULTIPLE* times to fill the memory. Usually two passes complete filling the memory. Afterwards zero disk access is used, it's all memory based. This eliminates the disk-io variable from the test.
Test Results:
ubuntu server 10.04 = 9 seconds 2.6.32-38-server
ubuntu server 12.04 = 9 seconds 3.2.0-23-generic
ubuntu server 16.04 = 9 seconds 4.4.0-21-generic
ubuntu server 18.04 = 14 seconds 4.15.0-128-generic #131 (running pxp for ub16)
ubuntu server 20.04 = 14 seconds 5.4.0-58-generic #64
debian 10 = 14 seconds 4.19.0-13-amd64
windows10 = 11 seconds 20H2 - 19042.685
All tests were done with pvx17 64-bit and the same hardware, however I've seen the same results with older providex as well.
So my current conclusions are something has happened around the 4.4+ kernel that seems to be causing this as you can see a 5 second difference between 16.04 and 18.04. I'm not sure what the solution is yet, as I have just discovered this after numerous tests, I'd like to hear from the staff at pvxplus before I do any more tests.
Thanks for any thoughts,
Martin