Optimum server apps (Apache, Nginx, Lighttpd, mySQL, postgreSQL)etc, to run SMF

Started by Addmint, August 05, 2015, 09:47:33 PM

Previous topic - Next topic

Addmint

I'm curious if anyone here has really looked at system performance with different software on the host machine.  It seems like I often see the stand LAMP stack and know that came about a fairly long time ago and new software is available since it became a "standard" on some web hosting services.  After hearing a lot of claims about Nginx vs Apache, I looked into a lot of aspects which may be affecting server performance.  So I guess the main pieces of software that are most important are the web serving software, database and mail server. 

From what I know there aren't a lot of opensource SQL databases that will work with this (I could be missing a lot, I haven't looked deeply). 
For Databases software:
SQLite
MySQL
PostgreSQL
MongoDB

Web Server Software
Apache
Lighttpd
Nginx
LiteSpeed
Hiawatha
Cherokee
Mongoose
Monkey


Does anyone have any testing results of these and say that one is definetly faster or more stable than another?

LiroyvH

Don't forget MariaDB (the new standard on RedHat servers) and Percona for database servers.

As for the webservers. It depends on what you're doing and how you configure it.
Apache's performance with PHP for example depends a great deal on how you configure the two to talk with each other, what modules are used, etc.
Same goes for nginx.

Size of a forum is also of importance. A few unique visitors and not too many hits a month and you probably won't notice much to any difference between the pieces of software. But on a large forum that requires to be able to serve many visitors at the same time and perform intensive jobs: you'll certainly notice differences there, and then it still depends on the configuration...
"Definitely" is a tough one as it isn't just the webserver that matters, but a larger variety of factors need to be kept in mind.

Overall, I do see better results when nginx is used or at least placed in front of Apache as RP.
((U + C + I)x(10 − S)) / 20xAx1 / (1 − sin(F / 10))
President/CEO of Simple Machines - Server Manager
Please do not PM for support - anything else is usually OK.

青山 素子

It really seriously depends on your needs and other factors.

Apache HTTPd has a very long development history, all the way back to 1996 when it started as patches to the older NCSA HTTPd. It's very well-known and is a solid known quantity. It created the original CGI feature. These features make it a great default. If you configure it right, you can get a lot of performance out of it. Unfortunately, it's often configured with a lot of features that make things much easier to manage, like htaccess file support, that make it slow.

nginx is a good option. It has a very different way of handling how connections are processed, which makes it more adept at handling load. However, it has some issues for bulk hosting. For example, nginx doesn't support htaccess-style overrides. The configuration has to be in the configuration file. You can use includes to break apart things, but you'll need to restart the entire service for any configuration changes to be used.

Lighttpd looks cool, but doesn't seem to have a lot of users. This means less community support if there are problems.

LiteSpeed is supposed to be "drop in" compatible with Apache HTTPd, but it's not open source and is expensive compared to a lot of alternatives out there. It's biggest advantage is that it can work inside many major server control panel systems (cPanel, Plesk, etc). For hosting companies, this may make the cost justified.

Hiawatha once again has a small userbase and also depends on a non-common SSL library, ARM mbed TLS.

It's worthwhile to look over your options and pick what fits your needs best for your load, experience, and comfort level.

As for databases, MySQL was the easiest choice to use for a long time, and it has a ton of support. The future is pretty solid with Pecrona Server and MariaDB offering forks of what Oracle now controls. PostgreSQL is a great option, but suffers from being more complex to manage. It's a great option, though. SQLite actually has a lot of support, but it is designed to work best with small databases.

As for MongoDB, I wouldn't trust it at all. It has absolutely no data integrity. You can easily lose data, at all levels of write concern. There are better NoSQL database options like Cassandra, CouchDB, Redis, etc. Heck, MariaDB has some NoSQL options, including a way to use Cassandra as a storage engine in MariaDB.

Also, keep in mind that traditional SQL-based schema-based databases are a lot different than NoSQL options, so you can't really make a direct comparison between the two. Some software can benefit from the NoSQL style, others really need all the relational features the more traditional solutions offer.
Motoko-chan
Director, Simple Machines

Note: Unless otherwise stated, my posts are not representative of any official position or opinion of Simple Machines.


Advertisement: