Answer the question
In order to leave comments, you need to log in
Server configuration for a high-load project
Hello!
We plan to launch a project with an estimated peak load of 30,000 people online.
The main load will be related to page generation and database access. We use CakePHP and MySQL.
In this regard, several questions arose:
1. How many servers are needed and what should be the purpose of each?
2. Where is the best place to rent/accommodate?
3. What tools to use to monitor the load?
4. What tools to use for stress testing?
Answer the question
In order to leave comments, you need to log in
> 1. How many servers do you need and what purpose should each have?
30 thousand - one server.
> 2. Where is the best place to rent/accommodate?
Oversun, Selectel, RosNIIROS in Kurchatnik, which is KIAEHOUSE
> 3. What tools should be used to monitor the load?
cacti, mrtg, own bash scripts if one server. For a large quantity, I would choose Zenoss, because. I prefer Python
> 4. What tools should I use for stress testing?
JMeter/Selenium, depends on tasks.
There is no "30 thousand online" if it's not a game. And even if it's a game, it's still more correct to talk about the number of requests per second.
1. The number of servers is determined by the project architecture + required request flows. 30 hits per day is nonsense, one server per eye.
2. Placement also depends on the requirements of the project. But if these are website pages, then it’s more profitable to take over the hill, the configurations are more powerful, they cost less than in our DCs. I take it to Hetzner via fastvds.
4. httperf
1. 30K people at the same time? one server is unlikely to pull, most likely you will have to build a classic cluster: frontends for balancing -> backends for processing < - db and caching
servers .
2. closer to the main audience
4. anyway, live traffic will determine the real problems of the architecture, start slowly
I'm afraid that you will have to refuse MYSQL. look for InMemory DB like Mongo
1. No one will tell you this figure without preliminary load testing of your specific application, and if they do, it will be a deliberate lie.
2. Depends on where your target audience is, what your budget is, what the load will be.
3. It makes sense to choose after it becomes clear that you need according to item 1, for a start, you can get by with some munin or cacti.
4. For example JMeter, by preparing tests that will be close to the expected load, but the real testing will actually begin when users appear, because. predictions often do not come true.
It seems to me that you should not immediately build a cluster and expect that this will be enough for you forever, you need to think over the application architecture, which will allow you to scale as uselessly as possible in the future, and start with minimal resources. And then, as the load increases, it will be clear where the bottleneck is and what needs to be added. There are not many users at once.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question