[Info-vax] Some I/O results

Mark Berryman mark at theberrymans.com
Fri Nov 10 13:30:46 EST 2023


I have a Mac with ~24TB of data (consisting of fairly large files) that 
needs to be rolled out to tape.  Unfortunately, my tape drives are fibre 
channel (SAN-based) and the only systems that currently have access to 
them are my VMS systems.

No problem, says I.  I'll just create a 24TB volume set, copy the data 
up, and roll it out to tape using VMS backup.

Aside:
The maximum volume size currently supported by VMS is closer to 2TiB 
than 2TB.  If we assume 2TB = 2000GB then 2TiB is somewhere between 2199 
and 2200GB.  Creating a volume at 2199GB caused VMS to complain that it 
was too big and some space would be unused.  Same at 2190GB.  I 
eventually settled on 12 volumes of 2181GB each.

Now, how to get the data onto my VMS cluster?  The Alpha and Integrity 
systems only have 1G Ethernet interfaces but the x86 system, as an ESXi 
guest, has both 1G and 10G interfaces.

SCP does not send file size information so the destination file is 
constantly extended until the copy completes.  However, I discovered 
that if I pre-allocate the file and specify the version number of the 
destination file, SCP would the equivalent of a copy/overlay.  With a 
one line change to the source code, I was able to do the same with 
Hunter Goatley's FTP server.

So, with SCP, the best I could manage was a copy around 5 MB/sec.  On 
the other hand, a Mac to Mac copy - over the same 1G LAN - achieved over 
90 MB/sec, which is close to the maximum possible.

With FTP, I could achieve around 14-15 MB/sec.

My last option was NFS.  It managed better than 20 MB/sec.  It was also 
much easier since I could NFS mount the source and then just use a copy 
command to get the data and copy pre-allocates the destination file on 
its own.

Now here is the part that was surprising to me.  As mentioned, the Alpha 
and Integrity systems were copying over a 1G Ethernet path whereas the 
x86 system was using a 10G path (the Mac has both 1G and 10G 
interfaces).  Using the exact same source and exact same I/O sizes, the 
Alpha averaged 335 I/Os per second to its target disk, the Integrity 
system managed just over 400 I/Os per second, but the x86 system 
couldn't do any better than 279 I/Os per second - even on a link that 
was 10 times faster.  (It also has a faster HBA than the other systems).

I did check kernel mode usage and there wasn't much difference between 
the 3 systems.  It simply appears that I/O on x86 is somewhat slower 
than I would have expected.  I'll check again to see if there is any 
difference once the system is built with optimizing compilers.

Mark Berryman

P.S. If anyone was wondering, it took a week to copy all of the data up 
and over 2 days to roll it out to tape.  If I ever have to restore it, 
it will still take a *lot* less time than originally creating the data did.

I really hope support for SAN-based tape drives is coming soon to x86.



More information about the Info-vax mailing list