arriven / db1000n

MIT License
1.18k stars 208 forks source link

Scale up db1000n automatically in order to utilize all available system resources #549

Open kirealll opened 2 years ago

kirealll commented 2 years ago

It would be good if you introduce the ability to scale up db1000n (increase scale parameter) automatically in order to utilize all available system resources or up to the predefined limit. Similar logic is already implemented in DB1000NX100. It scales up step by step measuring the average CPU and memory usage until it reaches the predefined limits.

db1000n is used on many virtual machines, but by default, it utilizes limited resources. Let's utilize all our resources more efficiently and make our attacks more powerful.

The application should restart the scale-up after each target update because different sets of targets require different amount of system resources.

roman-kruglov commented 2 years ago

I proposed something similar in https://github.com/arriven/db1000n/issues/501. Great to hear some similar logic is already implemented somewhere for a reference! I'll surely take a look how it's done there, hope it could be introduced here too.

arriven commented 2 years ago

the main reason I haven't added this feature to the main codebase is because making a general-purpose scaling has a completely different set of problems (the most obvious one being that you need to scale not only based on CPU but also on your network bandwidth). It requires a lot tighter integration with the host os making it less portable (db1000nX100 solves that by using docker/vm where the system variability is very limited). I'd like to keep the core attack functionality separate from the resource management so the easiest solution would probably be to add this functionality to an external runner and I'll probably end up adding that functionality to https://github.com/arriven/db1000n-updater which I created to handle automatic code updates but it's better to re-purpose it for a general db1000n management. I'm not sure how soon I'll be able to get to that task but that's the current plan