Optimizing agent for large amount of small files delivery
By default Resilio Agent is optimized for a mixed dataset delivery: few millions of files with average size of ~5 megabytes.
This guide provides strategies to efficiently manage and optimize use cases involving millions of small files, each averaging just a few kilobytes. Here are optimization steps suggested:
-
In the Agent Profile:
- Set
Number of disk I/O threadsto12(default value is4). This will help an Agent to access more files at the same time. - Add the
fs_prefer_sequential_indexingcustom parameter with valuefalse(defaulttrue). This allows Agent to process multiple small files in parallel without waiting previous files indexing to complete. - Set the
peer_max_active_downloadscustom parameter to2000(default500). This allows Agent to increase safety net of parallel files delivery from 500 to 2000 per connection to another Agent. - Set the
max_active_downloadscustom parameter to2000(default1000). This increases global Agent-scale limit of simultaneous files delivery - (Applicable to cloud storage) Set the
net.http.threadscustom parameter to4...8(default0which stands for reusing existing TCP threads). This allows agent to use multiple independent http threads when pushing data to the cloud. - (Applicable to Windows endpoints) Set the
Asynchronous disk I/OtoYes(defaultNo).
This allows OS to queue disk I/O requests on a very low level, resulting in faster processing and spending less I/O operations on every file.
- Set
-
Restart the Agents that have this updated profile assigned.