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 threads
to12
(default value is4
). This will help an Agent to access more files at the same time. - Add the
fs_prefer_sequential_indexing
custom 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_downloads
custom 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_downloads
custom parameter to2000
(default1000
). This increases global Agent-scale limit of simultaneous files delivery - (Applicable to cloud storage) Set the
net.http.threads
custom parameter to4
...8
(default0
which 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/O
toYes
(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.