Slashdot Mirror


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."

52 comments

  1. Changing to another CMS by cypherz · · Score: 0

    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.
    1. Re:Changing to another CMS by hoggoth · · Score: 2, Insightful

      Why on Earth would his readership care what CMS engine is running behind his site?
      They are reading articles and comments.
      If he switched from MySQL to PostGreSQL would he lose readership as well?

      I assume he's not going to be an idiot and bring his site down while he installs and configures his new CMS engine.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
    2. Re:Changing to another CMS by enrico_suave · · Score: 3, Informative

      "Wouldn't changing to another CMS possibly cause you to lose readership? Seems like just upgrading the server is the way to go."

      I ASSume he'd import/export over the old entries/articles to the new CMS, and probably create some apache url rewrites to make sure links to the old content/link style redirect to the "new" version.

      *shrug*

      --
      Build Your Own PVR/HTPC news, reviews, &
    3. Re:Changing to another CMS by cypherz · · Score: 2, Insightful

      OK I don't know much about CMS's but wouldn't it act differently? Possibly different feature sets and look and feel? How would /. readers feel if suddenly the site wasn't running slashcode? (OK, some might rejoice...) But it would look and act differently if it were running another CMS wouldn't it?

      --
      This sig kills fascists.
    4. Re:Changing to another CMS by fbjon · · Score: 1
      How would /. readers feel if suddenly the site wasn't running slashcode?

      I cannot accept any other $deity than bgcolor=#006666;.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    5. Re:Changing to another CMS by prezkennedy.org · · Score: 1

      If it looked the same and it was running XOOPS or Mambo or anything else, I quite frankly wouldn't care.

      --
      It started back in Team Fortress Classic
    6. Re:Changing to another CMS by XO · · Score: 1

      i'd rejoice if it had more sane HTML, that saved a lot of bandwidth.

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    7. Re:Changing to another CMS by petermgreen · · Score: 1

      yes but would you rejoice if it had a totally new set of quirks annoyances etc that were very different from those you were familiar with.

      its like moving from win to linux sure they can be made to look the same on the surface but as soon as you actually try to do stuff you will still run into and get annoyed by the underlying differences

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    8. Re:Changing to another CMS by XO · · Score: 1

      uh.. I read slashdot, and occasionally click reply.. that's about it.. I don't use whatever else it does.. I tried playing around with some things for a while, but they were totally unintuitive, so i just went to reading and writing the occasional reply.

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  2. Evaluate, evaluate, evaluate. by billn · · Score: 4, Informative


    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
    1. Re:Evaluate, evaluate, evaluate. by billn · · Score: 4, Informative

      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..

      --
      - billn
    2. Re:Evaluate, evaluate, evaluate. by proudlyindian · · Score: 2, Informative

      I run a http://amitkulkarni.info/cms/ 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.

      It has builtin modules + addon modules like (guestbook, polls, blogs, custom content type) which are up n running in 3 clicks and firing an SQL query.

      And all this time i havent opened a single php file for editing !!!

      Their node concept is v powerful. basically a node is a content type presentation.

      They have search engine friendly URLs

      Almost all CMS have these features but i found drupal super simple to configure.

      Their documentation is exhaustive too

  3. I would imagine more info would be needed by enrico_suave · · Score: 1

    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, &
  4. "from the dept." by Anonymous Coward · · Score: 0

    Cliffy you're ruining slashdots schtick! pay attention!

  5. What's up with Slashcode? by Futurepower(R) · · Score: 1


    I'm very interested in anyone's experience with Slashcode, as well.

    --
    If you support dishonest and violence, don't say you are Christian.

    1. Re:What's up with Slashcode? by DigitalReverend · · Score: 1

      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.

      --
      I read Slashdot for the headlines, because the headlines, unlike the articles, are usually original and never duplicated
    2. Re:What's up with Slashcode? by hexghost · · Score: 2, Funny

      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 antithesis of them.

    3. Re:What's up with Slashcode? by i.r.id10t · · Score: 1

      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.

      --
      Don't blame me, I voted for Kodos
    4. Re:What's up with Slashcode? by XO · · Score: 1

      not only looks like, i'd say that that's actually the case. *yes, i know the authors*

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  6. Cache by Bogtha · · Score: 4, Informative

    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
    1. Re:Cache by Deffexor · · Score: 1

      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 to speed up the sending of data. I don't know how much CPU load GZIP Page comp causes. Under a big load, it might actually slow down your machine if your DB server is on the same machine as the web server... Though I'm not certain about this. You may just have to try it both on and off.

    2. Re:Cache by EvilMagnus · · Score: 2, Interesting

      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.

      --
      -EvilMagnus
    3. Re:Cache by Nos. · · Score: 1

      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.

    4. Re:Cache by autarkeia · · Score: 1

      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.

    5. Re:Cache by stevey · · Score: 1

      You can also cache the database queries if you're happy to mess with code.

      This introduction to memcached shows an overview; using memcached - used by /., Livejournal, etc.

  7. include mod_blanket.h by DamienMcKenna · · Score: 1

    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.

    1. Re:include mod_blanket.h by AlXtreme · · Score: 1
      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...

      --
      This sig is intentionally left blank
    2. Re:include mod_blanket.h by C.+E.+Sum · · Score: 1

      > This is total BS.

      That's weird, I thought he was mostly blaming coders, not PHP.. just like you.

      --
      -- Have you ever imagined a world with no hypothetical situations?
  8. It seems that Mambo is not all that scalable. by Gothmolly · · Score: 1

    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.
  9. pedantic response about by enrico_suave · · Score: 1

    the definition of "scalable" in 3...2....1...

    --
    Build Your Own PVR/HTPC news, reviews, &
  10. I've written my own CMS by cniebla · · Score: 5, Informative
    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.

    1. Re:I've written my own CMS by trompete · · Score: 1

      Well, the nice thing about URL rewrites is that you control the rewrite rules and can rewrite them to map to your new content.

  11. somewhere out there by brandanglendenning · · Score: 0

    a pro-g writer is sitting on an inflatable doughnut, because these 'chance of happening' stats were pulled straight out of his ass.

  12. MOD PARENT UP by trompete · · Score: 2, Informative

    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.

  13. Post your site! by Anonymous Coward · · Score: 0

    Post your site here on slashdot, that should help.

  14. textpattern by moosesocks · · Score: 1

    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
  15. RAM by Seumas · · Score: 1

    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.

  16. SMF & TinyPortal by DigitalReverend · · Score: 1

    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
  17. MOD PARENT UP by hummassa · · Score: 1

    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
  18. /code by St.+Arbirix · · Score: 1

    Was considering Slashcode as well.

    I have heard stories of the fabled Slashcode. Few mortals survive.

    --
    Direct away from face when opening.
  19. Here's my tests by R0ver · · Score: 1

    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.

    1. Re:Here's my tests by stuffduff · · Score: 1

      A spell checker would be nice, you have several typos. Other than that, it appears that the site is rendered in plone; and that pretty well summs it up.

      --
      "Can there be a Klein bottle that is an efficient and effective beer pitcher?"
  20. If all else fails, e107 isn't a bad idea... by Praedon · · Score: 1

    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
  21. steps you should take by XO · · Score: 1

    (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/
  22. What? by ttfkam · · Score: 1

    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.
    1. Re:What? by Anonymous Coward · · Score: 0

      Confusing scalability with using 10x more resources than necessary to run your bloated (Java most certainly) code? Say it ain't so!

    2. Re:What? by ttfkam · · Score: 1

      Java is one of my languages. So is C, C++, Perl, Python, JavaScript, etc. By the way, the important thing is the algorithms, not the language. VBScript is faster than assembly if the VBS uses a (O)logn and the assembly uses a (O)n^2 on a sufficiently large dataset.

      I wasn't just talking about the resource (memory and CPU) scalability; I was talking about the programmer and team scalability. Hmmm... let's see: A loosely-typed scripting language performing tasks for which it was never designed connecting with a database engine that by default silently accepts invalid data. Over time this Big Ball of Mud design pattern, despite the valiant efforts to put checks in the code that your language and database should have done in the first place, will collapse under its own weight as new programmers come into the project.

      A single-person or closely-knit programming team? You can probably get by. In the real world where people quit, are rehired months later, new employees of varying ability and habits come on, and late nights with a deadline looming, Big Balls of Mud will start to loose its shape.

      I know. I'm a code snob. I actually want my programming languages to be consistent, have a minimum feature set (where are PHP namespaces again?), etc. I want my database engine to -- oh, I don't know -- only accept integer values in an integer field. Think of strict column type checking as a bunch of assert()s in your app. When you do the right thing, it doesn't cost much. When you do the wrong thing, because we all slip at 4:30am, it can show you exactly where the bug is.

      That said, PHP 5 and the new MySQL are much, much better than the previous versions. Too bad PHP/MySQL coders keep saying, "Why do I need all that extra stuff?" (Like type checking and code encapsulation.)

      PostgreSQL is still better. ;-)

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
  23. Optimizing Mambo (for the adventurous) by C.+E.+Sum · · Score: 1

    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?
  24. Roxen by kfsone · · Score: 2, Informative

    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.
  25. reg:CMS by slashdotpopeye · · Score: 1

    I too have had the same issue,and I was considering using dotnetnuke.Please advise.