[Question] Running 2 GS on 1 Shard and 1Agent Srv on same IP and same machine
Discussion on [Question] Running 2 GS on 1 Shard and 1Agent Srv on same IP and same machine within the SRO Coding Corner forum part of the Silkroad Online category.
[Question] Running 2 GS on 1 Shard and 1Agent Srv on same IP and same machine
Hello everyone! We have a small non-bot server that we've been supporting for the last 7 years. The server is based on BRFiles and is limited to 10D, so we're running only one Game Server, one Shard Server, and one Agent Server. We've optimized the server to handle up to 48,000 objects, but after 1-2 weeks of continuous operation without a restart, the object count rises to 49,000, causing some regions to start lagging. This happens faster when events like winter, Halloween, or Easter are active. To prevent reaching the 50k limit and to extend the time between restarts, we're trying to add a second Game Server.
The goal is to add a second Game Server while using a single IP address on the same server machine. I've patched all server modules to allow them to start on the same PC (cannot create semaphore: module already executing) and added the second Game Server and second Machine manager in certification.
However, there’s an issue: when both are running on the same IP and same machine, I can only operate one Machine Manager and one Game Server. For instance, if I start the second Machine Manager, the Global Manager throws this error: server cord already established: created session overlapped. If I bypass this error by patching the Global Manager, both Machine Managers connected , but both work as primary[102] (not [102] and [103]) and only one of them(first started) is shows as active in Global Manager diagram.How the Global manager decide which connected module is [102] and who to be [103]? Is it the wip/nip IP in srNodeType?
Running 2 Machine managers on patched Global manager
I'm wondering if it's even possible to run this configuration on a single machine with the same real IP. Could the certification we’re using be the problem? In tests with one physical machine and one VM on LOCAL network (192.xxx.xxx.xxx), both Game Servers worked fine using the same certification.
Certification module in use:
Certification diagram:
Global Manager error (before patching) when trying to connect the second Machine Manager:
Certification srNodeType config:
I also tried a scenario with one physical machine using a real IP (e.g., 109.109.109.109) and a VM with a local IP (192.168.50.100), but the same problem occurs – only one Machine Manager/Game Server can be certified, with overlap errors in the Global Manager. The only solution that has worked so far is running everything in a local network (192.xxx.xxx.xxx) and redirecting ports from the external IP to the local network, but this isn’t an option right now.
Has anyone successfully made this setup work on a single machine with a single real IP?
Hello everyone! We have a small non-bot server that we've been supporting for the last 7 years. The server is based on BRFiles and is limited to 10D, so we're running only one Game Server, one Shard Server, and one Agent Server. We've optimized the server to handle up to 48,000 objects, but after 1-2 weeks of continuous operation without a restart, the object count rises to 49,000, causing some regions to start lagging. This happens faster when events like winter, Halloween, or Easter are active. To prevent reaching the 50k limit and to extend the time between restarts, we're trying to add a second Game Server.
The goal is to add a second Game Server while using a single IP address on the same server machine. I've patched all server modules to allow them to start on the same PC (cannot create semaphore: module already executing) and added the second Game Server and second Machine manager in certification.
However, there’s an issue: when both are running on the same IP and same machine, I can only operate one Machine Manager and one Game Server. For instance, if I start the second Machine Manager, the Global Manager throws this error: server cord already established: created session overlapped. If I bypass this error by patching the Global Manager, both Machine Managers connected , but both work as primary[102] (not [102] and [103]) and only one of them(first started) is shows as active in Global Manager diagram.How the Global manager decide which connected module is [102] and who to be [103]? Is it the wip/nip IP in srNodeType?
Running 2 Machine managers on patched Global manager
I'm wondering if it's even possible to run this configuration on a single machine with the same real IP. Could the certification we’re using be the problem? In tests with one physical machine and one VM on LOCAL network (192.xxx.xxx.xxx), both Game Servers worked fine using the same certification.
Certification module in use:
Certification diagram:
Global Manager error (before patching) when trying to connect the second Machine Manager:
Certification srNodeType config:
I also tried a scenario with one physical machine using a real IP (e.g., 109.109.109.109) and a VM with a local IP (192.168.50.100), but the same problem occurs – only one Machine Manager/Game Server can be certified, with overlap errors in the Global Manager. The only solution that has worked so far is running everything in a local network (192.xxx.xxx.xxx) and redirecting ports from the external IP to the local network, but this isn’t an option right now.
Has anyone successfully made this setup work on a single machine with a single real IP?
Any hints would be greatly appreciated.
Regards
Might not be what you're looking for, but have you tried increasing the cap from 50k max objects to more?
I have 120.000 /worldstats on my server running for years without any issues.
There's a thread that explains it, unfortunately it is for vsro and I cannot find it.
Might not be what you're looking for, but have you tried increasing the cap from 50k max objects to more?
I have 120.000 /worldstats on my server running for years without any issues.
There's a thread that explains it, unfortunately it is for vsro and I cannot find it.
Yeah , i am trying to increase max object to be over 50k.Thats why i try to run 2nd GS. You are using patched max count on single GS from 50k ->120k and this solution work without any lag?
Yeah , i am trying to increase max object to be over 50k.Thats why i try to run 2nd GS. You are using patched max count on single GS from 50k ->120k and this solution work without any lag?
Regards
I've just checked again.
My /worldstats is around 93.000. More than 100.000 and the GS crashes.
Keep it under 100k and try. There is no lag whatsoever.
However I do not know the offsets for br files.
My /worldstats is around 93.000. More than 100.000 and the GS crashes.
Keep it under 100k and try. There is no lag whatsoever.
However I do not know the offsets for br files.
Thanks for work around. I will try to find the offset for the BR Files and will test for lag. I think running 2nd game server is better solution, thats why i will not give up to make it work on single machine, because i think the 50 k limit is out by Joymax for a reason.
---------------------------------------------------
Update:
I found the offset for the BR Files.I will post it here if someone else need it.Today will try to patch it and test it:
Hello everyone! We have a small non-bot server that we've been supporting for the last 7 years. The server is based on BRFiles and is limited to 10D, so we're running only one Game Server, one Shard Server, and one Agent Server. We've optimized the server to handle up to 48,000 objects, but after 1-2 weeks of continuous operation without a restart, the object count rises to 49,000, causing some regions to start lagging. This happens faster when events like winter, Halloween, or Easter are active. To prevent reaching the 50k limit and to extend the time between restarts, we're trying to add a second Game Server.
The goal is to add a second Game Server while using a single IP address on the same server machine. I've patched all server modules to allow them to start on the same PC (cannot create semaphore: module already executing) and added the second Game Server and second Machine manager in certification.
However, there’s an issue: when both are running on the same IP and same machine, I can only operate one Machine Manager and one Game Server. For instance, if I start the second Machine Manager, the Global Manager throws this error: server cord already established: created session overlapped. If I bypass this error by patching the Global Manager, both Machine Managers connected , but both work as primary[102] (not [102] and [103]) and only one of them(first started) is shows as active in Global Manager diagram.How the Global manager decide which connected module is [102] and who to be [103]? Is it the wip/nip IP in srNodeType?
Running 2 Machine managers on patched Global manager
I'm wondering if it's even possible to run this configuration on a single machine with the same real IP. Could the certification we’re using be the problem? In tests with one physical machine and one VM on LOCAL network (192.xxx.xxx.xxx), both Game Servers worked fine using the same certification.
Certification module in use:
Certification diagram:
Global Manager error (before patching) when trying to connect the second Machine Manager:
Certification srNodeType config:
I also tried a scenario with one physical machine using a real IP (e.g., 109.109.109.109) and a VM with a local IP (192.168.50.100), but the same problem occurs – only one Machine Manager/Game Server can be certified, with overlap errors in the Global Manager. The only solution that has worked so far is running everything in a local network (192.xxx.xxx.xxx) and redirecting ports from the external IP to the local network, but this isn’t an option right now.
Has anyone successfully made this setup work on a single machine with a single real IP?
Any hints would be greatly appreciated.
Regards
You don't have to use shared ips per node (only 1 node per ip will working well).
One of the good ways that you can do is create a virtual private network adapter with the local ips for nodes.
It will separate your modules from a public network. Then you have to use a proxy between public ips to your private ips gateway/agent.
You don't have to use shared ips per node (only 1 node per ip will working well).
Looks why there is no any tricky solution about this. I though about some GS patch,but looks why this will not work.
Thanks for information.Probably the only way is to make server up on some of other server LAN cards or VM LAN and to redirect the ports.
Quote:
Originally Posted by Deja45Vu
Then you have to use a proxy between public ips to your private ips
@ Is there any free simple proxy with source,just to test to redirect the Agent server because will send the local IP to the client? I will test it on separate server.
Looks why there is no any tricky solution about this. I though about some GS patch,but looks why this will not work.
Thanks for information.Probably the only way is to make server up on some of other server LAN cards or VM LAN and to redirect the ports.
@ Is there any free simple proxy with source,just to test to redirect the Agent server because will send the local IP to the client? I will test it on separate server.
Regards
Unfortunately dont know released filter support BR files, but you can try use a ducksoup using only A103 packet handler to override agent ip
Thanks. Yeah, unfortunately there is not much BR Files filters.I will try to make it work, source is needed because we dont use the standard opcodes and i must change it in the filter.
Unfortunately dont know released filter support BR files, but you can try use a ducksoup using only A103 packet handler to override agent ip
I made a test server with 2PC ,one physical and 1 on VM
PC1
REAL IP: 109.109.109.109
LAN: 192.168.50.1
VM
LAN: 192.168.50.250
I am using a old sr proxy source code to redirect traffic from the real IP 109.109.109.109 to 192.168.50.1 to Gateway and Agent Server. Server is running normally with both game servers,but the problem is when user is login in game, the Gateway report the internal IP 192.168.50.1,not the real IP of the user.
Is this a filter issue or there is no way the Gateway to detect the real user IP if is run on local IP address?
I will try and DuckSoup filter,but probably will be the same.Its took a lot of time to rewrite the opcodes,because i am using a different opcode tables.
Problem With running 2 game server same machine 09/15/2023 - SRO PServer Questions & Answers - 2 Replies Hello <3
i tried to run 2 GameServers and 1 Agent on same Machine
i successfully open 2 Game Servers and 2 Machine manager
But i keep getting error at Agent Server 109:SR_GameServer is blind : 0 users are banned
server cord established : 498 (SecondIP:16006)
i have 2 IPs and i open all ports for them to connect each other
http://i.epvpimg.com/rlsyaab.png