Ibvpn also allows users to manually select the server to connect in addition to assigning automatically the quickest server for connection.
For most commercial VPN providers, they won't let user select each node manually because if a node is too full, it may degrade the speed of all the current users in that node further. If a bus is already too , u don't want more passengers barging in. E.g. tunnelbear only assigns a node based on geolocation. I think they just use a simple highest speed criterion for the allocation for each region. Their allocation and connection is instantaneous unlike ibvpn's waiting for least 30second.
Since I am not ibvpn, I wouldn't know why it takes so long to assign the quickest server for a connection. My best guess is that they just query the entire list of server for the highest connection in real time and when they only have 20 server on the list, it is quick. But when their list grows to 175, the query takes 30s to run. Obviously they couldn't find a way around this slow connection problem. In my opinion, that is an unacceptable waiting time because if they grow to 1000 server, the auto connection time will be 2minute.
So the big question is whether u should list every VPN node config for users to choose manually. This is normal for only small vpn business because each region wouldn't have more than 20 servers and so users can eyeball the fastest one to join.
Ideally and if it is possible to query dynamically and in real time without delay , user should only be shown the quickest vpn node for each country.
The best scenario, a VPN operator should be given warning if all the servers become slow and it is time to spin up new VPN nodes to cope with more traffic.
I personally use terraform and docker to spin up each node on the cloud and the bottleneck of setting up the node is the manual product input using whmcs GUI.
If you want to discuss more in details, feel free to contact me in telegram @Superjedi.