HACKER Q&A
📣 aminst

How do you tune your software configuration?


There are lots of configurations that one needs to set for a software system. Some affect the performance (e.g., batch size), and some are necessary for correctness (e.g., a reasonable timeout value). How do you set the configuration values in your software products? For instance, what happens if the workload changes and a higher batch size gives a higher throughput? Do you manually change the configurations or use third-party software to set it for you? I believe this is hard to do manually, but I'm unsure if an automatic solution exists to solve it.


  👤 az09mugen Accepted Answer ✓
Depends on a lot of things, - What is your input : a stream, files, a queue (rabbit, kafka,...)? - How often do you need to process your input? - Can you scale at will/need? - What is the max quantity of data per second you can recieve from your source? - What is the maximum rate of data your infrastructure can absorb in input?

Usually you try not to update your software config every 5 minutes. You find one that suits best your infrastructure.