Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Remote GLINK

Status
Not open for further replies.
Banned
Banned
Joined
Dec 17, 2011
Messages
470
Reaction score
245
Hi anyone knows how to setup the server in a way that you can have multiple glink servers on VPS to reduce ping?
 
Junior Spellweaver
Joined
May 18, 2014
Messages
151
Reaction score
57
Its useless. There's a lot of things that can have directly influence in ping size. What you should do, is buy a server in the same country of your players.Imagine this scenario:- Dedicated from USA;- Players from Netherlands;- VPS in Netherlands for glinkd;Your players will see a lower ping but internally (dedicated <-> VPS) you'll get a huge delay. Is good for security but only if both are on the same network. Like OVH with their VRack / Private Network. Butttttt if you have a lot of players, you'll need more process capacity than a VPS can support so you'll need to buy a new dedicated (wich will increase the monthly cost) and can be solved if you virtualize your server using ESXI, for example.
 
Upvote 0
Banned
Banned
Joined
Dec 17, 2011
Messages
470
Reaction score
245
Thank you all for replay!
w3bm4ster IDK what you mean by a lot of players:D but PW servers don't have more then 200 players online @ once in our days.

wanted587 I am waiting :D
 
Upvote 0
Junior Spellweaver
Joined
May 18, 2014
Messages
151
Reaction score
57
Thank you all for replay!
w3bm4ster IDK what you mean by a lot of players:D but PW servers don't have more then 200 players online @ once in our days.

wanted587 I am waiting :D

Bad expressed. Let's restart: Put glinkd in another server (in other location/network) is merely illustrative. Your players you'll see lower ping in login page but internally will have a huge delay and this separation will become useless. Put glinkd in another server (on same location/network) is good for security and will prevent login issues if you have more than 900+ players on the same glinkd.


In terms of perfomance =
900+ (for example) players online acessing the same glinkd in some moment a lot of them will not be able to connect. Put the glinkd in another server (same location/network) will fix the issue but will be more expensive, and unecessary. Is possible to keep this expense out if you virtualize the main server and enable other glinkds (29001, 29002, 29003, 29004, etc) as well is possible to keep just one link for users but redirect them to other links internally.

If you have only 200 players you'll not see this problems mentioned above (login issues). But you'll of course have problems with delay if you put the glinkd in a VPS (in other location/network): If you want reduce the ping you have to ways:


- Buy a server in your players country;
- Move to a Private Network;

 
Upvote 0
Newbie Spellweaver
Joined
Mar 22, 2014
Messages
70
Reaction score
7
i started with try and error , on 2 split server , glink will connect to main server gdelivery, but when i login it will be DC at entering PWI

any clue to fix it ?
my 2nd glink gamesys.conf ( i used glink 2 )
Code:
[GLinkServer1]
type            =    tcp
port            =    29000
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10503

[GLinkServer2]
type            =    tcp
port            =    29001
address            =    glink2-ip-address
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    300
halflogin_users    =    600
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10503

[GLinkServer3]
type            =    tcp
port            =    29002
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10503

[GLinkServer4]
type            =    tcp
port            =    29003
address            =    0.0.0.0
so_sndbuf        =    12288
so_rcvbuf        =    12288
ibuffermax        =    16384
obuffermax        =    65536
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    131072
max_users        =    3000
halflogin_users =    6000
sender_interval    =    200000
accumu_packets    =    32768
mtrace            =    /tmp/m_trace.link
compress        =    0
close_discard    =    1
urgency_support    =    1
version=10503

[GDeliveryClient]
type            =    tcp
port            =    29100
address            =    main-server-ip
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer1]
type            =    tcp
port            =    29301
address            =    0.0.0.0
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer2]
type            =    tcp
port            =    29302
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer3]
type            =    tcp
port            =    29303
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GProviderServer4]
type            =    tcp
port            =    29304
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
accumulate        =    268435456

[GFactionClient]
type            =    tcp
port            =    29500
address            =    main-server-ip
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
tcp_nodelay        =    0
accumulate        =    268435456

[LogclientClient]
type            =    udp
port            =    11100
address            =    main-server-ip
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    65536
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    main-server-ip
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    65536
obuffermax        =    1048576
accumulate        =    1048576

[ThreadPool]
threads            =    (1,3)(100,1)(101,1)(0,1)
max_queuesize    =    1048576
prior_strict    =    1
my main gdeliveryd gamesys.conf

Code:
[LogclientClient]
type            =    udp
port            =    11100
address            =    0.0.0.0
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    0.0.0.0
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[Intervals]
;set accounting interval,unit is second
account_interval    =    600
;set delrole interval,unit is second
delrole_interval    =    60
;set check forbidlogin user's map interval,unit is second
checkforbidlogin_interval = 60

[GDeliveryServer]
zoneid=199
aid=10
freeaid=1
zondname        =    zone1
max_player_num    =    6000
type            =    tcp
port            =    29100
address            =    0.0.0.0
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
listen_backlog        =    10
accumulate        =    1048576
mtrace            =    /tmp/m_trace.link
pvp=0
battlefield=0
sellpoint        =0
freecreatime        =        0
max_name_len            =     32
table_name              =     rolename.txt
name_charset            =     ASCII
;table_charset           =     UCS2
table_charset=GBK
district_id=districtzone
recalloldplayer=1
token_login_support    =    true
lan_ip_list=124.193.167.1,118.114.253.16,119.153.48.1,211.157.164.1,221.237.152.224
is_central_ds=false
max_login_wait_num=2000
forbid_cross=0

[GAuthClient]
type            =    tcp
port            =    29200
address            =    172.16.2.76
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    131072
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    131072
isec            =    2
iseckey            =    n1hxpxztozyxnsvk6RaycpmrCnrdds
osec            =    2
oseckey            =    rdppjtaki1MxoHnsnaltiiwfjszs9l
shared_key        =    4khdwAAcjrg0eqfzazqcemdpgulnje
au_cert         =     false

[GProviderServer]
id                =    0
type            =    tcp
port            =    29300
address            =    0.0.0.0
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast        =    1
tcp_nodelay        =    0
accumulate        =    268435456

[UniqueNameClient]
type            =    tcp
port            =    29401
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456
isec            =    2
iseckey            =    hgzmbmeyrQaivu2pTikcp1svqcueef
osec            =    2
oseckey            =    7mlyiidbm0kntvhRgjhjzdczDtbhnh

[GameDBClient]
type            =    tcp
port            =    29400
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast        =    1
tcp_nodelay        =    0
accumulate        =    268435456

[GAntiCheatClient]
type            =    tcp
port            =    29702
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456

[GFactionClient]
type            =    tcp
port            =    29500
address            =    0.0.0.0
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1638400
obuffermax        =    1638400
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456

[ThreadPool]
threads            =    (1,3)(100,1)(101,1)(0,1)
max_queuesize    =    1048576
prior_strict    =    1

[BattleBonus]
id = 36907
countoflevel1 = 3
countoflevel2 = 4
countoflevel3 = 6
maxcount = 50000
proctype = 0
specialid = 28350
countofspecial = 1
specialproctype = 0
maxcountofspecial = 999

[GWebTradeClient]
ibuffermax=1638400
obuffermax=1638400
type=tcp
port=29209
address=180.235.64.132
so_sndbuf=16384
so_rcvbuf=16384
tcp_nodelay=0
accumulate=268435456
isec=2
iseckey=ed3aL0iigypkvjjtclniqwomuWmajguk
osec=2
oseckey=taaprYnuYabhjgrvwa89dhhecgkwifjd

[ConsumeReward]
open = 1
begin_time = 2013-12-11-12
end_time = 2013-12-25-0
reward_type = (5000,1000)(10000,2000)(20000,4000)(50000,10000)(100000,20000)(500000,100000)
reward_time = (1,1)

[GameTalkClient]
type = tcp
port = GAMETALKCLIENTPORT
address = GAMETALKCLIENTADDRESS
so_sndbuf = 16384
so_rcvbuf = 16384
ibuffermax = 1638400
obuffermax = 1638400
tcp_nodelay = 0
accumulate = 268435456
isec=2
iseckey=E5nawckJbyjjg8ehwselue9llxjkmrso
osec=2
oseckey=xobBkvxnulzwn8eeAzdf8srgthutwqoG

[SNSClient]
type = tcp
port = SNSCLIENTPORT
address = SNSCLIENTADDRESS
so_sndbuf = 16384
so_rcvbuf = 16384
ibuffermax = 1638400
obuffermax = 1638400
tcp_nodelay = 0
accumulate = 268435456

[COUNTRYBATTLE]
occupation0 = 1.05;0.4;1.4;1.2;0;1.2
occupation1 = 1;0.4;1;1;0;1
occupation2 = 1;0.4;1;1;0;1
occupation3 = 1.1;0.4;1.2;1.2;0;1.2
occupation4 = 1.1;0.4;1.5;1.2;0;1.2
occupation5 = 1;0.4;1;1;0;1
occupation6 = 1;0.4;1;1;0;1
occupation7 = 1.05;0.4;1.5;1.1;0;1.1
occupation8 = 1.1;0.4;1.2;1;0;1.2
occupation9 = 1.05;0.4;1.2;1.2;0;1.2
score_limit = 0.3
win_count_limit = 1
death_count_limit = 5
total_bonus = 85000
is_countrybattle_open = 1
combat_time_limit = 300
contribute_val_limit = 10
kingelection_open=0
open_day=0,5
occupation10=1.1;0.4;1.1;1.1;0;1.1
occupation11=1.1;0.4;1.1;1.1;0;1.1

[CentralDeliveryServer]
type = tcp
port = 29101
address = 0.0.0.0
so_sndbuf = 16384
so_rcvbuf = 16384
ibuffermax = 1048576
obuffermax = 1048576
tcp_nodelay = 0
listen_backlog = 10
accumulate = 268435456
isec = 2
iseckey = z4V8NNoe9WLLpszLgbfRG4QYlcxYA1HX
osec = 2
oseckey = VsVx38B2UdBat0JyZMftEViQXDClu98g
accepted_zone_list = DS_ZONE_LIST

[CentralDeliveryClient]
type = tcp
port = 29101
address = CENTRAL_DS_ADDRSS
so_sndbuf = 16384
so_rcvbuf = 16384
ibuffermax = 1048576
obuffermax = 1048576
tcp_nodelay = 0
accumulate = 268435456
isec = 2
iseckey = VsVx38B2UdBat0JyZMftEViQXDClu98g
osec = 2
oseckey = z4V8NNoe9WLLpszLgbfRG4QYlcxYA1HX

[TANKBATTLE]
is_tankbattle_open = 0
open_day = 2,4
start_time = 19:00
end_time = 20:00
min_time = 20
max_time = 30
no_new_battle_time = 15
cant_enter_time = 2
max_player = 100
bonus_item_id = 41074
bonus_proctype = 16403
bonus_max_count = 10000
bonus_count = (1,50)(2,25)(3,20)(4,18)(5,16)(6,14)(7,13)(8,12)(9,11)(10,10)(20,9)(30,8)(40,7)(50,6)(100,5)(200,4)(1000,2)(99999999,1)

[FACTIONRESOURCEBATTLE]
is_factionresourcebattle_open    =    1
open_day    =    3,4
start_time    =    20:00
end_time    =    21:00
bonus_item_id    =    43573
bonus_proctype    =    16403
bonus_max_count    =    2000

[MNFBATTLE]
apply_begin_time    =    [4]12:00:00
apply_end_time    =    [4]24:00:00
cross_begin_time    =    [6]19:30:00
battle_begin_time    =    [6]20:00:00
battle_end_time    =    [6]22:00:00
credit_a    =    40
credit_b    =    10
credit_c    =    10
domain_count_lvl1    =    5
domain_count_lvl2    =    9
domain_count_lvl3    =    12
max_apply_faction_num    =    2
bonus_item_a    =    48097:4:999:16403
bonus_item_b    =    48097:1:999:16403
bonus_item_c    =    48097:1:999:16403
bonus_item_master    =    28350:3:999:0
is_mnfbattle_open    =    1


my gfaction gamesys.conf on main server

Code:
[LogclientClient]
type            =    udp
port            =    11100
address            =    0.0.0.0
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[LogclientTcpClient]
type            =    tcp
port            =    11101
address            =    0.0.0.0
so_sndbuf        =    16384
so_rcvbuf        =    16384
ibuffermax        =    16384
obuffermax        =    1048576
accumulate        =    1048576

[GFactionServer]
type            =    tcp
port            =    29500
address            =    0.0.0.0
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
tcp_nodelay        =    0
listen_backlog    =    10
accumulate        =    1048576
sender_interval    =    100000
accumu_packets    =    4000
mtrace            =    /tmp/m_trace.link
table_name              =       filters
table_charset           =       GB2312
name_charset=GBK
is_central_faction=false

[GProviderServer]
id                =    101
type            =    tcp
port            =    29600
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    1048576
;isec            =    2
;iseckey        =    123
;osec            =    2
;oseckey        =    456

[UniqueNameClient]
type            =    tcp
port            =    29401
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    268435456
;isec            =    2
;iseckey            =    hgzmbmeyrQaivu2pTikcp1svqcueef
;osec            =    2
;oseckey            =    7mlyiidbm0kntvhRgjhjzdczDtbhnh

[GFactionDBClient]
type            =    tcp
port            =    29400
address            =    127.0.0.1
so_sndbuf        =    65536
so_rcvbuf        =    65536
ibuffermax        =    1048576
obuffermax        =    1048576
;so_broadcast    =    1
tcp_nodelay        =    0
accumulate        =    1048576
;isec            =    2
;iseckey        =    123
;osec            =    2
;oseckey        =    456

[ThreadPool]
threads            =    (0,1)(1,4)(100,1)(101,1)
max_queuesize    =    1048576
prior_strict    =    0
 
Upvote 1
Junior Spellweaver
Joined
May 18, 2014
Messages
151
Reaction score
57

You need to setup gmserver.conf. And don't let your IP's as 0.0.0.0 you can use internal IP address if your host provide that or use a container.

And as well, don't let you glinkd with IP 0.0.0.0 because if you add multiple glinkds on serverlist (even with different ports) all players will go to por 29000, so in that case you can use port foward for basic redirect or network bound (round robin) for a more robust solution.
 
Upvote 0
Newbie Spellweaver
Joined
Mar 22, 2014
Messages
70
Reaction score
7
one disadvantage of try and error is that possiable you forgot what you done that work!
i changed some thing in gmserver.conf and successfully loged in game , but next time not :| , still cant
can you help me more clear what i should do with gmserver.conf QQ , i'm really tired cuz about 4 hr i'm on it
 
Upvote 0
Skilled Illusionist
Joined
Dec 21, 2011
Messages
335
Reaction score
12
What's the point of using remote glinkd? It increases lag and delay between the user and server. That fake low ping causes lots of disconnections. Getting a good dedicated server with anti-DDoS with good firewall settings is best.
 
Upvote 0
Newbie Spellweaver
Joined
Mar 22, 2014
Messages
70
Reaction score
7
What's the point of using remote glinkd? It increases lag and delay between the user and server. That fake low ping causes lots of disconnections. Getting a good dedicated server with anti-DDoS with good firewall settings is best.

intranet in my country is much cheaper than internet :| we pay alot for gigs of internet :(
i want to set one glink on a intranet VPS
 
Upvote 0
Status
Not open for further replies.
Back
Top