Migrating from Mambo to Another CMS?
Pikoro asks: "I put up a website a while back for personal use and I have been using Mambo to keep the site in order. One problem though. It seems that Mambo is not all that scalable. The website I started in January now gets almost 20,000 unique users a day and Mambo is very SQL heavy. The database is running on a P4 2.4Ghz machine with 1Gb of RAM, and the database server is on it's knees. Do I need to just upgrade the database server, optimize the MySQL installation, or switch to another CMS system. I would prefer the latter since I have had issues with Mambo and wanted to move to more of a weblog style format. Was considering Slashcode as well. Any ideas would be greatly appreciated."
Wouldn't changing to another CMS possibly cause you to lose readership? Seems like just upgrading the server is the way to go.
This sig kills fascists.
You're going to see the same problems with any CMS. *ALWAYS* tune your database first. Then decide if that's really your problem.
Not all CMS schemas are good. Not all come with indexing that makes sense for the usage. Most don't do any tuning of your database parameters, either.
Here's a subtle hint that will probably help:
set global query_cache_size = 1000000;
- billn
I had thought that Mambo was supposed to perform pretty well and "scale" reasonably well compared to some other comprable CMS/portals out there.
What version of Mysql... are you using any php caching/accelleration? Any regular caching?
FWIW I feel for you.
e
Build Your Own PVR/HTPC news, reviews, &
Cliffy you're ruining slashdots schtick! pay attention!
I'm very interested in anyone's experience with Slashcode, as well.
--
If you support dishonest and violence, don't say you are Christian.
Either install squid as a reverse cache, or use Apache's mod_cache. Unless Mambo is so broken as to make caching infeasible (some CMSes aren't exactly cache-friendly), this should take a load off the database.
Also, make sure you aren't screwing up public caches anyway. Things like serving CSS through PHP for compression etc aren't brilliant ideas, and you can get decent load reduction by setting expiry times in your HTTP headers. Mark Nottingham has written a good caching tutorial.
Er, just a thought, but you have actually profiled and made sure that it's the database, right? A lot of people will say stuff like that based on nothing more than guesswork. Measure before optimising, or you're just wasting your time.
Bogtha Bogtha Bogtha
Not to generalize everything to death and throw blanket statements around, but most if not all of the PHP-based CMS engines I've looked at aren't designed for scaling to high traffic loads. Part of the problem is PHP, most of it is application design.
Read that again: It seems that Mambo is not all that scalable.
Translation: I'm having scalability problems that I don't know how to fix.
I want to delete my account but Slashdot doesn't allow it.
the definition of "scalable" in 3...2....1...
Build Your Own PVR/HTPC news, reviews, &
The last packaged CMS I used was PLOG, I've even recommended the thingie here on Slashdot, but the thing just was smashed with too many comment-SPAM, and my google ranking hit the bottom (watch the trackbacks!!!). Even worst: when I decided to upgrade to the last version, it doesn't work with the last version of PHP, so I make the change and it took me about 1 week to write my own CMS.
The first thing I realized was that I've to keep all the past URIs working (so all of the search results keep coming to my site, to the articles they mean). So all the scripts check the way they're called to render the appropiate content. This is a pretty serious matter: if you switch a CMS there's a BIG chance your site it's going to plummet in search-site rankings, unless you can "emulate" the previous CMS behaviour.
Next: there's no-way to beat static VS dynamic performance, so unless you have the bucks, your CMS must render static content if you have too many hits (not an issue for me, but I'm working on it, and expect to have this feature ready in this week).
I think the CMS wars are a little out of hand when it comes to "easyness" - "features" - "performance". There are not simple CMS available anymore. And that's a shame.
I really doubt you can switch your CMS to another without loosing all hits stored in current search engines DBs without emulation, and I know no-one emulate other CMSs.
Your road looks pretty bad if you can't write programs, mess with URI rewriting and MySQL/HTTPd tweaking. Either you assume the losses in switching, or get your hands dirty plotting the best way to go.
Carlos Niebla
a pro-g writer is sitting on an inflatable doughnut, because these 'chance of happening' stats were pulled straight out of his ass.
I set that parameter on a vanilla install of MySQL 4.0.20, and website load times decreased by 80%. This site was doing about 5,000 hits a day.
More than enough BS
Post your site here on slashdot, that should help.
If you want more of a blog-styled CMS while retaining the ability to do static content and such, I would strongly reccommend Textpattern.
It's VERY lightweight, and elegant in its design, and doesn't hit the database anywhere nearly as hard as Mambo theoretically does.
there's also a bunch of up and coming ruby-based weblogs/cms-es, most of which do Ajax/Web2.0/Whatever-you-want-to-call-it
I haven't used any of them, but I hear great things about the apps being built on top of ruby-on-rails.
-- If you try to fail and succeed, which have you done? - Uli's moose
You need a lot more ram. Then fine-tune your server so that it will use that ram efficiently.
Also, you need to look into the queries that are being made to the database. One database isn't necessarily going to be any more efficient with its SQL queries than another just because more people like it.
For my sites I use SMF and TinyPortal and I have been very pleased with the performance and the scalability of both.
I read Slashdot for the headlines, because the headlines, unlike the articles, are usually original and never duplicated
a comparison between the two would be great.
--
If you support dishonesty and violence, don't say you are Christian.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Was considering Slashcode as well.
I have heard stories of the fabled Slashcode. Few mortals survive.
Direct away from face when opening.
Hello
A month ago i worked on a comparison between mambo, lenya and plone and i'm looking for feedback, you can read at www.menttes.com/contribs/cms.html.en.
Regards
r.
Like the subject says... if you really wanted to consider another CMS, I would recommend e107.. Not too sure if its going to help your database load, but its still very versatile. As per all the other replies, looks like a systems upgrade might be in order before you do consider another CMS.
Just me
(1) Turn on caching of pages in Mambo
(2) Realise that Mambo is only useful as a very low-traffic blog software that takes hours to do what you could do with static pages in minutes.
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
PHP and MySQL not scalable? Say it ain't so!
- I don't need to go outside, my CRT tan'll do me just fine.
My company has deployed serveral customized Mambo installations over the last year. Mambo can be pretty chatty with the database, though I found a couple of things to be really helpful:
;)
1) (as pointed out by other posters here) make sure that mySQL's query cache is enabled with a large amount of backing store.
2) I trivially hacked the mosDB class to time every DB call and then log the count of SQL calls and most expensive single call on each page load. I found tihs pretty useful in finding bottlenecks in individual statements.
3) Once are where Mambo is a bit of a db-call pig is dealing with the mos_session and mos_core_acl_* tables. You might investigate the idea of creating mos_session as a MEMORY table. I also recall the the indexing on the acl tables is suboptimal out of the box..
I would be willing to put the SQL profiling code patch out there if anyone were itnerested in it (it's all GPL
(sample output looks like:
10001V Starting page processing: option = "" Fri-26-Aug 09:30:39 8729
10011I Anonymous session (gid = 0) Fri-26-Aug 09:30:40 8729
52003I Worst SQL time 6.7230 ms ("UPDATE mos_
core_log_items SET hits=(hits+1)WHERE time_stamp='2005-08-26' AND item_table='#__content' AND item_id='49'")
Fri-26-Aug 09:30:40 8729 52004I 19 SQL statements executed in 13.4980 ms
Fri-26-Aug 09:30:40 8729 20001V Finished page processing: 472.3660 ms
elapsed, 0.7430 ms logging overhead, 137.9790 ms user, 5.9990 ms system
)
-- Have you ever imagined a world with no hypothetical situations?
The little known Roxen webserver (http://www.roxen.com/) has an excellent CMS. It uses CVS to manage workflow and content revision, showing only the trunk-head to regular site visitors. It uses server-side XSLT and Roxen's 10 year mature caching systems. Roxen has had built-in browser-based "GUI" administration and configuration since it was called Spinner back in the early days of the web. It's only downfall has been that it was written in "uLPC", the language of MUDs, rather than pure "C".
The webserver (platform) is free/OpenSource (http://download.roxen.com/ and includes one of the easiest web-scripting languages around, RXML. The CMS is freely available but costs for commercial use.
-- A change is as good as a reboot.
I too have had the same issue,and I was considering using dotnetnuke.Please advise.