Hi all,
We’re starting throw some data at our CTA instance, and have noticed an odd asymmetry with our archive and retrieve rates, which seems to be linked to the “single file xrdcp rates” from our CTA EOS cluster.
Our setup for testing has a single node EOS with 15 SSD filesystems in the ‘default’ (archive) space, and a single tape server and drive. This node has been tested with FIO and could achieve 500+ MB/s read or write performance on a single drive, and the performance scaled as expected when testing more drives.
When testing EOS on the same node, a single xrdcp write could achieve the expected rate e.g. ~500MB/s. In comparison, xrdcp reads could only hit ~260MB/s with a single stream. Both reads and writes could happily saturate the nodes network when doing multiple transfers (although it took more reads to saturate, 13 rd vs 6 wr). I experimented with multi-stream xrdcp (the -S option), and could achieve reasonable read rates compared to the underlying disks with ~8 streams.
We then moved on to verifying archive and recall rates of the whole setup, and we saw the same asymmetry. A single tape drive in ‘retrieve’ would write data back to EOS at 400MB/s (our tape drive line speeds), but archival was capped at ~260MB/s per tape drive. We tested a variety of file sizes (2GB-20GB), and although the cta-taped often reported faster ‘driveTransferSpeedMBps’ for the smaller files, the network rate from the EOS node to the tape server never exceeded that 260MB/s (e.g. the rate of a single xrdcp).
This raised a few questions:
- Has anyone got any other ideas as to why our EOS read performance is half of what we expect? We believe our EOS setup is similar to the suggested CTA EOS setup (1 stripe, 1 replica, 4k block size, scanning disabled etc.), but we may be missing something obvious.
- What sort of single file xrdcp read and write performance do other CTA users see from their SSD EOS clusters?
- Does the cta-taped copy files from EOS into its buffer in a serial fashion? e.g. does the single file read performance of EOS need to be greater than the tape drives write performance in order to saturate the tape drive and keep the buffer full, or can the cta-taped copy files into its memory buffer in parallel (assuming there is space).
- Is there a way to configure cta-taped to do multi-stream xrootd transfers from EOS? This may not be the right way to solve this problem, but it would be interesting to test.
Thanks for reading, happy to give more(!) detail if needed.
Cheers,
Tom