• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF forum with > 1k of logged in members ?

semprot

Active member
#1
Anyone knows any XF forum with > 1k of logged in online members at on time ? :)
(not heavily customized XF like DigitalPoint which i'm sure Shawn modifies his XF a lot)
 

RobParker

Well-known member
#2
We've had 5000+ users online before but that's really a rare peak (it's a football/soccer forum and gets very busy towards the end of the transfer window). For most of the summer months we have 2k+ members online.

XF handles things fine but some of the addons really struggle. When we get very busy we need to disable XenPorta and Post Ratings, both of which don't handle the traffic very well.
 

semprot

Active member
#3
We've had 5000+ users online before but that's really a rare peak (it's a football/soccer forum and gets very busy towards the end of the transfer window). For most of the summer months we have 2k+ members online.

XF handles things fine but some of the addons really struggle. When we get very busy we need to disable XenPorta and Post Ratings, both of which don't handle the traffic very well.
So do you disable some addons on peak traffic, and reneable it again when the peak passed?
 

RobParker

Well-known member
#4
So do you disable some addons on peak traffic, and reneable it again when the peak passed?
Yep, our traffic is quite predictable, i.e. I know that 31st August will be insanely busy.

Typically I leave everything turned on until our load starts to get a bit high and then disable one of the addons I know doesn't cope well and the load will instantly drop down.
 

RobParker

Well-known member
#6
Which post ratings are you using @RobParker as we aren't having any issues with the one from Luke.
I'm using Luke's and yes, it definitely has issues but we only see them under heavy traffic. The server load can go ridiculously high, I disable the addon and it drops back to nothing. I've done that process something like 50 times over the past 2 years (enough to be convinced that it's definitely that addon that causes it).

I think Luke looked into it at one stage but wasn't able to find the cause and it's quite hard to debug as there needs to be a lot of traffic for it to happen.
 

TheBigK

Well-known member
#7
Can someone tell me how does CTA Portal handle the traffic? I'm almost convinced that I need to ditch XenPorta and switch to CTA Portal. We've seen issues with load when the traffic goes high. I wasn't aware that Luke's addon has issues (under heavy traffic).

Would it help if we show post ratings only to the users who are logged in?
 

RobParker

Well-known member
#8
Can someone tell me how does CTA Portal handle the traffic? I'm almost convinced that I need to ditch XenPorta and switch to CTA Portal. We've seen issues with load when the traffic goes high. I wasn't aware that Luke's addon has issues (under heavy traffic).

Would it help if we show post ratings only to the users who are logged in?
With XenPorta we found it was only certain blocks that caused performance issues. I can't remember off the top of my head which ones but maybe try disabling them one at a time and noting the results.
 

dawg

Well-known member
#14
I dont know if being logged in matters or not but i have over 1100 people online right now. I have had 15k people online before with no issues whatsoever. I have also used @Brogan CTA featured threads with no problems whatsoever.
 

Xon

Well-known member
#15
I'm using Luke's and yes, it definitely has issues but we only see them under heavy traffic. The server load can go ridiculously high, I disable the addon and it drops back to nothing. I've done that process something like 50 times over the past 2 years (enough to be convinced that it's definitely that addon that causes it).

I think Luke looked into it at one stage but wasn't able to find the cause and it's quite hard to debug as there needs to be a lot of traffic for it to happen.
It uses a lot of template hooks rather than the Template Modification System, and the killer is likely how it counts ratings is particularly heavy on the DB.

@Luke Foreman doesn't have it using a cached field on a per-user row. Instead it runs SQL to count per rating per user totals everytime someone looks at a user member card:
Code:
(select sum(count_received) from dark_postrating_count where user_id = user.user_id and rating in (".implode(",", $positive).")) as positive_rating_count,
This isn't as bad as counting every instance of the rating, but it could be better.

:edit: Looking closer, it doesn't do much caching of the ratings list like stock XF does when reading the post, so it is recomputing the list of Ratings per post each time. Ultimately it is adding a bunch of joins and calculations rather than reading a pre-computed list for a post's ratings.
 
Last edited:

Luke F

Well-known member
#16
It uses a lot of template hooks rather than the Template Modification System, and the killer is likely how it counts ratings is particularly heavy on the DB.

@Luke Foreman doesn't have it using a cached field on a per-user row. Instead it runs SQL to count per rating per user totals everytime someone looks at a user member card:
Code:
(select sum(count_received) from dark_postrating_count where user_id = user.user_id and rating in (".implode(",", $positive).")) as positive_rating_count,
This isn't as bad as counting every instance of the rating, but it could be better.

:edit: Looking closer, it doesn't do much caching of the ratings list like stock XF does when reading the post, so it is recomputing the list of Ratings per post each time. Ultimately it is adding a bunch of joins and calculations rather than reading a pre-computed list for a post's ratings.
The query you've highlighted there is fine, it's just a sum across ~10 rows. In my opinion further caching into a total of positive ratings per user would be micro-optimisation

There is some room for improvement with caching ratings on posts, but it still performs well enough in most scenarios as long as the mysql server is well configured and all the indices fit in ram. That being said, it is definitely something I will address in the future - the query is quick relative to an IO-based query, but it's nowhere near as CPU efficient and is likely the cause of @RobParker 's issue