Advertisement

Opinions on the future of GameDev.net platform?

Started by September 15, 2023 01:27 AM
28 comments, last by khawk 1 year, 2 months ago

I came to gamedev only recently but feature-wise it looks like it have everything it needs.
(i would have preferred markdown syntax for posts tho ^^)
The biggest issue that I had is with the hosting I believe. There's often high latency or even unresponsive / bad gateway errors which logs you out all the time.

If i understand well the motivation behind a migration would be to reduce operating and maintenance costs (in both time and money) while keeping current features (forum, blog, projects..) and increasing server/app reliability ?

GDNet sees ~100 requests/minute on average so while not a massive amount, it has costs to maintain.

That doesn't sound bad at all. You should easily be able to serve that up with a €50/mo dedicated box at Hetzner. I've often wondered what kind of hosting is running this site, since it can go from 10 second pageloads to being nice and fast at random?

Advertisement

khawk said:
GDNet sees ~100 requests/minute on average

I wonder how much of that is bots.

-- Tom Sloper -- sloperama.com

Also, are those 100 req/minute actual hits on the server? With a forum like this, a decent fraction of all hits could be served from cache, like a Varnish in front of the webserver, or even the free tier at Cloudflare would do the trick.

The forum pages here set a 10 minute max-age, but since a reload can take anything from 2 to 10 seconds, there doesn't seem to be any caching in place. Static resources are seem cached though.

Brian Sandberg said:
That doesn't sound bad at all.

It is not just about requests, but also by total data transferred (just opening exactly current page on forums transfers (incl. resources) give or take 16MB … opening home page incl. resources is like 85MB). I'll be generous and state that those 16MB is average - with (processed) 100 requests/min, that gets to 1.6GB each minute (or about 30MB/s give or take which is → 240 Mbit/s required by server). Caches can help but overall it is a lot of resources.

But that still may not explain anything - because it can have bottleneck in completely different spot (missing index/tree on database (and GameDev.net database will be large as it grew over the years), uses some debug-heavy script somewhere in underlying module, or hosting just lying about their capabilities (sadly, I've seen that one), etc.).

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

Vilem Otte said:
(just opening exactly current page on forums transfers (incl. resources) give or take 16MB … opening home page incl. resources is like 85MB)

Wow that sounds terribly inefficient for a page where the only major non-text content are a few icons and avatars, all less than 32px in display size. It should be less than 1MB. This is the problem with modern web development based on gigantic frameworks: the bloat is unreal and unnecessary. It's refreshing these days when I see a plain HTML or PHP page, the speed is amazing in comparison to most of the “modern” web.

One problem I see is that avatar images are not resized to a standard maximum size and format. I see sizes from 100px to 250px. Make them all no larger than something reasonable (max display size*2 for retina displays). I'd suggest a max of 64px or 128px. They are also all PNGs, which further bloats the size. They should be JPEG if there is no transparency. Converting the 250px avatar to JPEG without resizing saved a factor of 4 (88KB → 22KB). Scaling it to 128px makes it only 9KB. This is stuff that should be done automatically when the content is ingested. There is probably a ton of other stuff that could be done to optimize the site and save bandwidth. Based on the above, you could probably reduce bandwidth for images by a factor of 5-10 just by converting avatar formats. This would take about 10 minutes to implement in PHP.

Advertisement

Vilem Otte said:

It is not just about requests, but also by total data transferred (just opening exactly current page on forums transfers (incl. resources) give or take 16MB … opening home page incl. resources is like 85MB).

Holy crap 🙂 I just tested the frontpage, though, and it loads 25 MB of resources. However, 22 MB of them is a single animate gif from one of the featured projects, and a further 900 KB is an oversized image being shown for one of the blog posts, So there's 2 MB of actual page, which is fine. It should be easy enough to put something in place to handle those worst offenders, and then it doesn't really matter much if a few extra kb can be saved here or there.

Aressera said:
One problem I see is that avatar images…

You don't want to use JPEGs today, or rather - use those only as a backup. Using WEBP is preferred to those (in terms of both - size and quality … you will usually save about 50% of space compared to JPEG at the same quality).

Aressera said:
Wow that sounds terribly inefficient for a page where the only major non-text content are a few icons and avatars, all less than 32px in display size. It should be less than 1MB. This is the problem with modern web development based on gigantic frameworks: the bloat is unreal and unnecessary. It's refreshing these days when I see a plain HTML or PHP page, the speed is amazing in comparison to most of the “modern” web.

I remember setting up a site(s) in AngularJS and later also in React. The “nothing big” eventually grew into something huge and bloated - mainly due to dependency hell (especially as you have to update dependencies over time to ensure some security level), which still takes about multiple times more to maintain than other web services we run with lightweight custom front end (yes it is custom, but documented and lightweight). You can especially see how pages became extremely heavy when you try to run them on older hardware (take 10-15 years old laptop) … and they're far from “great user experience”.

This would end up in endless rant though - modern web is not necessarily bad, but the bloatness of the most (in)famous and well known apis has grown extremely over the years. It often ends up in unmaintainable mess. There are apis which are great and lightweight enough (like F.e. Vue).

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

Tom Sloper said:

khawk said:
GDNet sees ~100 requests/minute on average

I wonder how much of that is bots.

A lot. Good bots (search engines) and bad bots. Try to keep the filter up-to-date for the bad bots, but it's difficult to block the script kiddz and attempted hacks. Most common thing to bring things down is an occasional massive traffic spike, which seems to be an every few week occurrence.

After looking again I was wrong - it's ~350-400 requests/minute (oops 🙂).

If everyone is that interested.. the current setup is almost entirely on Google Cloud:

  • gamedev.net IP goes to a load balancer + caching/CDN
  • App VM is 4 CPU, 4GB RAM
    • nginx for proxy + URL 301's/redirects of 10-20 year old URLs that still get hits + bad bot and IP filters
    • uwsgi for the app server (python/django)
    • running background tasks for emails/notifications and other various services (blog imports, topic archiving, cleanup)
      (finding that some of these services may be a cause for slowdowns, not enough CPU to go around)
    • App is SSR, have explored using React in various ways but haven't enabled anything yet
    • JS usage limited to basic interactions + CKEditor for the editor, which is a decision that goes back to the community raising hell over switching away from WYSIWYG - maybe opinions are different now
  • DB is MySQL 5.7, 2 CPU, 15GB (to hold DB in RAM), tables indexed but could use better maintenance
  • Redis, elasticsearch for data caching (including db queries), searches, feeds caching (1 CPU each)
  • gamedev.jobs and gamedev.social (mastodon) use the same DB/redis/elastic backends
  • stream.io for notifications (sometimes the source of slow page loads… looking at alternate solutions)
  • AWS SES for email

Site activity and traffic rank:

  • Forums (35%)
  • Projects (20%)
  • Blogs (15%)
  • Tutorials (15%, although submissions are barely a trickle)
  • Careers (10%)
  • Portfolios (5%)
  • News and others (< 1%)

Most people land on the home page (70% of all traffic). Graphics & GPU Programming is the most popular forum. Not a surprise, always has been.

Average ~80-120 new spam accounts per day, automatically filtered using a combination of techniques. Some still get through occasionally and post. Some false positives - sorry if that happened to you. I am notified of every account that is flagged.

Anything else of interest? 🙂

Things like image management (i.e. using webp), smarter use of resources, moderation tools, improved user settings, GDNet+ subscriptions, etc are known deficiencies that I get to as time and interest allow. As my full time career has evolved further, it's become challenging to keep up with things, which is why moving to something like Discourse is in the conversation.

Admin for GameDev.net.

This topic is closed to new replies.

Advertisement