@phenomlab sure, it’s
https://proton.me/family
We currently have a site that uses a flarum. The number of instant visitors is around 2K. Every minute 15-20 new topics are opened and hundreds of posts are written. Our 32 CPU 64 GB VDS server often has difficulty handling this traffic. Moreover, we cannot use basic forum plugins such as websocket sitemap. We are planning to switch to NodeBB or Discourse.
Can you handle this discourse better or NodeBB?
Our database size is about 16GB. Since NodeBB is written with NodeJS, it needs to be more performant, but I haven’t been able to test it yet.
@kurulumu-net said in Which gets more visitors:
Our 32 CPU 64 GB VDS server often has difficulty handling this traffic.
This is quite concerning. There’s no way on this planet that a server with that power is going to be overwhelmed by a forum - even with that many visitors. What else is running on this server ?
Moreover, we cannot use basic forum plugins such as websocket sitemap
Can you elaborate more on this point ?
Our database size is about 16GB. Since NodeBB is written with NodeJS, it needs to be more performant, but I haven’t been able to test it yet.
It’s not really feasible to compare NodeBB with Flarum in the structural sense, as they are completely different architectures. On the one hand, PHP is always going to be slow owing to it synchronous nature - for example, tasks are executed sequentially, meaning there is always going to be a bottleneck of sorts whilst other queued tasks have to wait for the one in front to complete before they are processed.
Sure, a queuing system can help here (as Flarum has introduced) although the issue with PHP still remains - with a queue, you only “cut” the wait time, not completely eliminate it.
NodeJS works asynchronously, is multi-threaded, and will process as many tasks as you throw at it. It is way more efficient than PHP will ever be owing to it structure. As NodeBB and Flarum are both SPA based applications, NodeJS wins hands down in the speed criterion. Remember that PHP needs to parse and process an entire page before it can be displayed, whereas NodeJS doesn’t.
Technologies (in my experience) such as Varnish, Redis etc., do not really make that much difference if the PHP code is substandard, or MySQL queries are poorly executed with little or no indexes.
MongoDB on the other hand, being NoSQL operates at a superior speed to MySQL - a relational database simply cannot match one without relationships, but handles data in groups. GRAV for example moved away from database structures to flat file storage as access speeds were superior. Moreover, NoSQL does not suffer from the same SQL attack vectors that relational databases do, and this makes them far more difficult to break into (not impossible - nothing ever is).
Discourse uses PostGres and Ruby on Rails. Additionally, unless you are willing to use docker containers, there is little to no support for your installation as the devs won’t entertain it. In my mind, this alone makes Discourse far less appealing for those not wanting to carve their servers into segments. Great for security, not so great for overall administration.
Because NodeBB uses MongoDB (NoSQL), it is structured completely differently to MySQL. If you have an existing site, don’t expect to be able to simply convert it from Flarum to NodeBB, as no current conversion exists, and when I asked the question of the NodeBB devs around providing conversion as a service, their quote was in excess of USD 10,000 for a database that was no more than 100Mb in size
Flarum, like all other forum software fits very much into the “Hotel California” paradigm - “You can check out any time you like, but you can never leave…”
This part taken from https://sudonix.com/topic/16/what-is-the-reason-for-choosing-node-bb-over-flarum/21?_=1638102580036
What I mean by this is that you are buying into an ecosystem that offers no easy or readily available path out. If you plan to stay for the long term and there is a clear progression path from that project meaning it’s a viable route, then great.
However, all of these platforms (except WordPress perhaps) have a way of ingesting data from other sources, but little to no way at all of taking that data somewhere else. This is nothing against any of those platforms, but the fundamental issue here is that whilst it’s probably easy to move into another product, it’s a different story altogether when you want to leave and take your data with you.
Moving from Flarum to NodeBB isn’t a simple affair. if you look at
https://metabullet.com
which was based on Flarum before I decided to move, then you’ll see what I mean. I just “started again” under NodeBB. With a 16Gb database and thousands of members, this is never go to be a simple affair, and it’s likely the cost to move out and keep your data will be a very expensive one - ultimately, prohibitive without making some form of sacrifice - usually in the sense of leaving data behind in a legacy domain, and reinventing the wheel. For me, this wasn’t too tough as Metabullet was in it’s infancy, but for a mature site…
@phenomlab said in Which gets more visitors:
Bu sunucuda başka neler çalışıyor?
It’s a stand-alone forum. When we turn off the search feature in Flarum (hide the search form with CSS) resources become plentiful quickly. CPU 20%, Ram 40% circulate. But when the search feature works, the CPU immediately swells to 100% and the site dies.
According to my research there is a script for Discourse migration. But it is mostly for small scale sites. It does not seem possible to move a site with a huge database like us. At least through this script.
I had no idea that the NodeBB migration could be this expensive. Terrible
@kurulumu-net
But when the search feature works, the CPU immediately swells to 100% and the site dies.
That sounds very much like a MySQL issue to me. I’m aware that this is an existing issue in Flarum in relation to performance, and clearly, it’s still not fixed.
I had no idea that the NodeBB migration could be this expensive. Terrible
Yes, exactly that. To me, it would appear that I’d need to finance the development and subsequent build of any package, then they could resell the same thing to someone else without the need for any additional effort on their part = high profit margin. The issue I have with this model is that I’d foot the (somewhat huge) bill for what amounts to a minor upgrade for me, but quite the money spinner for NodeBB.
Here the link to that thread