Performance Analysis Of 4 Xoops Article Modules



The idea for this analysis really stems from the ideals I had behind the conception of the AMS module. These where to bring to Xoops a highly functional article management system, while being aimed squarely at providing a high level of performance and scalability. During the final stages of the development of AMS I read several posts on the Xoops forums asking questions regarding the best ways to get performance from their Xoops environment. This highlighted to me that their really wasn't a great deal of information available for users who wanted to use anything other than feature set as their primary selection criteria for choosing what modules they would run on their site.

This gave me the idea of creating a series of tests which I would then run a selection of article modules through on several different servers ranging from low end to high end, with an ever increasing amount of content. This also gave me an opportunity to display the strengths of AMS, as going on the shear amount of features available to the end user WF-Section wins over every module.

So the stage was set. I had a test script developed (thanks Jan ;-)) that would insert a definable amount of topics, and articles into each topic for the News 1.2.1, WF-Section 2.07 Beta, Articles 0.17 and AMS modules which I had chosen to use in the analysis. I also had several PC's lying around of varying specifications that were a good representation of computer hardware over the last 5 years. Next was to carefully define the environment as without a level playing field the results would loose their accuracy and usefulness as a tool.


The Test Script

As mentioned above, the test script was written specifically to insert a user definable amount of topics, and insert a user definable amount of articles per topic for all four modules to be used in the analysis. The test script was also configured to first remove all existing content when run so as to be sure the next test was been run on a clean slate. I decided to run a total of eleven tests, elevating the topics and articles per topic on each new test so as to gather data on each modules scalability. The details of each of these eleven tests are;

  • Base Test. 1 topic - 1 article per topic, total of 1 articles.
  • Test 1. 10 topic - 10 article per topic, total of 100 articles.
  • Test 2. 20 topic - 20 article per topic, total of 400 articles.
  • Test 3. 30 topic - 30 article per topic, total of 900 articles.
  • Test 4. 40 topic - 40 article per topic, total of 1600 articles.
  • Test 5. 50 topic - 50 article per topic, total of 2500 articles.
  • Test 6. 60 topic - 60 article per topic, total of 3600 articles.
  • Test 7. 70 topic - 70 article per topic, total of 4900 articles.
  • Test 8. 80 topic - 80 article per topic, total of 6400 articles.
  • Test 9. 90 topic - 90 article per topic, total of 8100 articles.
  • Test 10. 100 topic - 100 article per topic, total of 10000 articles.

    The Servers - Hardware

    To give the analysis more depth, I decided to run the series of tests across three different machines. I have named these the low end server, the mid level server and the high end server. These definitions are given as reference compared to the hardware the average Xoops user runs their Xoops environment on. Below is a list of the hardware specifications of these servers.

    Low End Server:

  • Pentium II 350 (3.5 x 100Mhz)
  • 256MB PC-100 SDR SDRAM
  • Intel BX chipset based motherboard
  • 6.4GB ATA-33 IDE HDD
  • 100MB PCI LAN adapter

    Mid Level Server:

  • AMD 1.2Ghz Athlon (12 x 100Mhz)
  • 512MB PC-100 SDR SDRAM
  • VIA KT133 based motherboard
  • 10.2GB ATA-66 5400RPM IDE HDD
  • 100MB PCI LAN adapter

    High Level Server:

  • Intel 2.8Ghz (14 x 200Mhz, quad pumped 800 Mhz FSB)
  • 1024MB PC-3200 (DDR400) DDR SDRAM
  • Intel 875P chipset based motherboard
  • 35GB SATA 10,000RPM IDE HDD
  • 100MB PCI LAN adapter

    The Servers - Software

    Another very important factor in getting relevant results was to ensure that each servers operating environment were kept identical. For this the first thing I had to do was carefully define what software was to be used which I broke down into categories;

  • Operating System: Windows XP Pro SP1
  • Webserver: IIS 5.1
  • MySQL Version: 4.1.7
  • MySQL Manager: MySQL Front 2.5
  • PHP Version: 4.3.8
  • PHP Configuration: Fast CGI, Turck MMCache & Zend Optimiser enabled, max script execution time set to 1 hour
  • Xoops Version:
  • Xoops Environment: GIJOE auto login hack enabled, and all page set to display no blocks, or other content (including Xoops ad banners) apart from the module being tested so as to ensure accurate execution time and MySQL query count recordings. Persistent connections were set to on, and the MySQL database was hosted on the same server.
  • Xoops Modules: News 1.2.1, WF-Section 2.07 Beta, Articles 0.17 and AMS 2.2. All installed using default preferences and settings.
    With this environment setup on each of the three servers, I then created shortcuts to each modules index, topic, article and admin views from each server on the computer I was to run the tests from. This was to ensure that I was accessing each section directly so as not to incur any additional overhead from the Xoops system itself.

  • Comments

    Anonymous's picture

    Re: Performance Analysis Of 4 Xoops Article Modules

    I think in fairness to you article I would like to show some screenshots of the most recent

    WF-Section Screenshots

    As you can see from the shots, we have not only brought down the amount of query used for each section (Please note that not all the queries are used by WF-Section) but this amount will not change with the amount of articles with the database.

    You may also note the amount of time it takes to render all the pages shown, you will see that this will take a load of the server compared to the beta version that you are using in the tests.


    Brashquido's picture

    Re: Performance Analysis Of 4 Xoops Article Modules

    Nice one Scott, looking forward to seeing the new version and updating the article with the new results :-) .

    Anonymous's picture


    good work

    Anonymous's picture

    Excellent Article

    It'd be great to see these tests repeated on a new install of xoops 2.3.1 (latest release) and with the latest versions of the modules.