Wilton Ergon Posted December 15, 2021 Share Posted December 15, 2021 my infra serv bd 20 cores with 40 logical processors 128 ram ssd with 120 databases sql server 2019. lan adapter 1 GB full 5 servers for app, with 32 ram 8 cores disk ssd connections usinng sdac unigui 1.9.552 Everything was going well in the range of 1400 users, this end of the year we had a peak of users reaching 2700. With that started loss of connections, slow access, even with all servers with low cpu, disk, memory usage, I use just one site, where all users connect using the same address it seems to me that the hyperserver is still not well-optimized to receive a large load of users, even if you have an excellent infrastructure. I also use the bank server as an application server, but with only 5 nodes, and on the other servers there are 30 nodes. the hyperserver infrastructure has to be reviewed with great criteria and care, because from what I understand, reaching a very large number of users, eg 10k, does not depend only on the physical part as can be seen, I had no peaks in cpu usage that reached 100% 1 Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted December 15, 2021 Administrators Share Posted December 15, 2021 Hi, Can you also send the Transport tabs (For Master server and one of the slaves)? Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 15, 2021 Author Share Posted December 15, 2021 would it be this? transport server master Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted December 15, 2021 Administrators Share Posted December 15, 2021 More questions: 1) Do you have a continuous Timer on your app? If yes what is the interval? 2) Do you have a single Database server for all of the sessions? Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 15, 2021 Author Share Posted December 15, 2021 19 minutes ago, Farshad Mohajeri said: Mais perguntas: 1) Você tem um temporizador contínuo em seu aplicativo? Se sim, qual é o intervalo? 2) Você tem um único servidor de banco de dados para todas as sessões? no continuous timer. yes, only 1 server. on login, I identify the database, and direct the customer to its respective database. today my server has about 130 banks. with 120gb ram disk ssd, which has from 1gb to 18gb dedicated server with 2 processors, sql server standart 2019 limited a 80gb memory I frequently monitor the health of the databases, and my database server never uses 100% cpu or memory, I don't have time-consuming queries, I'm very careful about this I use timers, but in no form it is activated continuously, I always turn it off as soon as it runs. I always use it with these print settings, changing only the range property I haven't noticed any problem with the bank server being slow yet, when the problem occurred yesterday with users not being able to maintain the connection, the bank server had about 10% cpu usage, and with low disk usage as well. it would be very good for you to clarify for everyone, how the hyperserver works behind the scenes, when a user connects to the master server and is redirected to a slave server, from that moment on, all requests will always go through the master? the exchange of this information?, if it is necessary to put 20 slave machines, will the master server manage the entire computer park? how far does it work? Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 15, 2021 Author Share Posted December 15, 2021 I'm thinking about activating a sdac feature, which allows working with the disconnected database, that way it keeps open queries in cache, and closes the connection with the database, similar to what would happen if I used a rest api. this can help reduce the number of simultaneous connections to the database server, but for that I need to make some adjustments to the application, as this feature does not work using temporary tables created in sql server. but this is still far from reaching the limit of sql server connections that supports up to 32 thousand active connections... Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted December 16, 2021 Administrators Share Posted December 16, 2021 12 hours ago, wilton_rad said: I'm thinking about activating a sdac feature, which allows working with the disconnected database, that way it keeps open queries in cache, and closes the connection with the database, similar to what would happen if I used a rest api. this can help reduce the number of simultaneous connections to the database server, but for that I need to make some adjustments to the application, as this feature does not work using temporary tables created in sql server. but this is still far from reaching the limit of sql server connections that supports up to 32 thousand active connections... Have you enabled Pooling on your DB connections. Quote Link to comment Share on other sites More sharing options...
Stemon63 Posted December 16, 2021 Share Posted December 16, 2021 16 hours ago, wilton_rad said: it would be very good for you to clarify for everyone, how the hyperserver works behind the scenes, when a user connects to the master server and is redirected to a slave server, from that moment on, all requests will always go through the master? the exchange of this information?, if it is necessary to put 20 slave machines, will the master server manage the entire computer park? how far does it work? Yes, I also need to understand how full traffic is managed; if it's redirect to slave servers or if ALL go always throught the master (that bears all the load). Thanks Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 16, 2021 Author Share Posted December 16, 2021 4 hours ago, Farshad Mohajeri said: Você habilitou o Pooling em suas conexões de banco de dados. No Quote Link to comment Share on other sites More sharing options...
Ronbral Posted December 21, 2021 Share Posted December 21, 2021 Any advance here Wil? Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 21, 2021 Author Share Posted December 21, 2021 I turned on connection pooling, I'm now working with a database in disconnected mode, this greatly reduced the active connections with the database, even with more than 3000 users, it doesn't get 200 active connections. from what I realized the problem is not in the connection with the database, but with the initial load of the application, there has nothing to do with the database. the hyperserver doesn't seem to be able to handle this amount of simultaneous connections, see that at this moment with 3359 users, the bank servers are using low cpu Quote Link to comment Share on other sites More sharing options...
Abaksoft Posted December 21, 2021 Share Posted December 21, 2021 29 minutes ago, wilton_rad said: ativei o pooling na conexão, estou trabalhando agora com uma base de dados em modo desconectado, isso reduziu muito as conexões ativas com o banco, mesmo com mais de 3000 usuários, nao fica 200 conexões ativas. pelo que percebi o problema nao esta na conexao com o banco de dados, e sim com a carga inicial do aplicativo, ali nao tem nada a ver com banco de dados. o hyperserver parece que nao consegue lidar com essa quantidade de conexoes simultaneas, veja que nesse momento com 3359 usuarios, os servidores de banco esta com baixo uso de cpu And with Build 1556 ? Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 21, 2021 Author Share Posted December 21, 2021 Build 1552 Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted December 22, 2021 Administrators Share Posted December 22, 2021 Hello, Server Farm comes with three different operation modes. Pass Through Direct Url Redirect Mode 1) Pass Through (Implemented) In "Pass Through" mode all requests passes through the master HyperServer. This includes all file requests. Which means your master server can become quite busy when there is a momentary high load. In this mode each slave HyperServer instance communicates with its own Nodes privately. Slaves and related Nodes are isolated from the public access. It is the slowest mode, but the easiest for uniGUI developers to implement, manage and maintain. Mode 2) Direct (Not implemented) In this mode again all traffic is handled by the master HyperServer, but it will directly communicates with all Nodes from other HyperServer instances. This will improve performance, as the traffic are not relayed through the middle HyperServers. Mode 3) Url Redirect (Not implemented) In this mode each new session is redirected to one of the slave HyperServers. It will be done at URL level, so once the session is redirected, the master HyperServer will not handle the related traffic. For each slave HyperServer Node the traffic is handled directly by that HyperServer. This is the fastest operation mode, but this requires you to open all of your salves to the internet and assign them public URLs. 1 1 Quote Link to comment Share on other sites More sharing options...
Mohammed Nasman Posted December 22, 2021 Share Posted December 22, 2021 2 hours ago, Farshad Mohajeri said: Hello, Server Farm comes with three different operation modes. Pass Through Direct Url Redirect Mode 1) Pass Through (Implemented) In "Pass Through" mode all requests passes through the master HyperServer. This includes all file requests. Which means your master server can become quite busy when there is a momentary high load. In this mode each slave HyperServer instance communicates with its own Nodes privately. Slaves and related Nodes are isolated from the public access. It is the slowest mode, but the easiest for uniGUI developers to implement, manage and maintain. Mode 2) Direct (Not implemented) In this mode again all traffic is handled by the master HyperServer, but it will directly communicates with all Nodes from other HyperServer instances. This will improve performance, as the traffic are not relayed through the middle HyperServers. Mode 3) Url Redirect (Not implemented) In this mode each new session is redirected to one of the slave HyperServers. It will be done at URL level, so once the session is redirected, the master HyperServer will not handle the related traffic. For each slave HyperServer Node the traffic is handled directly by that HyperServer. This is the fastest operation mode, but this requires you to open all of your salves to the internet and assign them public URLs. Any time plan for mode 2 & 3? Also please update the roadmap.🙏 Quote Link to comment Share on other sites More sharing options...
Stemon63 Posted December 22, 2021 Share Posted December 22, 2021 Thanks Farshad. Mode 3 is required for heavy load applications. And I assume that the master Hyperserver can be on a server with few resources... Mode 2 (and 1) for standard installations with hidden servers. So Mode 3 will allow for a really high number of connections by scaling the number of servers, I think. Thanks. Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 23, 2021 Author Share Posted December 23, 2021 as they say here in my country, I'm in a tight spot, this end of the year I had a high load of connections, as I said, I did what I could at the application level, activating pooling, keeping the bank disconnected, and by far I have performance issues in the database. my problem is precisely in the part of the day (early) where simultaneous connections start, hundreds of users coming in at the same time, and the hyper server (master) cannot handle this demand, and many users cannot open the system, that is it doesn't even load the login screen, the connection to the bank is only made after entering the login data, so there is no problem in the database, after a few hours, where the peak of users has already reached about 3500, then it starts to normalize, in the already implemented mode, it is not serving me... what should i do in this case? this generates a huge complaint, as most users cannot access the system, as if the server had a problem... improve the performance of the master server can solve? have another machine dedicated only to the master server, as the current one is being shared with the bank server. but this is a machine with 2 processors with 40 cores, with the latest generation xeon processor, very fast ssd disks... I don't see difficulties in using mode 3, but I imagine that this redirect must be done with some passing of a parameter or token in the url, to prevent the user from connecting directly to a slave server, saving this url. ex: mysystem.mycompany.com.br mysystem_serv1.mycompany.com.br I would have the sites on each server and the master server would redirect based on loads... there would have to be a way to prevent the user from connecting directly using the url mysystem_serv1.mycompany.com.br dear Farshar, I saw that a new version of unigui was released with some new features, it would not be the case to complete what has already been started in relation to the hyperserver alternating between unigui changes and very complicated an implementation of a new feature starts, it is not finished, and it starts doing other things. remark: my expectation and to have at least about 50000 simultaneous users, I will need dozens of server then? Quote Link to comment Share on other sites More sharing options...
Abaksoft Posted December 23, 2021 Share Posted December 23, 2021 Hello, @Farshad and @Wilton, Why not working together this week, to see in live how you can improve the loadbalancing ? "From the discussion, the light shines". Wilton brings here an excellent true plat-form. 1 Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 23, 2021 Author Share Posted December 23, 2021 On 12/22/2021 at 5:04 AM, Farshad Mohajeri said: Hello, Server Farm comes with three different operation modes. Pass Through Direct Url Redirect Mode 1) Pass Through (Implemented) In "Pass Through" mode all requests passes through the master HyperServer. This includes all file requests. Which means your master server can become quite busy when there is a momentary high load. In this mode each slave HyperServer instance communicates with its own Nodes privately. Slaves and related Nodes are isolated from the public access. It is the slowest mode, but the easiest for uniGUI developers to implement, manage and maintain. Mode 2) Direct (Not implemented) In this mode again all traffic is handled by the master HyperServer, but it will directly communicates with all Nodes from other HyperServer instances. This will improve performance, as the traffic are not relayed through the middle HyperServers. Mode 3) Url Redirect (Not implemented) In this mode each new session is redirected to one of the slave HyperServers. It will be done at URL level, so once the session is redirected, the master HyperServer will not handle the related traffic. For each slave HyperServer Node the traffic is handled directly by that HyperServer. This is the fastest operation mode, but this requires you to open all of your salves to the internet and assign them public URLs. as I understand it, mode 3 would be the simplest for you and your team to create the resource in unigui, maybe if you had done a poll showing users how the hyperserver would work, what modes of operation it could have, and which mode it should be given priority, in my view mode 3 would certainly be elected as priority, as all developers look for performance, no matter if it's more complex to configure, as I imagine most users didn't even imagine the hyperserver could have other means of use. as it was never mentioned, at least I never saw anything about what you mentioned just now. 1 Quote Link to comment Share on other sites More sharing options...
Hayri ASLAN Posted December 23, 2021 Share Posted December 23, 2021 1 hour ago, wilton_rad said: as I understand it, mode 3 would be the simplest for you and your team to create the resource in unigui, maybe if you had done a poll showing users how the hyperserver would work, what modes of operation it could have, and which mode it should be given priority, in my view mode 3 would certainly be elected as priority, as all developers look for performance, no matter if it's more complex to configure, as I imagine most users didn't even imagine the hyperserver could have other means of use. as it was never mentioned, at least I never saw anything about what you mentioned just now. Hello We are currently working on Mode 3. We will publish it soon. 4 1 Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 23, 2021 Author Share Posted December 23, 2021 great news Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted December 28, 2021 Author Share Posted December 28, 2021 we look forward to this new feature; my customers are not using the system at this time. but they will come back with everything from January 3rd 1 Quote Link to comment Share on other sites More sharing options...
Franco Grech Posted December 29, 2021 Share Posted December 29, 2021 Oh come on guys. 😩 Use Apache reverse proxy with load balancing. https://duckduckgo.com/?q=apache+reverse+proxy+with+load+balance&t=newext&atb=v253-1&ia=web It works. Simple and usefully. Leave the Hyperserver as it is. The 3rd option what you prefer is a security nightmare! The uniGUI has more important issues which are still waiting to fix them. I don't want to link the thread where the subscribers complain about the quality of support. Quote Link to comment Share on other sites More sharing options...
adragan Posted January 3, 2022 Share Posted January 3, 2022 I know there is a way to configure the DNS to do some sort of round robin algoritm. That means that mysystem.mycompany.com.br would point to 2 or more external IP adresses. You coud configure 2 master hiperservers ( + all slaves and notes replicated ) to respond each on it's routable IP adress and split the load from the main master hiperserver. You could reconnect all session later at the DB level. It's a crises solution, not very nice and in the mean time either implement Apache revers proxi or wait for Fershad to work his magic. Quote Link to comment Share on other sites More sharing options...
Wilton Ergon Posted January 3, 2022 Author Share Posted January 3, 2022 On 29/12/2021 at 04:39, Franco Grech said: Oh vamos lá rapazes. 😩 Use o proxy reverso Apache com balanceamento de carga. https://duckduckgo.com/?q=apache+reverse+proxy+with+load+balance&t=newext&atb=v253-1&ia=web Funciona. Simples e útil. Deixe o Hyperserver como está. A 3ª opção que você prefere é um pesadelo de segurança ! O uniGUI tem problemas mais importantes que ainda estão esperando para corrigi-los. Não quero vincular o tópico em que os assinantes reclamam da qualidade do suporte . I already used nginx linux version to load balancer, but the balancing algorithm is not based on unigui open sessions, this caused some servers to be more overloaded than others and when a server was unavailable, it still tried to send the request to the same server, and it is likely that it has not been configured well. but what I realized is that the hyperserver balances more evenly, but in current mode, there is still an overhead when many users are connecting at the same time. what is the security issue in mode 3 being created? the unigui team could enlighten us about this. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.