Estimate deployment server performance
This topic can help you estimate how long it will take to download your apps to a set of clients. These are the key determining factors:
- The deployment server specs
- The phone home interval (that is, how frequently each client checks in with the deployment server for updates)
- The number of clients
- The total size of the apps
Deployment server provisioning
When provisioning a deployment server, note the following:
- If it will be deploying to more than 50 clients, the deployment server must run on a dedicated Splunk Enterprise instance. The instance cannot double as an indexer or search head.
- Do not host a distributed management console, which is essentially a search head, on a deployment server with more than 50 clients.
- Do not host a search head cluster deployer on a deployment server with more than 50 clients.
- If the deployment server has less than 50 clients, you can co-locate the deployment server on an indexer or search head, including a distributed management console.
- Because of high CPU and memory usage during the app download process, it is recommended that the instance reside on a dedicated host machine.
Time to deploy on Linux
The guidance here is based on testing done using the following set-up:
- A deployment server running on a dedicated bare metal 64-bit Linux system with 12GB RAM and 12 cores.
- Deployment across a high-speed LAN network. On higher latency networks, the time to deploy will be longer.
- A client phone home interval of 60 seconds.
- A set of apps totaling 50MB in size. This is considered a relatively large size to deploy, because in most situations you would deploy a set of apps only once, followed by incremental updates.
To estimate the total time it will take to deploy 50MB to all your clients (assuming the deployment server hardware discussed above), you can use this formula:
T = 0.0075 * C + 2
where T is the maximum time to deploy in minutes, and C is the number of deployment clients.
For example, it would take a maximum of 9.5 minutes to deploy 50MB of apps to 1000 clients.
Time to deploy on Windows
The guidance here is based on testing done using the following set-up:
- A deployment server running on a dedicated 64-bit Windows Server 2008 virtual machine, with 12GB RAM and 8 cores.
- Deployment across a high-speed LAN network. On higher latency networks, the time to deploy will be longer.
- A client phone home interval of 60 seconds.
- A set of apps totaling 50MB in size. This is considered a relatively large size to deploy, because in most situations you would deploy a set of apps only once, followed by incremental updates.
To estimate the total time it will take to deploy 50MB to all your clients (assuming the deployment server hardware discussed above), you can use this formula:
T = 0.04 * C + 8
where T is the maximum time to deploy in minutes, and C is the number of deployment clients. This formula is valid for deployments up to 3000 clients.
If you are deploying to more than 2000 clients, you might experience significantly improved performance by increasing the phone home interval to five minutes (300 seconds).
Improve performance by increasing the number of dedicated HTTP I/O threads
The dedicatedIoThreads
setting in server.conf
specifies the number of threads dedicated to handling HTTP I/O requests. You do not usually need to change this setting from its default of "auto".
However, for an instance running as a dedicated deployment server and servicing a large number of clients (>10,000), the best practice is to set dedicatedIoThreads
to a value of CPU cores/2, or CPU cores-1, in the case of a very active deployment server. For example, in the case of a deployment server with 8 CPU cores, set dedicatedIoThreads
to 4 or 7.
View app deployment status | Use forwarder management to manage apps |
This documentation applies to the following versions of Splunk® Enterprise: 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.1.6, 9.2.0, 9.2.1, 9.2.2, 9.2.3, 9.3.0, 9.3.1
Feedback submitted, thanks!