1
birdseed
Re: XOOPS for high traffic site?
  • 2007/2/20 17:13

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi Christian,

Okay, I see the point: It is hits per day, not pages per day which you were talking about. Thank you for showing the webalizer statistic. Hits are simply request which the webserver receives. This can be graphics, download files etc. Pages per day is the relevant criteria here - quasi the amount of php pages. You have around 60.000 pages per day. We have around 80.000 pages per day which is comparable to xoops.fr. If you say that you don't have any performance problems, I assume the reason is that the amount of forum posts is less (about 80.000 instead of 650.000).

[quote]
what a "kind" answer...
Are you sure of you own statistics ?
[/quotes]

Yes. Webalizer. Was my answer unkind in any form?

[quote]
Or anyone else - I'm very interested in changes that you made in XOOPS and modules ...
[/quotes]

If there was a simple switch "make XOOPS faster", the developers would already have turned it on. There are some standard ways like caching blocks or installing eAccelerator. Another thing is to optimize slow queries. Usually, i expect that well developed modules already had done this.

greetings
MK



2
birdseed
Re: XOOPS for high traffic site?
  • 2007/2/17 17:37

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Quote:

Xoops France - January 2007
average hits by days : 260.257
Total for january : 8.067.975


Hi

Are you sure that these are real page requests? This would mean that you get 8 Mio. banner Impressions per month. Please make sure that this number is correct. You have about 1 posting in 20 minutes, we have about 10 times more postings. Where do the requests come from?

greetings
MK



3
birdseed
Re: XOOPS for high traffic site?
  • 2007/2/17 17:28

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi

Nice Topic. I am the webmaster of homerecording.de. At the moment, we have about 2 Mio. Page hits per month. There are always about 70-100 people online. We have real performance problems with xoops...but....

The reason is not XOOPS itself. Although my opinion is that the XOOPS core uses too much abstraction rather than trying to safe every unnecessary php command (like the XoopsCriteria and the XoopsObject, for example), it scales very well. There is a constant time of 2-3 seconds needed to run mainfile.php (which is in fact the core). And if php had something like a global object cache, you could even do more performance enhancements. Smarty as the template system is another problem, for example, there is a very bad concept of plugin functions. You can load plugins at runtime, but this is a huge overhead. There should be much more compile-time functiond. But it the end, the core is okay, it uses caching whenever possible, and most queries are finished in microseconds. moreover, it provides a good infrastructure like the MySQL query window, the block caching and the sanitizing of possible register_global injection variables.

The real problems come from the XOOPS modules. CBB, for example, is our "Sorgenkind": We have 650.000 posts in our database. There are many joins which are poorly optimized, we had to manually add missing indices (for example, there was no search index on post_time). The problem is that no one really took the time to optimize those queries. Optimizing a query is a science itself. You would have to look which indices are used and then try to rebuild a query to use better or just other indices. The typical XOOPS sites are rather small communities. They demand many features, performance is not the critical point. Try to ask: Is module X scaling with 100.000 hits per day? - you wont get many answers. I don't complain here, no one gets paid for anything.

Another this is that CBB doesn't implement fulltext search, we had to implement it ourself. Otherwise, you would have to wait for a long time (25 to 30 seconds per request) because CBB uses LIKE '%...%' which is a bad idea for 650.000 posts!!!

There are other modules like the "dictionary" glossary module where there is a word replacement function which is so poor that it will definitely kill your server. AMS - another example - doesn't work without register_globals, we had to fix that.

At the moment, we have a 3.4 Ghz root server with 2 GB RAM. When our contract has ended in October, we will migrate to a bigger server, a dual core with 4 GB as the MySQL backend and a small one as the php frontend. Hope this will solve our problems.

In my opinion, php itself is not the best language for huge websites. There is no type safety, no compiler, no global object cache. Java or .NET are IMHO better candidates. MySQL is a good database server, like Oracle, Sql Server and even Microsoft Acess, but like every other db server, it is not fast "out-of-the-box", every query has to be tested and optimized in order to be fast.

If you expect 500.000 hits per Day, you should really start coding your own customized website system. ASP.NET and C# is a very good combination, other people swear on Java and jsp. Both systems already have their own well-integrated template system, type safety, caching, an application server layer and so on.

greetings
Michael



4
birdseed
Re: Smarty Templates - Auto Recompile
  • 2006/8/5 10:19

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi

In order to have auto compilation for 2.2.4, you have to make a hack...

In class/smarty/plugins/resource.db.php

Change every line

if ($conf_theme != 'default') {

to

if(!in_array($conf_theme, 'default', 'your theme'))

This allows to keep 'your theme' templates in the modules/xxx/template dir

greetings
bsm



5
birdseed
Re: Which PHP editors are best?
  • 2006/8/5 10:10

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi

The Eclipse php extension is neither unable to provide Intellisense for the XOOPS classes, or I missed something.

In Zend Studio, all php Files included in a project are analyzed on startup and the Intellisense Database is built by this information. Moreover, global variables are analyzed by examining the include path (by opening a file which includes mainfile.php, $xoopsTpl, $xoopsUser and $xoopsDB are provided by intellisense). Not so in eclipsephp...

The DBG Debugger doesn't work for php 5.1.4.

First impression: Given eclipsephp a chance, but it couldn't stand against zend studio.

greetings
birdseedmusic



6
birdseed
Re: direct friend can not adds user
  • 2006/8/2 9:49

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi Rob,

I also appreciate your Idea to reimplement DirectFriends. DirectFriends is total crap in terms of the underlying source code. I always wonder why people implement things without *ANY* basic understanding of how a module should be constructed in xoops.

I'm looking forward to seeing the final social networking module released soon.

greetings
birdseedmusic



7
birdseed
Re: hack to post the groups
  • 2006/8/1 23:26

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


//Gruppen ermitteln
    
$user_groups = array();
    
$member_handler =& xoops_gethandler('member');
    
$group_list $member_handler->getGroupList();
    foreach(
$thisUser->getGroups() as $group_index)
      
$user_groups[] = $group_list[$group_index];

    
$xoopsTpl->assign('groups'$user_groups);


we did the same thing on our site. this is the code.

greetings
birdseed



8
birdseed
This will make the cbb Forum search > 100 times faster
  • 2006/7/26 10:30

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


Hi

A MySQL FULLTEXT index will make the search in a big forum (>300.000 postings) faster (and btw. fix a huge denial-of-service security hole which can be used to block a whole XOOPS site). MySQL >= 4.1 is required.

1. Go to modules/newbb/include/search.php

replace the switch($searchin) {....} through the following:

switch ($searchin) {
           case 
'title':
               
$sql .= " AND (MATCH(p.subject) AGAINST('$queryarray[0]' IN BOOLEAN MODE)";
               for(
$i=1;$i<$count;$i++){
                   
$sql .= $andor ";
                   
$sql .= "MATCH(p.subject) AGAINST('$queryarray[$i]' IN BOOLEAN MODE)";
               }
               
$sql .= ") ";
               break;

           case 
'text':
               
$sql .= " AND (MATCH(pt.post_text) AGAINST('$queryarray[0]' IN BOOLEAN MODE)";
               for(
$i=1;$i<$count;$i++){
                   
$sql .= $andor ";
                   
$sql .= "MATCH(pt.post_text) AGAINST('$queryarray[$i]' IN BOOLEAN MODE)";
               }
               
$sql .= ") ";
               break;
            case 
'both' :
            default;
               
$sql .= " AND ((MATCH(p.subject) AGAINST('$queryarray[0]' IN BOOLEAN MODE) OR MATCH(pt.post_text) AGAINST('$queryarray[0]' IN BOOLEAN MODE))";
               for(
$i=1;$i<$count;$i++){
                   
$sql .= $andor ";
                   
$sql .= "(MATCH(p.subject) AGAINST('$queryarray[$i]' IN BOOLEAN MODE) OR MATCH(pt.post_text) AGAINST('$queryarray[$i]' IN BOOLEAN MODE))";
               }
               
$sql .= ") ";
               break;
        }


2. Use phpmyadmin to add a fulltext index to the following columns:

YOURPREFIX_bb_posts.subject
YOURPREFIX_bb_posts_text.post_text

(go to the table structure and press the "T" Button in the column to add a Fulltext search index). This will take up to 5 minutes for big forum tables.

3. Lower the min length for a search word to 4 in the XOOPS preferences.

greetings
birdseedmusic



9
birdseed
Re: Is their a module which allows you to create....
  • 2006/7/26 10:15

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26





10
birdseed
Re: Is there still a contact us module which is being...
  • 2006/7/26 10:13

  • birdseed

  • Just popping in

  • Posts: 59

  • Since: 2005/2/26


That's right, liaise has no bugs. I couldnt discover any.




TopTop
(1) 2 3 4 5 »



Login

Who's Online

136 user(s) are online (46 user(s) are browsing Support Forums)


Members: 0


Guests: 136


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Oct 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits