Currently, the default setting for the --rpc_num_service_threads flag is hard-coded (even if the default value is customized differently for kudu-master and kudu-tserver processes). That requires manual customization of the flag if deploying Kudu servers on a powerful servers having more than 20 CPU cores to efficiently utilize the available hardware.
It would be great to add the functionality to automatically customize the setting for the flag based on the number of available CPU cores at the node where the Kudu server is running. With the auto-tuning of the --rpc_num_service_threads flag, Kudu servers will automatically scale their RPC thread pools.
Also, there should be a way to turn on/off the auto-scaling of the RPC thread pools: there should be a new flag to control that. Essentially, the logic might be the following:
- if the --rpc_num_service_threads explicitly set, disable the auto-tuning of the --rpc_num_service_threads flag
- if the --rpc_num_service_threads isn't explicitly set, enable or disable the auto-scaling of the RPC thread pools in accordance with the new flag's setting