Speed of synchronization does not only depend on network bandwidth. The disk performance is very important for fast file transfers. Slow disks are frequently the main reason for the overall slow synchronization of files even though network bandwidth allows to transfer of files faster.
Resilio Connect version 2.12.5 allows the testing of disk speed of reading and hashing files. The results will help to evaluate if the disk is the culprit in slower performance.
The new disk test is available in the Resilio Management Console Settings - Diagnostic menu (only for Resilio Agents version 2.12.5 or higher.
Select an Agent and select the test mode - whether you want to check the speed of listing files or the speed of reading & hashing file content. Choose a directory to run the test on - this might be the folder that will be used in a job later, or its subfolder, or at least a directory with a set of files that represents the working folder with files. Please note, that on an Agent that runs in a user limited mode the test can be performed only in the directory allowed by the user.
The disk test must be performed on a non-empty directory and will automatically stop after testing over 1M of files. This way, the Resilio Agent will show more precise results when reading or hashing real data.
Listing of files implies that the Resilio Agent will only enumerate the files in the folder, marking down their size, timestamp, and other attributes. This is what agents do right after being added to a job if hashing is disabled in profile, or at periodic folder scan. For example, knowing the speed of listing files, it's possible to estimate how soon the agents will create the folder tree database for a newly added job, or how long a periodic scan of the folder will take.
Hashing of files is way slower than listing since the agent actually reads file content and calculates the hash of each file.
Agents perform the disk test using their currently assigned Agent profile, therefore some other parameters from the profile may influence the test results (for example, querying file ID, size of file piece, or Asynchronous disk I/O have their effects).
All drives attached to the Agent machine and visible to Agent's session are available for the test. See here for the peculiarities of making a network share available to the Agent.
Agents with limited access for MC admin currently cannot run disk test, however only the Agent's default folder location can be tested. Admin shall manually put the full path to the allowed directory into the "Path" field.
During the test, Agent will report back results in real-time, each second. Here's how to interpret the results:
Hashing
Each second the Agent reports the current speed of hashing and the summarizing size and number of files found at the given moment. Thus you see the number of files grow each second, though it's OK that the same number is reported during several seconds.
At the end of the test, the Agent gives the average speed of hashing and size of hashed files. However, it's not reported if the test is manually stopped.
Thus, if your configuration has hashing enabled (see transfer_job_force_owner_to_hash_file and lazy_indexing here) it's not expected that the speed of uploading will be faster than the speed of hashing of the uploading Agent.
Listing
The Agent simply enumerates the files in the folder. In this test, it reports the number of listed files per second, the sum of files discovered (but not yet listed properly). Interpreting the speed by listing files might seem tricky, and results are not expected to be precise on small amounts of data.
For example, the results below indicate that the test lasted for 2 seconds. The Agent was able to read attributes (list) of 17 files but found 20 files in the folder at that moment, thus 3 files were not yet listed during the first second of the test. During the other second of the test, the agent discovered 1 more file in the folder and was able to list the rest of the files - 3 remaining from the first second and 1 new.
It's OK to see 0 files/second in each or some of the reported lines. It basically means that the agent didn't complete listing a single file within a second, and indicates that the disk is that slow.
Available from Resilio Connect v3.8.0.
Select the Agent and select the path for the diagnostic - the storage performance to measure.
Click button to change test parameters.
When the test is launched, the Agent will create the configured number of files of the configured size each inside the temp subfolder in the configured directory "resilio-disk-write-speed-test-tmp-<timestamp>-<seqnum>". Be sure to add this pattern to any third-party software that might be scanning/watching the selected folder, for example, AV or security software.
The files will be deleted automatically after the test is complete.
The test measures sequential write within one file, so with multiple files it will be a kind of a random write speed and IOPS for every write test.
Number and size of files. Speed of a storage to write a few large files and a lot of small files may differ, even though the total size of data written may be similar. It’s advisable to run such a test that is close to the production data in this regard. Max number of files for the write test is 1,000,000. The test should stop when it reaches 10GB of data or 1M of files.
Number of disk I/O threads. Same as the parameter in the Agent profile, it’s the number of disk threads to write the test files. Usually fast storages are capable or writing the data in multiple threads, while low-end storages may work only with fewer threads. If unsure, keep default value.
Block size. Each file is split into block of the given size when being written. The more blocks it’s split into, the slower writing to disk may be in the end. If unsure, keep default.
Buffering. Some storage support buffered data, which may show faster results.
For simplicity some of the parameters are combined into predefined sets with different parameters so as to check different scenarios:
Bulk write - see disk ability to store massive amount of files.
IOPs test - see what is the overall IOPs performance of the disk and how well it deals with writing a smaller files.
Balanced test - create average size files. The results are written in hops with summary after test completion.