File Transfer best practices - Nimble Studio File Transfer

File Transfer best practices

To maximize benefits from Nimble Studio File Transfer, we recommend that you perform the best practices on this page.

Amazon Simple Storage Service (Amazon S3)

AWS Key Management Service (AWS KMS)

Hardware

We recommend that your computer meets the following requirements for you to use File Transfer.

  • 8 logical CPU cores

  • 8 GB RAM

File Transfer can run on a machine with fewer specifications than these, but that can decrease performance.

Configuration

You have the option to use autotuning or manually tune parameters to best meet your file transfer use cases. If you choose to manually tune your settings, poor performance may be encountered if done improperly. We recommend most users keep autotuning enabled.

Autotuning configuration

We recommended that most users leave the Transfer autotuning setting enabled. If the Transfer autotuning setting is enabled, File Transfer automatically sets values for Number of threads and Chunk size. File Transfer determines the most effective settings based on the type of data that you transfer.

The Transfer autotuning setting adjusts your performance settings on a per-file basis. If you manually set the values for Number of threads and Chunk size, those settings are applied to the entire batch of transfers. This is why Transfer autotuning usually has increased performance when you transfer different sized files. The performance of the Transfer autotuning setting is comparable to manual settings adjustments when you transfer files of similar sizes. If you have advanced knowledge of your hardware and transfer data, your manual settings can outperform the values that Transfer autotuning chooses.

Threads

With File Transfer, each transfer is split into multiple, individual threads that are used to transfer each file. Threads are most effective when you upload large files (> 1 GB). Threads can also help with small files, but the differences in transfer speeds won't be noticeable.

By default, the number of threads is 10. We recommend that you raise this value by increments of 5 until you fully use your bandwidth resources. You can monitor the bandwidth resources from the graphical user interface (GUI) by looking at the download and upload speeds for transfers.

Chunk size

The chunk size is the size (in MB) that is delivered by each thread. Chunk size is helpful if a file size is repeated within the set of files being uploaded.

We recommend that you set the chunk size to 5 to 10 times greater than the average file size that you are transferring. For example, if the average file size in a dataset is 50 MB, set the chunk size between 55 and 60. If the file size is larger than 1 GB, this won’t show as much benefit.

Max active transfers

Max active transfers determine how many individual files that File Transfer processes at the same time. Adjusting max active transfers is most effective when you're transferring multiple small files that are less than 1 GB. We recommend that you increase the value of max active transfers as the file size decreases.

The following table shows the recommended starting points and increments for max active transfers. Start at the value in the max active transfers column and raise it by the increment amount until you reach the desired performance.

File size Max active transfers Increments

< 1 MB

100

20

> 1 MB–< 100 MB

50

10

> 100 MB–< 1 GB

25

5

> 1 GB

10

2

Checksums

File Transfer checksums are the number of individual checksums that File Transfer processes at a time. The checksum algorithm is the algorithm that File Transfer uses for file integrity when transferring files.

You can choose between four checksum algorithms: MD5, XXHash, XXHash64, and XXH3. This is a preference based on what level of security and speed that you want. The earliest and most standard checksum method that is secure is MD5.

The recommended max active checksums value is the total number of CPU cores minus 1.