Channels and Limit Player
#21

so, lets see.

 

 

basicly, as you all know, when you put 2 gs to 1 connector, this one crashes.... so what i did? put more than 1 connector!

 

 

 

so, i will make an example with 5 chanels.

 

 

if we want 5 channels, we will need:

 

loginserver=1

messenger=1

helper=1

connectors=5

gameserver=5

 

 

so, each connector and each gameserver must have different ports and different maxsubserver, but same databases, helper.

 

so, see the config of the 5 connectors:

 

connector 1:

 

[server]
Number=1
MaxSubServer=1
IP=MY_LOCAL_IP
Port=4006

 

connector 2:

 

[server]
Number=1
MaxSubServer=2
IP=MY_LOCAL_IP
Port=6006

 

connector 3:

 

 

[server]
Number=1
MaxSubServer=3
IP=MY_LOCAL_IP
Port=7006

 

connector 4:

 

 

[server]
Number=1
MaxSubServer=4
IP=MY_LOCAL_IP
Port=8006

 

 

connector 5:

 

[server]
Number=1
MaxSubServer=5
IP=MY_LOCAL_IP
Port=9006

 

 

 

that is for the connectors parts, now lets make the same with the gameservers:

 

 

gameserver 1:

 

[server]
Number=1
SubNumber=1
IP=MY_LOCAL_IP
Port=4110
AllowExternalIP=TRUE

.........

[Connector Server]
IP=MY_LOCAL_IP
Port=4006

 

gameserver 2:

 

[server]
Number=1
SubNumber=2
IP=MY_LOCAL_IP
Port=6110
AllowExternalIP=TRUE

.........

[Connector Server]
IP=MY_LOCAL_IP
Port=6006

 

gameserver 3:

 

[server]
Number=1
SubNumber=3
IP=MY_LOCAL_IP
Port=7110
AllowExternalIP=TRUE

.........

[Connector Server]
IP=MY_LOCAL_IP
Port=7006

 

gameserver 4:

 

[server]
Number=1
SubNumber=2
IP=MY_LOCAL_IP
Port=8110
AllowExternalIP=TRUE

.........

[Connector Server]
IP=MY_LOCAL_IP
Port=8006

 

gameserver 5:

 

[server]
Number=1
SubNumber=5
IP=MY_LOCAL_IP
Port=9110
AllowExternalIP=TRUE

.........

[Connector Server]
IP=MY_LOCAL_IP
Port=9006

 

 

 

 

great, now we got 5 gameservers and 5 login servers.

 

 

now, we have to config our loginserver:

 

[Connector_0]
Number=1
MaxSubNumber=5
IP=MY_LOCAL_IP
Port=9006

[Connector_1]
Number=1
MaxSubNumber=4
IP=MY_LOCAL_IP
Port=8006

[Connector_2]
Number=1
MaxSubNumber=3
IP=MY_LOCAL_IP
Port=7006

[Connector_3]
Number=1
MaxSubNumber=2
IP=MY_LOCAL_IP
Port=6006

[Connector_4]
Number=1
MaxSubNumber=1
IP=MY_LOCAL_IP
Port=4006

 

 

if in the loginserver you change the order from what i put, it will go into maintenance. must be a descresendo order of maxsubnumber.

 

sadly, the onlything that doesnt work here, is the gametime. but i think it can mabe fixed using the t_lc_time, and adding more servers in that database, i havent tested yet.

 

 

 

ask if you didnt understood something.

#22
Yeah it works but it also displays an extra subserver per entry with maintenance now?

#23

megachomba it working.. and the subservers have all status "maintenance".

then i have a new problem Big Grin my connector(1) is crashed all 10-20 minutes when i run it -.-

#24
All those extra servers saying Maintenance looks terrible :/ gotta be a better way

#25

yes, sadly, i cant remove those extra subchannels. but its the unique way for add subchannels known up to now.

 

 

if ALL subservers are in maintenance, means you didnt put the right order of connectors.

#26

look in LoginServer> newStobm

 

Change

 

 

[Connector Server]

Count=1 Change to 5

 

 

but t_lc_time dont work... and bug items!!

#27
is there any way to remove the player limit who can connect?

#28

What about the memory management, I think this depends on how the application was developed, creating a thread for every connection, and in that thread uses some memory that was allocated a stack size(lets say up to 1 mega), 30,000 would mean 1 mega *30.000, approx 30 Giga of ram. 

On 64Bit machines use 4M stack size.

Bitness Stack Size Max threads
32-bit 64K 32,073
32-bit 128K 20,549
32-bit 256K 11,216
64-bit 64K stack too small
64-bit 128K 32,072
64-bit 512K 32,072

This means if a 32Bit machine with 64k stack size can cost ram 64k*32,073=1.95G RAM, the last example for the 64Bit systems uses 16G or RAM.

 

The more threads you have the more slower it gets. This only depends on the application, how it has its memory organized.

 

Thread Size:

2

 

 

 

On a saturday night when there are about 2k players online at eternia it already uses 16gb of ram.

And thats devided amongst 6 channels.

 

Thats 8 mb each player

So with 30k players that would be 240 gb of ram.

And with lastchaos not being resource friendly at all,

i think to have 30k players in 1 channel u will need something else then the basic VPS hosts u can get Tongue

#29

The crash on the subserver in a function that is in the connector

for(int i = 0; i for(int j = 0; j < max_players; i++){
userid = players[i][j];
if((user_id*) > 0){ //crash is here
// do player status
//or somewhere here
}
}

This crash is in 3 functions in the connector).

 

Same for the player Crash

#30

To put even more subserver public that you have a connector, the connector simply copy and rename it to connector 2 and poneis maxsubserver = 2, then you copy the gameserver and gameserver renombrais to poneis maxsubserver 2 and = 2, gameserver configurations deveis set to count only 14 zones and put the zone 15 which is only in the gameserver2 eghea but your connector will fall, if anyone has any questions, I'll make a guide for you to understand better.

 

Thanks for your information Blankname



Forum Jump:


Users browsing this thread: 1 Guest(s)