Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Software The Internet

Migrating from Mambo to Another CMS? 52

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."
This discussion has been archived. No new comments can be posted.

Migrating from Mambo to Another CMS?

Comments Filter:
  • by billn ( 5184 ) on Thursday August 25, 2005 @05:20PM (#13401467) Homepage Journal

    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;
    • MOD PARENT UP (Score:3, Informative)

      by trompete ( 651953 )
      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.
    • by billn ( 5184 ) on Thursday August 25, 2005 @06:50PM (#13402295) Homepage Journal
      Just to throw some more light on what this does and how it helps. The query cache stores queries and result sets for tables that haven't changed. By allotting an amount of RAM to hold this, you can serve query results from the cache faster, since the DB only needs to look at the last modified timestamps on the tables involved in the query (a sweet time saver for complex joins on reference tables).

      mysql: show status
      Variable_name Value
      Qcache_free_memory 978408
      Qcache_hits 3603029
      Qcache_inserts 153341
      Qcache_queries_in_cache 2

      Hits greater than Inserts. The bigger that disparity, the more your query cache is working for you. 2 queries in my cache are saving me 3.6 million full queries. I'm bad at math, but..
    • I run a http://amitkulkarni.info/cms/ [amitkulkarni.info] site on shared server and get around same 20000 visitors/month ... I use drupal and its fantastic .. i use a shared server.... i did evaluate months back and it boiled down to plone and drupal .. plone has a steep learning curve with many new things to learn.

      drupal is php + mysql.

      Drupal is truly out of the box, 1 sql installation query and admin password and ur standard site is up and running. couple of links and ur right left top bottom navigation is filled.
  • 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

  • I'm very interested in anyone's experience with Slashcode [slashcode.com], as well.

    --
    If you support dishonest [doonesbury.com] and violence [startribune.com], don't say you are Christian.
    • a comparison between the two would be great.

      --
      If you support dishonesty [doonesbury.com] and violence [startribune.com], don't say you are Christian.
    • I looked at them earlier in the year, the fact that their front page hasn't been updated since Dec 20 2004 and that it's damn near impossible to get anyone to respond to any questions turned me off real fast.
    • We tried using slashcode for a very simple site (www.cyberlodge.org). Let me come out and say this:

      SLASHCODE IS THE SHITTIEST PIECE OF SHIT I HAVE EVER WORKED WITH.

      Now that I've said that... Slashcode looks like it was written by first year high school computer science students. Simply trying to change the look of the slashcode site is an exercise in futility, requiring messing with the ugly code with its interspersed look. If there are Design Patterns and Best Practices, then Slashcode would be the ant
    • Pain to install on a system you've got around doing stuff anyway, but I did a net install of Sarge right before it became -stable, added sshd and my fav editor, and then did apt-get install slash and it was up and running perfectly.

  • Cache (Score:5, Informative)

    by Bogtha ( 906264 ) on Thursday August 25, 2005 @05:28PM (#13401557)

    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 [mnot.net].

    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.

    • From what I know, the ex-Mambo devs who just departed from Mambo are working on getting Mambo fully working with ADODB so that you can use any database. Not just MySQL.

      Regarding caching, Mambo does have a few caching mechanisms. Of the Global Configuration options, you should try tweaking the "cache" settings. :-) I think it is turned off by default. You may also want to lengthen the cache time from 900 seconds (15 minutes) to something like 1800 or 3600 seconds.

      You may want to enable GZIP Page compression
      • From the article: The database is running on a P4 2.4Ghz machine with 1Gb of RAM, and the database server is on it's knees.

        This at least gives us the impression that his database is on a seperate physical machine. Enabling (or disabling) gzip will do absolutely nothing in this case. The compression will happen on the web server, thus making absolutely no difference to the database server. If they were running the same hardware, gzip will use more CPU time and thus make the situation even worse.

    • Re:Cache (Score:3, Interesting)

      by EvilMagnus ( 32878 )
      memcached is another option - livejournal and Wikipedia use that, it's light, easy to set up, and works very well on mostly-read MySQL sites.
    • Mambo actually has caching built in, IIRC. You just need to turn it on in the admin. Also, using something like eAccelerator or the Zend Performance Suite can also help things tremendously.
    • You can also cache the database queries if you're happy to mess with code.

      This introduction to memcached [debian-adm...ration.org] shows an overview; using memcached [danga.com] - used by /., Livejournal, etc.

  • 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.
    • This is total BS. At work we run a network of sites with 1.5M pageviews a month on a single machine using a custom-built CMS + engine in PHP and a MySQL DB. It's not which tools you use, it's how you use them. Caching, OO PHP and profiling all help.

      Truth be told, the server did literally catch fire earlier this year. But I'm reasonably sure it wasn't due to PHP...

  • 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.
  • the definition of "scalable" in 3...2....1...
  • by cniebla ( 158677 ) on Thursday August 25, 2005 @05:57PM (#13401790) Homepage
    Duh... I've been using a variety of CMSs since I started to realize that it's just silly to mantain too many HTMLs by hand. I've always seeking to achieve simplicity, ease of use, features I use every day, etc... and through these years I've found many shortcomings, setbacks and a very deep dissapointing of them all.

    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.

  • If you want more of a blog-styled CMS while retaining the ability to do static content and such, I would strongly reccommend Textpattern [textpattern.com].

    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.
  • by Seumas ( 6865 ) *
    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 [simplemachines.org] and TinyPortal [bloczone.net] and I have been very pleased with the performance and the scalability of both.
  • Was considering Slashcode as well.

    I have heard stories of the fabled Slashcode. Few mortals survive.
  • 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 [menttes.com].

    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.
  • (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.
  • by ttfkam ( 37064 ) *
    PHP and MySQL not scalable? Say it ain't so!
  • 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 i
  • Roxen (Score:2, Informative)

    by kfsone ( 63008 )
    The little known Roxen webserver ( http://www.roxen.com/ [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 (p
  • I too have had the same issue,and I was considering using dotnetnuke.Please advise.

Air pollution is really making us pay through the nose.

Working...