Why is LS1Tech so SLOW???
An old AMD Athlon 1800+ with 1.5GB mismatched ram versus a dual 3.0GHz XEON with 4 gigs of ram. I'd LOVE to be able to build an Opteron box
BTW - any good tutorials on getting a struts app up and running? You've gotta use Ant to compile them into a .war file before deploying them in the webapps folder right? I'm using Apache Tomcat server.
Then there's performance tuning differences between database engines. One of the reasons why switching over to even InnoDB on MySQL doesn't pan out well, is the use of the ever-so-common SELECT COUNT(*). With the MyISAM storage engine, this isn't a costly call at all -- it executes instantaneously because with table locking the number of records is always the total number of rows in the table. With a storage engine that supports multi-level concurrency, you could have any number of records in flux -- inserts, deletes, etc. So, a COUNT(*) is very costly - especially on large tables. vBulletin makes heavy use of COUNT(*) as well, almost every page in fact. That will have to be rewritten as well.
The only "easy" solution I've come up with, and its one I may very well do first, is to segment the site. Basically turn the forums into a group of forums. vBulletin stores all the posts in one table, and all the threads in one table. That means we have over 3 million rows in the post table. It also means the whole thing is locked on updates, which is why the entire site freezes up when locks are held. By segmenting, I can reduce that to one pair of post/thread tables per group of forums, or possibly per forum. That would reduce the number of rows considerably, and severe lock times would only affect one or a small set of forums.
I have a resource intensive query that will tally up the most commonly indexed words in your index table which will allow you to prevent some useless words from being indexed by putting them in badwrods.php and to go ahead and remove them from the search index which will have to be compacted afterwards.
The thread previews and dots are another resource hog. I rewrote the thread previews on ls2.com to elimintate yet another query into the post table by storing the preview in a newly added field in the thread table. And you can add a very simple logic to temporarily turn off the dots when the loads go up.
I would be a fool to assume you are not using a php accelerator and query caching in MySQL.

These ideas for as little as they may sound, will make a noticeable difference.
I've switched over to using FULLTEXT indexes on the post and thread tables which helps immensely. I am continually trimming the MySQL caches and buffers, there's not much else there I believe. I'm running a PHP cache/accelerator, there's no way this site would even run without one
I've switched over to using FULLTEXT indexes on the post and thread tables which helps immensely. I am continually trimming the MySQL caches and buffers, there's not much else there I believe. I'm running a PHP cache/accelerator, there's no way this site would even run without one


You're in a pretty tough situation.

Take a look at how thread previews are done. They are not that difficult to rewrite.
Let me know if there is anything I can do to help. I'll PM you my number if you need to get a hold of me.
The Best V8 Stories One Small Block at Time
'org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: InputStream cannot be null...'
..and the list goes on. At any rate, if anyone has any input/insight on this please PM me. Other than that, I'll stop hijacking this thread
Why don't we split the website up and do the saving/writing on different servers. So, like moving all the LSX stuff to one server....LTX stuff to another, Apperance/Maintenance, ect....you get the idea....and then have one main page that doesn't have to be written to and locked up whenever one person makes a post, which links to the page that contains the corresponding data, which is on another server. If I were to draw a diagram of this, there would be the Main page, just like the current mainpage....but doesn't give all the updated stats, its just a main page framework with all the links, basically looks exactly the same it does now, maybe its updated every 10 mins or so. Then, each sub-catagory is contained on seperate servers, which is linked from the main page. So when you click on lets say....External Engine in the LS1/LS6 section....it takes you to the same listing, except now you're viewing a page that is independent of all the rest of the main categories of the site, and only a post in the LS1/LS6 section will have to be written to that particular server, not hanging up the entire webpage and all other catagories which are un-related to that particular heading. Does this make sense, or is my rambling completely incoherent?
Regards,
Adrian
Regards,
Adrian

So, that's why I looked to a better DB engine entirely, and the best open source package available is PostgreSQL.
the solution that is in the works will eliminate much of the problem, as Brains explained between the 3 or 4 posts of his which were right above yours.
:EDIT: must be my internet because all of the sites I'm going to are taking forever. Sorry about that.






