You are an unregistered user, you can register here
Navigation

Information

Site

Donations
If you wish to make a donation you can by clicking the image below.


 
Go Back   The Unreal Admins Page > Forums > Unreal Admins > Unreal Tournament 2003/2004 > UT2003/4 Server - General Chat

Reply
Thread Tools Display Modes
  #1  
Unread 17th December, 2008, 02:28 PM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Question Can WebAdmin cause lag on servers ?

Hi,

I'm actually working on a tool that uses UT2004's WebAdmin pages to get connected players list and to display WebAdmin chat console so I'm wondering if WebAdmin could create lag on a server when admins are using my tool.

I tested it with more than 10 different sessions refreshing chat console every 5 seconds and I didn't notice pics of lag...but I would feel better if experts like you confirm it

Last edited by pataguillon : 17th December, 2008 at 02:29 PM. Reason: Forgot to give the name of the game concerned ;)
Reply With Quote
  #2  
Unread 18th December, 2008, 01:48 PM
Mc.Gugi Mc.Gugi is offline
Unstoppable
 
Join Date: Mar 2007
Posts: 208
Default

well, on our servers it does lag when you log in as webadmin or modify settings.
__________________
Unreal Dependencies: UnrealDeps (Updated: 20.04.11)
Check dependencies of unreal packages; uz, uz2, uz3 standalone compression/decompression

A multifunctional UT2004 mutator: Clan Manager 1h 6T (Updated 04.07.09)
(Clanmember-/Admin-enter-messages, Clantag-Protection, Clanchat, Player-Logging, AFK-Detector, WhoIs, "second" private server to keep non-clanmembers out and much more.) Source included.

Check client screenshots for cheats (an UT2004-Mutator): Screenshot Sender (Updated: 27.11.08)
Reply With Quote
  #3  
Unread 18th December, 2008, 05:03 PM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Quote:
Originally Posted by Mc.Gugi View Post
well, on our servers it does lag when you log in as webadmin or modify settings.
Oh no... this means I should find another way to get players list etc. than using WebAdmin ?
Reply With Quote
  #4  
Unread 19th December, 2008, 10:48 AM
Mc.Gugi Mc.Gugi is offline
Unstoppable
 
Join Date: Mar 2007
Posts: 208
Default

Well, dunno. But you could also use a TCPLink and send the needed data that way.
__________________
Unreal Dependencies: UnrealDeps (Updated: 20.04.11)
Check dependencies of unreal packages; uz, uz2, uz3 standalone compression/decompression

A multifunctional UT2004 mutator: Clan Manager 1h 6T (Updated 04.07.09)
(Clanmember-/Admin-enter-messages, Clantag-Protection, Clanchat, Player-Logging, AFK-Detector, WhoIs, "second" private server to keep non-clanmembers out and much more.) Source included.

Check client screenshots for cheats (an UT2004-Mutator): Screenshot Sender (Updated: 27.11.08)
Reply With Quote
  #5  
Unread 19th December, 2008, 09:05 PM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Well, the thing is I need to get same data than in WebAdmin. I mean, players guids, ip, name...for all players (playing or spectating) connected to our server.

Are you sure that WebAdmin loggin causes lag on servers ? If yes, why isn't there a fix for this problem or another solution to have same data ?

Now, if it causes lag, it would explain why we are having some bad lag spikes sometimes on our server for several weeks...because my tool connects to WebAdmin every 5 seconds for each user of this tool (more than 5 very active admins...).

That's annoying because this admin tool is close to be releasable in public...I need yo find a solution. The first that came to my mind is to connect only once to WebAdmin (with fopen() function) and only refresh and read content (with fread() function)...but I haven't found yet how to keep the handle returned by the fopen in memory when I refresh the webpage...lot of work to do on this problem, so ! :p
Reply With Quote
  #6  
Unread 19th December, 2008, 09:17 PM
Wormbo's Avatar
Wormbo Wormbo is offline
out of order
 
Join Date: Sep 2003
Posts: 3,383
Default

It's a web server, so you need to connect for every request. How about not connecting that often, though? Does the tool really need to connect every 5 seconds?
__________________
Wormbo's UT/UT2004/UT3 mods | PlanetJailbreak | Unreal Wiki | Liandri Archives
Quote:
<@Mych|Lockdown> ...and the award for the most creative spelling of "Jailbreak" goes to ... "Gandis Jealbrake Server"
Reply With Quote
  #7  
Unread 20th December, 2008, 06:24 PM
Mc.Gugi Mc.Gugi is offline
Unstoppable
 
Join Date: Mar 2007
Posts: 208
Default

mh, I don't know exactly why it lags the server, but I guess that it needs so much bandwidth to upload the various data (maps, players, etc.) to the webadmin-client that nothing is left over for the players for several ticks.
(We have around 500 maps on the server...)

If you'd use a TCP/UDP-Link you could control how much and exactly what is uploaded, I think.
__________________
Unreal Dependencies: UnrealDeps (Updated: 20.04.11)
Check dependencies of unreal packages; uz, uz2, uz3 standalone compression/decompression

A multifunctional UT2004 mutator: Clan Manager 1h 6T (Updated 04.07.09)
(Clanmember-/Admin-enter-messages, Clantag-Protection, Clanchat, Player-Logging, AFK-Detector, WhoIs, "second" private server to keep non-clanmembers out and much more.) Source included.

Check client screenshots for cheats (an UT2004-Mutator): Screenshot Sender (Updated: 27.11.08)
Reply With Quote
  #8  
Unread 20th December, 2008, 06:33 PM
Wormbo's Avatar
Wormbo Wormbo is offline
out of order
 
Join Date: Sep 2003
Posts: 3,383
Default

WebAdmin is limited to processing a request and send the reply within the same tick. Larger data chunks like images or the chat on a server with talkative players will take more time and cause the other server tasks (player movement etc.) to be halted until the data is processed. This is true across all UT generations, btw.

Like Mc.Gugi, I recommend using a separate TcpLink or UdpLink class to (1) spread larger data transfers across several ticks and (2) only transfer data that is really required by your tool, not the entire HTML code of the corresponding webadmin page(s).
__________________
Wormbo's UT/UT2004/UT3 mods | PlanetJailbreak | Unreal Wiki | Liandri Archives
Quote:
<@Mych|Lockdown> ...and the award for the most creative spelling of "Jailbreak" goes to ... "Gandis Jealbrake Server"
Reply With Quote
  #9  
Unread 21st December, 2008, 02:24 PM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Quote:
Originally Posted by Wormbo View Post
WebAdmin is limited to processing a request and send the reply within the same tick. Larger data chunks like images or the chat on a server with talkative players will take more time and cause the other server tasks (player movement etc.) to be halted until the data is processed. This is true across all UT generations, btw.

Like Mc.Gugi, I recommend using a separate TcpLink or UdpLink class to (1) spread larger data transfers across several ticks and (2) only transfer data that is really required by your tool, not the entire HTML code of the corresponding webadmin page(s).
Well, it's difficult to believe that you need to login for every request to WebAdmin...or I'm missing something...isn't there something session management in WebAdmin ? Or is it the WebBrowser who manages this ?

For the TCP/UDP links, it would be cool but it would mean create a mutator which would retrieve same data that WebAdmin ?

For the 5 seconds refresh, it's because my tool displays chat console from WebAdmin. But it's just one page of my tool which uses WebAdmin's players and chat console pages... other pages of my tool are not linked to WebAdmin. So I just need a way to get same data that these WebAdmin pages without creating lag on the server because of the amount of my users

Another idea I got but I don't know how hard/possible it would be : create a WebAdmin data manager in my tool which would be the only one thing to login to WebAdmin then make users of my tool get data from this manager...but I'm pretty sure it gonna be hard to create this manager which would have to stay active from server side all the time...
Reply With Quote
  #10  
Unread 22nd December, 2008, 07:40 AM
ARsEnAl51's Avatar
ARsEnAl51 ARsEnAl51 is offline
Holy Shit!!
 
Join Date: Jul 2005
Posts: 800
Default

Quote:
Originally Posted by pataguillon View Post
Well, it's difficult to believe that you need to login for every request to WebAdmin...or I'm missing something...isn't there something session management in WebAdmin ? Or is it the WebBrowser who manages this ?
To save you the hassle of retyping your authentication data for every request, your browser caches it and uses it whenever needed.

Quote:
Originally Posted by pataguillon View Post
For the TCP/UDP links, it would be cool but it would mean create a mutator which would retrieve same data that WebAdmin ?
Probably the best solution. But that'd indeed require you to create a server actor.

Quote:
Originally Posted by pataguillon View Post
Another idea I got but I don't know how hard/possible it would be : create a WebAdmin data manager in my tool which would be the only one thing to login to WebAdmin then make users of my tool get data from this manager...but I'm pretty sure it gonna be hard to create this manager which would have to stay active from server side all the time...
The problem with this idea is that some servers are rent... and the companies renting the server probably won't want to run something along the server.
Reply With Quote
  #11  
Unread 22nd December, 2008, 08:01 AM
Wormbo's Avatar
Wormbo Wormbo is offline
out of order
 
Join Date: Sep 2003
Posts: 3,383
Default

If you don't want a separate TCP or UDP link, then how about creating a dedicated WebApplication for your tool? That way you could at least reduce the amount of data that needs to be transmitted, while still using a HTTP interface.
__________________
Wormbo's UT/UT2004/UT3 mods | PlanetJailbreak | Unreal Wiki | Liandri Archives
Quote:
<@Mych|Lockdown> ...and the award for the most creative spelling of "Jailbreak" goes to ... "Gandis Jealbrake Server"
Reply With Quote
  #12  
Unread 22nd December, 2008, 10:37 AM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Quote:
Originally Posted by ARsEnAl51 View Post
The problem with this idea is that some servers are rent... and the companies renting the server probably won't want to run something along the server.
You're right, servers providers will never accept such solution running on their side. And yeah, maybe the mutator will be the best solution so I'm going to have to learn about it but I know I'll find good examples and tutorials



Quote:
Originally Posted by Wormbo View Post
If you don't want a separate TCP or UDP link, then how about creating a dedicated WebApplication for your tool? That way you could at least reduce the amount of data that needs to be transmitted, while still using a HTTP interface.
I'm not sure I understand what you mean...anyway, what you said makes me think about another possibility : create a new page in our WebAdmin to retrieve only data we need...the problem is : I don't have any idea about how the WebAdmin server API looks like (what can be called, how to call them, etc.) and I'm pretty sure you can't find documentation or source code of WebAdmin.
Reply With Quote
  #13  
Unread 22nd December, 2008, 11:40 AM
Wormbo's Avatar
Wormbo Wormbo is offline
out of order
 
Join Date: Sep 2003
Posts: 3,383
Default

WebAdmin is based on TcpLink and mostly implemented in UnrealScript. Only a few functions for accessing the file system and doing expensive conversions are implemented in native code. In other words, you can have a look at how exactly it works by extracting the sources as usual.
__________________
Wormbo's UT/UT2004/UT3 mods | PlanetJailbreak | Unreal Wiki | Liandri Archives
Quote:
<@Mych|Lockdown> ...and the award for the most creative spelling of "Jailbreak" goes to ... "Gandis Jealbrake Server"
Reply With Quote
  #14  
Unread 22nd December, 2008, 01:53 PM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

OK, another possibility came to me looking at "what others did" ^^
I discovered that ServerExt implemented enhanced serverQuery which maybe I could use to get data about players...the problem is : maybe it will also create lag on the server...I don't have a clue but it's an UDP link here (drawback : it can loose some packets of data...).

Then I would just miss the chat console thing...maybe I could read chat logs file on the server directly if it's written simultaneously in the file/game...but I think I already checked this and I think I remember it writes the chat logs file at the end of each match...

I'll check all we said tonight because I can't check server files at work
Reply With Quote
  #15  
Unread 23rd December, 2008, 10:46 AM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Quote:
Originally Posted by Wormbo View Post
WebAdmin is based on TcpLink and mostly implemented in UnrealScript. Only a few functions for accessing the file system and doing expensive conversions are implemented in native code. In other words, you can have a look at how exactly it works by extracting the sources as usual.
Well, I extracted sources yesterday night. I didn't know how was looking UnrealScript...it seems to be a nice coding language (sounds familiar to my c++ skills ).

So, I gonna study current WebAdmin implementation to be able to choose the best solution for my problem (new WebAdmin page, WebQueries or new mutator) .

Thank you all for your advice.

I'll keep you informed
Reply With Quote
  #16  
Unread 23rd December, 2008, 12:01 PM
Wormbo's Avatar
Wormbo Wormbo is offline
out of order
 
Join Date: Sep 2003
Posts: 3,383
Default

Hint: WebAdmin is implemented as two WebApplications for the UT WebServer. One for the HTML stuff, the other for resource files, such as images, stylesheets, etc.
__________________
Wormbo's UT/UT2004/UT3 mods | PlanetJailbreak | Unreal Wiki | Liandri Archives
Quote:
<@Mych|Lockdown> ...and the award for the most creative spelling of "Jailbreak" goes to ... "Gandis Jealbrake Server"
Reply With Quote
  #17  
Unread 28th December, 2008, 01:05 AM
pataguillon pataguillon is offline
Forum Newcomer
 
Join Date: Jul 2006
Posts: 8
Default

Ok, here is where I am in my last investigations :
I focused on my main problem in a first time : the chat console. I extracted sources of TitanAdmins package which permits to do what I want. I discovered they get current console through the WebQuery server they created in their mutator. So I guess I would have to do exactly the same code in my mutator...which would be a waste of time, in my opinion. I would be tempted by using their mutator directly but I don't know if it would create less lag on our server than WebAdmin...and I don't how to check this...

Else, with this Titan mutator, all my problems would be fixed using their WebQueries...so it would be the solution "webqueries in an existing mutator"
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 06:10 AM.


 

All pages are copyright The Unreal Admins Page.
You may not copy any pages without our express permission.