Server performance monitoring

devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
As of build 219, it's now possible to pull server tickrate information from outside the server. Combined with a list of all NS2 servers, it's possible to provide performance graphs for everyone.

You can see the full list of servers + graphs here: <a href="http://ns2servers.devicenull.org/" target="_blank">http://ns2servers.devicenull.org/</a>

There are still a few things I need to improve on, but suggestions are welcome.
«13

Comments

  • WarboyWarboy Join Date: 2012-09-05 Member: 157929Members, NS2 Playtester, Squad Five Blue, Subnautica Playtester
    Interesting, Sent you a PM about something, and also might be good to add a dropdown to adjust to local time.
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    This is fantastic!

    Great work :)
  • TermFragsTermFrags Tampa, FL Join Date: 2012-08-30 Member: 156877Members, NS2 Playtester
    Very impressive, good job!
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    edited September 2012
    Looks great! One small thing i would improve: include the most recent servername in the pagetitle on server detail pages.

    I optimized a few things on my rootserver and the <a href="http://ns2servers.devicenull.org/detail.php?id=57" target="_blank">graph</a> looks much more stable now. But sometimes there are still dips to 0, and i'm curious of what may be the cause. Eventually packets lost, server resetting state of the map after a round, caching, dunno...

    How do you pull the tickrates from the servers?
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    The game makes the tickrate available in the A2S_RULES responses. It just takes a couple UDP packets to retrieve it from the server. That graph is rather interesting, if there were significant packet loss I'd expect to see both the tickrate and entity count drop to zero at the same time. That didn't happen, so I'm a bit unsure what's going on there.

    I need to make some changes that that dropped packets get retried a couple times. This already happens with playercount and general server info, but not for the tickrate request.
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    Hm, do you send the requests via port 80?

    I limited the rate of outgoing packets to port 80, since gameservers are often used for reflected DDOS attacks. Eventually I have to raise the bar a bit.
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    <!--quoteo(post=1979496:date=Sep 18 2012, 06:58 AM:name=falc)--><div class='quotetop'>QUOTE (falc @ Sep 18 2012, 06:58 AM) <a href="index.php?act=findpost&pid=1979496"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Hm, do you send the requests via port 80?

    I limited the rate of outgoing packets to port 80, since gameservers are often used for reflected DDOS attacks. Eventually I have to raise the bar a bit.<!--QuoteEnd--></div><!--QuoteEEnd-->

    No. It's a randomly chosen port, but it's definitely above 1024.
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    Ok, then its definitely not a connection problem and I have to investigate further.

    Just curious: Are you running a daemon to fetch the data?
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    <!--quoteo(post=1979496:date=Sep 18 2012, 12:58 PM:name=falc)--><div class='quotetop'>QUOTE (falc @ Sep 18 2012, 12:58 PM) <a href="index.php?act=findpost&pid=1979496"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Hm, do you send the requests via port 80?

    I limited the rate of outgoing packets to port 80, since gameservers are often used for reflected DDOS attacks. Eventually I have to raise the bar a bit.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Assumption that no server software does HTTP requests is risky.
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    I'm not 100% sure what you are trying to say. :P
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    <!--quoteo(post=1979697:date=Sep 18 2012, 02:55 PM:name=falc)--><div class='quotetop'>QUOTE (falc @ Sep 18 2012, 02:55 PM) <a href="index.php?act=findpost&pid=1979697"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Ok, then its definitely not a connection problem and I have to investigate further.

    Just curious: Are you running a daemon to fetch the data?<!--QuoteEnd--></div><!--QuoteEEnd-->

    Yes.


    <!--quoteo(post=1979704:date=Sep 18 2012, 03:05 PM:name=MOOtant)--><div class='quotetop'>QUOTE (MOOtant @ Sep 18 2012, 03:05 PM) <a href="index.php?act=findpost&pid=1979704"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Assumption that no server software does HTTP requests is risky.<!--QuoteEnd--></div><!--QuoteEEnd-->
    UDP port 80 is not used by HTTP. TCP port 80 is. UDP port 80 is only used by people attacking servers (there's a very tiny chance there's a legit use for this, but I have not seen it).
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    I was asking because some tools apply rule to both TCP and UDP.
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    Its UDP only, ofc. ;)
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    I wouldn't mind seeing another column that shows a quick measure of the server performance (so I don't have to open up each individual server to see). Maybe something like the average tickrate/player ratio or percentage of time in the past 24 hours that the server is at 30tickrate when populated.
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    <!--quoteo(post=1981617:date=Sep 21 2012, 08:08 PM:name=ScardyBob)--><div class='quotetop'>QUOTE (ScardyBob @ Sep 21 2012, 08:08 PM) <a href="index.php?act=findpost&pid=1981617"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I wouldn't mind seeing another column that shows a quick measure of the server performance (so I don't have to open up each individual server to see). Maybe something like the average tickrate/player ratio or percentage of time in the past 24 hours that the server is at 30tickrate when populated.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Will definitely look into that. Coming up with a decent way to show that that prevents a few awful servers from dragging down the rest is a bit tricky.
  • syserrorsyserror Join Date: 2007-08-09 Member: 61840Members, Constellation, Reinforced - Shadow
    edited September 2012
    <!--quoteo(post=1982665:date=Sep 25 2012, 01:39 AM:name=devicenull)--><div class='quotetop'>QUOTE (devicenull @ Sep 25 2012, 01:39 AM) <a href="index.php?act=findpost&pid=1982665"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Will definitely look into that. Coming up with a decent way to show that that prevents a few awful servers from dragging down the rest is a bit tricky.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I think <b>ScardyBob</b> meant a per-server average/column (so the awful servers still look awful, but the good ones look good) -- so that you can see a server's performance at a glance.
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    edited September 2012
    <!--quoteo(post=1982803:date=Sep 25 2012, 04:20 AM:name=syserror)--><div class='quotetop'>QUOTE (syserror @ Sep 25 2012, 04:20 AM) <a href="index.php?act=findpost&pid=1982803"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I think <b>ScardyBob</b> meant a per-server average/column (so the awful servers still look awful, but the good ones look good) -- so that you can see a server's performance at a glance.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Just to continue bouncing ideas around, rather than hard data you could have a colour scale on the main server view page (green being 29-30tick avg, yellow being 28tick average, etc etc... You have the data sets so you can figure out where to draw the lines) which when clicked, opens up the more detailed stats; average tick, average number of players during peak hours/ off hours etc etc. It'd be good to have it in its own sortable coloumn and even better as a filter.

    To be honest - it'd be great if you started talking to the guys behind <a href="http://hypernovadesign.co.uk/nanogrid/" target="_blank">http://hypernovadesign.co.uk/nanogrid/</a> so that you can combine your efforts into a very detailed server browser, otherwise you run the risk of effort duplication between the two of you.
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    Looks like the daemon is a bit over capacity? ;)
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    Something broke for sure!
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    I will have to take a look, but I'm currently without internet/power (due to a hurricane). Hopefully I'll have a chance to look at this while I'm at work.
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    I was able to trim some old data, so everything should be responsive again. I'll probably have to upgrade the VPS it's on for a more permanent fix, the current one only has 128mb of ram.
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    I think your performance monitor is missing quite a few servers. Its reporting a lot less playercount that other server monitoring sites:

    <a href="http://ns2servers.devicenull.org/gamestats.php" target="_blank">http://ns2servers.devicenull.org/gamestats.php</a>
    vs
    <a href="http://www.game-monitor.com/search.php?game=naturalselection22" target="_blank">http://www.game-monitor.com/search.php?gam...uralselection22</a>
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    <!--quoteo(post=2007549:date=Nov 2 2012, 08:09 PM:name=ScardyBob)--><div class='quotetop'>QUOTE (ScardyBob @ Nov 2 2012, 08:09 PM) <a href="index.php?act=findpost&pid=2007549"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I think your performance monitor is missing quite a few servers. Its reporting a lot less playercount that other server monitoring sites:

    <a href="http://ns2servers.devicenull.org/gamestats.php" target="_blank">http://ns2servers.devicenull.org/gamestats.php</a>
    vs
    <a href="http://www.game-monitor.com/search.php?game=naturalselection22" target="_blank">http://www.game-monitor.com/search.php?gam...uralselection22</a><!--QuoteEnd--></div><!--QuoteEEnd-->

    Interesting, I'll have to take a look at that too. Looks like there's roughly 200 servers that aren't on my list.

    I just fixed an issue where entity counts over 1000 wouldn't be displayed correctly. Also, I pruned any server that hasn't been responding in over 24 hours. This will happen daily from now on.
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    Add a tiny donate button or link in the footer somewhere; this is really just that good.
  • CoTTonCoTTon Join Date: 2005-02-28 Member: 42773Members
    <!--quoteo(post=2014118:date=Nov 7 2012, 07:34 AM:name=eLbot)--><div class='quotetop'>QUOTE (eLbot @ Nov 7 2012, 07:34 AM) <a href="index.php?act=findpost&pid=2014118"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Add a tiny donate button or link in the footer somewhere; this is really just that good.<!--QuoteEnd--></div><!--QuoteEEnd-->

    ^

    Agree
  • devicenulldevicenull Join Date: 2003-04-30 Member: 15967Members, NS2 Playtester, Squad Five Blue
    <!--quoteo(post=2014611:date=Nov 7 2012, 06:19 PM:name=CoTTon)--><div class='quotetop'>QUOTE (CoTTon @ Nov 7 2012, 06:19 PM) <a href="index.php?act=findpost&pid=2014611"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->^

    Agree<!--QuoteEnd--></div><!--QuoteEEnd-->

    Added. Any donations would be appreciated.

    I also added the ability to view old server data. I'm currently keeping all the data for the last 30 days. This number may change depending on how large the NS2 server list grows.
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    Fantastic, donated!

    I said it a while back, but this is a fantastic tool, thank you so much for your work on this (and on the web-interface)!
  • eLboteLbot Join Date: 2012-09-13 Member: 159229Members
    Hmmn, my server's don't seem to appear anymore.

    81.19.212.190:27015/:29015/:30015/:31015

    [ UK :: The Thirsty Onos :: Vanilla #1 / UK :: The Thirsty Fade :: Vanilla #2 / UK :: The Thirsty Drifter :: thirsty. Matchsrv / UK :: The Thirsty Lerk :: Veteran #1 ]
  • falcfalc Join Date: 2011-03-18 Member: 87128Members
    Mine disappeared completely...

    I would also ignore all servers named "Explore Mode" .. they probably cause unnecessary load.
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    Yeah, something funky is going on as a lot of servers are still missing from the list. Also, it would help browsing if you culled any servers on previous builds, servers that just say down, and ones named explore mode.
Sign In or Register to comment.