Newsroom Update

Beginning in May, a special Today at Apple series titled “Made for Business” will offer small business owners and entrepreneurs free opportunities to learn how Apple products and services can support their growth and success. Learn more >

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Is an Xserve a good choice for a vBulletin or phpBB server ?

Would one of the new Intel Xserves be a good choice to host a php and MySQL based board ?

I'm anticipating an initial load max of 100 concurrent users, but that could grow.

Posted on Oct 27, 2006 1:17 AM

Reply
8 replies

Oct 27, 2006 5:22 AM in response to K.C.

K.C.-

Of course an Intel-based XServe would be an excellent choice.

That being said, I must tell you that an older and/or cheaper server can easily handle that kind of load with upwards scalability.

The advantages of the (new) XServe platform are the XServer software and associated ease of setup, rackmountability, and a more reasonable power consumption.

It is wise to consider a firewall appliance as a means to to handle security stuff.

Luck-

-DaddyPaycheck

Oct 27, 2006 7:46 AM in response to K.C.

I think an Xserve certainly would work for that. A completely honest appraisal though would have to point out that Linux and/or *BSD is a better host platform for MySQL and most database systems. The central problem is that under the Mach-O+BSD goodness that is OS X thread creation is a still a (relatively) heavy task. For the vast majority of applications this isn't an issue but database usage creates and then discards several threads per operation and eventually the task of thread creation limits the upper end performance of OS X as a database server.

One of the trade offs of course is that OS X Server is easy as pie to set-up and run compared to any Linux/BSD system. If you're not afraid of Linux/BSD install and administration you will get much more bang for your buck with one of these installs. One solution is to run a Linux server MySQL box and have an OS X box running the web/services side of the operation. This will limit how much Linux configuration you have to do and is realtively easy since you connect to MySQL via its IP anyway even if it's on the this same physical box. A set-up which separates your services from your database will give much more room to grow than running all services on a single box anyway.

Just my thoughts. I think it is important to keep in mind the minuses as well as the pluses of your favorite tools. I'm also sure 10.5 will bring many improvements under the hood and I'm sure the Oracle guys gave some good feedback to the BSD hackers at Apple when they ported Oracle to the platform.

=Tod

Oct 27, 2006 11:10 AM in response to Tod Kuykendall

> database usage creates and then discards several threads per operation

Only if your application is poorly written.

Unfortunately many PHP-base systems fall into this category where they open a database connection (heavyweight), execute a query (lightweight) then close the connection. For each query a new database connection is established, degrading server performance.

That does not have to be the case. The better solution (even for lightly-loaded systems) is to open a pool of connections when you start up (very heavyweight) and leave them open while you execute multiple queries over those connections. That way every subsequent query is faster because it doesn't have the overhead of needing to open a database connection at all.

Of course, managing database connection pools is harder work, which is why it's often overlooked, but there's no reason why a well written application wouldn't scream on a Mac OS X-based system (in fact, I'm running many of them right now).

I don't use phpBB or other PHP-based discussion boards so I don't know how well they're written but I would be surprised if they hadn't moved to a connection pool-based model since it is a more efficient way of working.

Oct 27, 2006 2:19 PM in response to Camelot

I'm not actually talking about PHP I'm only talking about how thread intensive databases are in general and MySQL is in particular. Almost every database operation generates several threads and as the number of concurrent users of a database grows the number of threads grows very rapidly. OS X has relatively heavy thread creation costs and thread locking is relatively coarse so more competition between threads occurs. It has improved with each OS rev and I'm sure 10.5 will be no different but the ugly reality is that Linux - coming from a multi-user Unix background - provides better threading/locking than OS X coming from a single-user NEXTStep background does.

There were several tests demonstrating this around the time the 970/G5 shipped. The only article I could dig up in a pinch was this anandtech.com one. It isn't the most technical examination but the results are clear enough. Yellow Dog Linux running on an Xserve delivered significantly better performance on the same hardware as OS X did as the number of concurrent users rose.

I love OS X to death - and serve many databases from it - but it is not the best pure database serving platform if you are worried a rising number of users. I always try to advocate best tool for the job.

Again - my $.02,

=Tod

Oct 27, 2006 7:47 PM in response to K.C.

Thank you for the replies.

I'm moving from using VPSs and shared servers to owning my first Xserve and collocating it. I have 6 very low traffic sites (4GB per month) and it sounds like I could host those as well as my php based board on one Xserve.

I'll have DNS services handled separately and a hardware firewall in place.

While a less expensive BSD box would work for the board it means I've got one more box to administrate and backup. I'd rather splurge on the second power supply for the Xserve and have a couple of drives on the shelf ready to replace the mirror should there be a problem. That feels like a better value.

Oct 27, 2006 10:50 PM in response to Tod Kuykendall

I'm not disputing the threading model argument. The overhead on creating threads is significant.

What I am saying is that the impact can be minimized by good programming/design.

The anandtech article you quote is, as far as I'm aware, the one that started the whole discussion and it is flawed since their test specifically creates new database connections for each query.

I can tell you for sure that this overhead is negligible for applications that manage database connection pools (open n connections when the app starts and keep them open for the duration). I'm running a large MySQL server farm running millions of queries a day and the thread overhead doesn't faze me because I'm running a Java app that uses connection pooling.

Oct 28, 2006 10:27 AM in response to Camelot

Camelot,

I'll bow to your real world experience over theoretical tests and/or situations.

It's always important to know the strengths and weaknesses of your tools and it's good news to me that these theoretical weaknesses can be managed by real world solutions.

Thanks for the correction,

=Tod

G5/2.0x2, Dual XServes x2, XRAID, beige G3 501Mhz

Is an Xserve a good choice for a vBulletin or phpBB server ?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.