SERVERS
using a dual quad core with 8gb ram now :P
hostforweb is our host, they seem to have a very fast connection, we have used 3 different host and they are the fastest so far
(120 users online with no problem)
As you might have already read we moved to a new server generation equipped with AMD Athlon 64 X2 5600+ cpus, accompanied by 4 GB DDR 2 RAM per core and connected at an overall bandwidth of smashing 62 GBit. YAY!
Original from BasTijs
I am also running my game on a 3ghz 1gig ram server from strato. Nice cheap and I dont need more because I only run a portal site + alpha version of the game. They had a special offer, 3 months for 1 euro a month, after that around 30 euro a month. Its a 6 months contract so after that I could switch to something better but currently my cpu didnt go above 0.05-0.10 :)
What kind of hardware runs your S1 (btw very involving game ;) ) ? I just bought my own quad with 8GB ram, so I want to make some calculations how much it can handle.
Another company based in Germany that might be worth having a look at is Hetzner. As far as I know most of their correspondance is still in German, but Google helped me find out that it's actually possible to use their services without speaking any German.
Original from nucas
Original from BasTijs
I am also running my game on a 3ghz 1gig ram server from strato. Nice cheap and I dont need more because I only run a portal site + alpha version of the game. They had a special offer, 3 months for 1 euro a month, after that around 30 euro a month. Its a 6 months contract so after that I could switch to something better but currently my cpu didnt go above 0.05-0.10 :)
What kind of hardware runs your S1 (btw very involving game ;) ) ? I just bought my own quad with 8GB ram, so I want to make some calculations how much it can handle.
I got a dedicated server from i3d.nl/i3d.net. Quadcore with 2gig, currently around 20-25% cpu with 150 people ingame an about 50 on the main site. I still have alot of optimizing to do, so it can probably do much better.
Original from BasTijs
Original from nucas
Original from BasTijs
I am also running my game on a 3ghz 1gig ram server from strato. Nice cheap and I dont need more because I only run a portal site + alpha version of the game. They had a special offer, 3 months for 1 euro a month, after that around 30 euro a month. Its a 6 months contract so after that I could switch to something better but currently my cpu didnt go above 0.05-0.10 :)
What kind of hardware runs your S1 (btw very involving game ;) ) ? I just bought my own quad with 8GB ram, so I want to make some calculations how much it can handle.
I got a dedicated server from i3d.nl/i3d.net. Quadcore with 2gig, currently around 20-25% cpu with 150 people ingame an about 50 on the main site. I still have alot of optimizing to do, so it can probably do much better.
With a little more optimizing you should easily reach 5k + x active users per server. You might need to upgrade the RAM though.
On the comminity site 5k would not be a problem but the game is much more heavy on mysql queries, takes me about 50 qeuries to load the interface + do all checks for updating the village/warehouse/attacks etc...any tips on how to lower mysql cpu?
Original from BasTijs
On the comminity site 5k would not be a problem but the game is much more heavy on mysql queries, takes me about 50 qeuries to load the interface + do all checks for updating the village/warehouse/attacks etc...any tips on how to lower mysql cpu?
I think that number of queries for mysql is not the issue, but table joins especially large tables loads mysql.
In our game (about 200-400 users online) we reduced cpu load by moving all instant calculations to cron-jobs. We have cron-job running every 1 minute and proccessing user actions. And these precalculated actions user can "see" after action end-time.
Btw currently game is running on Pentium D with 3GB ram.
I mainly use selects (80-90%), and have 3 large table. The users, the villages and the map (with is 12mb), all other tables are small. The map is used alot so maybe it is causing the cpu load. If I use the "free" command I still have 1.5GB left with 150 people online so maybe I can use more memory and less cpu? I only have myisam tables.
Here is a "top" output, mysql using 63% out of 400% cpu:
top - 22:13:22 up 16 days, 2:13, 1 user, load average: 0.82, 0.80, 0.81
Tasks: 197 total, 2 running, 195 sleeping, 0 stopped, 0 zombie
Cpu(s): 15.8%us, 2.0%sy, 0.0%ni, 82.1%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 2073788k total, 1896848k used, 176940k free, 182472k buffers
Swap: 2031608k total, 6180k used, 2025428k free, 1062124k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8197 mysql 20 0 274m 79m 4864 S 63 3.9 1514:43 mysqld
8768 apache 20 0 43840 20m 4740 S 3 1.0 0:07.97 httpd
9291 apache 20 0 43316 19m 4340 S 2 1.0 0:05.98 httpd
9347 apache 20 0 44944 21m 4384 S 2 1.1 0:04.68 httpd
9345 apache 20 0 43876 20m 4272 S 1 1.0 0:04.45 httpd
Original from BasTijs
I mainly use selects (80-90%), and have 3 large table. The users, the villages and the map (with is 12mb), all other tables are small. The map is used alot so maybe it is causing the cpu load. If I use the "free" command I still have 1.5GB left with 150 people online so maybe I can use more memory and less cpu? I only have myisam tables.
Here is a "top" output, mysql using 63% out of 400% cpu:
top - 22:13:22 up 16 days, 2:13, 1 user, load average: 0.82, 0.80, 0.81
Tasks: 197 total, 2 running, 195 sleeping, 0 stopped, 0 zombie
Cpu(s): 15.8%us, 2.0%sy, 0.0%ni, 82.1%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 2073788k total, 1896848k used, 176940k free, 182472k buffers
Swap: 2031608k total, 6180k used, 2025428k free, 1062124k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8197 mysql 20 0 274m 79m 4864 S 63 3.9 1514:43 mysqld
8768 apache 20 0 43840 20m 4740 S 3 1.0 0:07.97 httpd
9291 apache 20 0 43316 19m 4340 S 2 1.0 0:05.98 httpd
9347 apache 20 0 44944 21m 4384 S 2 1.1 0:04.68 httpd
9345 apache 20 0 43876 20m 4272 S 1 1.0 0:04.45 httpd
I am not system administrator, but I'll give some thoughts from my personal experience.
Your load is ~0.80, and it is very low load. I think server can normal perform then load "peeks" up to 10. It would be bad if it be 70 or more.
The column %CPU shows stats at given moment. And if you have quad core CPU, this column can show you up to 400% :D I was shocked then first time saw 198% on my Pentium D :)
Yes I know it can go up to 400% but I find 63% high with 150 people online, cpu seems to be limiting the max amount of users online not RAM. I will try to find some info on how to reduce mysql cpu, maybe some simple rules to follow while coding...what to do and what not to do.
Original from BasTijs
On the comminity site 5k would not be a problem but the game is much more heavy on mysql queries, takes me about 50 qeuries to load the interface + do all checks for updating the village/warehouse/attacks etc...any tips on how to lower mysql cpu?
The games I know are trying to work around an average of 15 queries per page. This will help to get a lot more players on one server. Maybe think about getting rid of some features (or at least don't show them on every page).
Also try to compress your files (especially graphics) in a different way. I am not a pro in developing games, but I sure know the big players are easily fitting 5-10k users on one server.
Original from BasTijs
Yes I know it can go up to 400% but I find 63% high with 150 people online, cpu seems to be limiting the max amount of users online not RAM. I will try to find some info on how to reduce mysql cpu, maybe some simple rules to follow while coding...what to do and what not to do.
I believe that momentum CPU usage is not a problem at all. As I posted earlier, I think that your load average is insignificant ~0.8 . Thats the only thing I would care about. As for RAM I would recommend to try nginx instead of apache.
Original from docjay
I am not a pro in developing games, but I sure know the big players are easily fitting 5-10k users on one server.
I think you mean total users? Not active at the same moment? Because games like travian have 20k players on a server, with 700-1200 online.
I have 6 dedicated servers, for my biggest game i have 2 (1 httpd, images & email) and the other is for the database. both are Quad Core's with 4GB RAM.
+- 43.000 registered players, daily +- 2000 online.
+- 200 SQL querys per second
httpd server load: Load Averages 0.13 0.16 0.17
SQL server load: Load Averages 0.75 0.84 1.05
The other servers are for backups, other little games, new upcoming games and a few little websites :)
After optimizing for a few weeks I brought down cpu from 30% (overall, so 4 times 30%) with 150 people online at the same time, to about 7% cpu. So its worth it :)
I guess cpu is not the limited factor anymore, lets see what I can optimize next :)
Glad you're winning the battle against the hardware load ;)
Does anyone have experience with a static server? Example:
All images & CSS files @ http://static.bulletstar.cc (other server, than the real 'game-server(s)').
I have no experience so far. But we think about using diferent server for static data, because:
1. Easier to maintain and update, if you are runing several game servers.
2. Game servers have less load & traffic.
Im running with a static domain, but currently still hosting on the same server. Could easily change it if necessary. Just make an if statement in the config file and set a different mysql host if people come from s1.host.com or s2.host.com etc..
Original from BasTijs
Nice :).Im running with a static domain, but currently still hosting on the same server. Could easily change it if necessary. Just make an if statement in the config file and set a different mysql host if people come from s1.host.com or s2.host.com etc..
Are there any people here who have an hardware firewall? :p
Original from BasTijs
On the comminity site 5k would not be a problem but the game is much more heavy on mysql queries, takes me about 50 qeuries to load the interface + do all checks for updating the village/warehouse/attacks etc...any tips on how to lower mysql cpu?
hi,
I was thinking of using stored procedures... maybe you could use that as well... In that case, you will make only one mysql connection, and run all the queries from that one...