Domain: zeus.co.uk
Stories and comments across the archive that link to zeus.co.uk.
Comments · 14
-
My take on the low power personal server thread
Ok,
Weighing in with my two cents worth, for what it's worth, I'd like to brain dump what I would consider worth while options for your needs. All of these are solutions I either have used in the past successfully, or am currently using for various purposes. So bear in mind that this is not just the causal musings of a thread cruiser, but actual tried and proven solutions ;-)
First some basic assumptions:
1) You want to run some form of Unix or Unix like system ( i.e. Linux ) - you've noted you currently use your Apple PowerBook laptop, so one has to assume you're running Mac OS X 10.x.x natively ( more power to you ).
2) You want complete control over the system including "root" access 24/7 - this is of course the whole point of having your own system, you can beat it up, break it, rebuild it, and all that jazz.
3) The system should be able to be run remotely, even if just headless on your LAN, or perhaps more ideally remotely from some external 3rd party in a hosted solution so you don't end up having to host it behind your link at home ( also making it easier for you to provide access to other parties should you want to either share it with friends and family or if you just want to make it world visible for whatever reason - i.e. your own mail and web server et al ).
4) You want an "always on" solution, so this should be something that, as you state, should not suck too much juice power wise, is able to be built with a "standard build" style hardened platform, which in the case of power loss would ideally recover nicely, quickly, and be back on line ( I'll touch on this later as standard builds are going to make your life so much simpler and fun ).
5) The performance of the system ideally should be such that it will cope with the key elements you've noted in your post, such as:
a) remote access such as remote sessions via SSH won't kill the system
b) able to run a web server such as:
thttpd: http://www.acme.com/software/thttpd/
Apache: http://www.apache.org/
mathopd: http://mathop.diva.nl/
Roxen: http://www.roxen.com/
Boa: http://www.boa.org/
Jigsaw: http://www.w3.org/Jigsaw/ ( written in Java )
Acme.Serve: http://www.acme.com/java/software/Acme.Serve.Serve .html ( written in Java )
CERN: http://www.w3.org/hypertext/WWW/Daemon/Status.html
NCSA: http://hoohoo.ncsa.uiuc.edu/
Netscape FastTrack: http://home.netscape.com/ ( not sure if it's still available )
Netscape Enterprise: http://home.netscape.com/ ( not sure if it's still available )
Zeus: http://www.zeus.co.uk/
source: http://www.acme.com -
Load balancer + content differentiation
I have some experience with administration of web sites with very high traffic. My previous experience was with p0rn sites (lots of sites, lots of concurrent accesses). My current job is at Skyrock / Skyblog, that serves about 25 million pages every day.
In both jobs, the infrastructure was extremely similar.
The entry point is one (or more) load balancer.
A load balancer will not only blindly allow you to have multiple backends. It will also accept client connections, buffer the request, get the data from already established (keepalive) sessions, buffer it, and transmit it though large chunks to the client. This, alone, really helps to reduce the number of Apache processes that are taking resources (especially memory) for nothing.
The load balancer can also do other things, like protecting the servers against some attacks, plotting the current workload of every backend, compress HTML pages, etc.
At my previous job, we were using Foundry Serverirons. Now, we are using Zeus ZXTM http://www.zeus.co.uk/ with great success. Although it's very expensive software, it's way cheaper than Foundries, way more configurable, way more user-friendly and we are very pleased with it so far. A single PC handle 300 Mb/s (Linux 2.6 is needed for epoll).
The load balancer can also be configured to send the requests to this or that server according to the request.
Thus, servers are dedicated to specific tasks.
We have a bunch of static servers for static HTML, CSS, images, etc. They run minimal Apache servers, designed for speed, with NPTL and the worker MPM. Non-forking servers like thttpd or lighttpd is also an option. The static servers are mainly old P3 machines, with only 512 Mb RAM.
Then, we have servers for PHP. The Apache they are running is huge (our web sites need a lot of modules), the hosts are dual 3 Ghz Xeon with 2 Gb RAM and there are some other specific tweaks.
Content differentiation is important. It's a waste to spawn huge Apache process to serve static stuff, just because the same host should also be able to serve PHP. Also, tuning (esp. NFS) is very different for static and dynamic content. And as a specialized server often serves the same files, caching is more efficient.
We run Gentoo Linux on all web servers, plus one DragonFlyBSD (mostly for testing).
The same content differentiation is made for SQL server. One SQL server serves one sort of thing, so that caching is efficient. Also don't forget that on x86, Linux and MySQL can hardly use more than 2 Gb of RAM. So with big tables, this is really annoying. We are switching SQL servers to Transtec Opteron-based servers for that.
On high traffic infrastructures, the I/O is often the bottleneck especially if you serve a lot of different content.
For our blog service, we had to buy a Storagetek disk array with 56 disks (fiber channel, 15k) in RAID 10. As NFS would introduce too much delay, we directly plugged two web servers to the controller of the disk array. These web servers are the NFS servers for the PHP servers, but they also directly serve the static content.
The access time of hard disk is really annoying. For shared data, but also for databases. We found that RAID 5 was way too slow (even with the high-end Storagetek/LSI controller) since we have about 1 write for 5 reads. So we had to switch everything to RAID 10. It really performs better, but it's obviously more expensive.
Another bottleneck was the share of PHP sessions between all load-balanced PHP server. We first used a MySQL/InnoDB-based solution, but it poorly scaled. That's why I had to write specific software : Sharedance http://sharedance.pureftpd.org/
In a high-traffic infrastructure, my hint would be to use many modest, but specialized servers over one huge mega-fast server that does everything. This is way more scalable. And easier to manage, even from a financial point of view. You can b -
Re:People will buy software....
Lots of people have bought Zeus too, even with open-source free alternatives like Apache.
-
Not so fast...
All this is going to do is make students have to sign of their rights to patents and research, just like those of us in the real world do.
I'm not sure that's as universal as you make out. My partner recently submitted her Masters thesis to the University of Cambridge, UK. In the formal information given to students, along with rules about what needs to be submitted where and such, there is a section that basically says students should be mindful of their rights to intellectual property, and mark copyrights and such accordingly. The University obviously requires a non-exclusive right to use the material, e.g., to put it in their library, but that's about it, IIRC.
I'm not sure what the exact state is on patents rather than copyright, but take a look at Zeus, a company based in Cambridge and started by ex-students. Their whole business is, apparently, based largely on one particularly good bit of work they did while studying. Given how well they were doing until recent economic events, I'm pretty sure people would have had a word if the patents weren't legit.
And what's this about "those of us in the real world", anyway? I don't know about you, but certainly I've never signed a contract that makes anything I ever discover (even on my own time) the property of my employer, nor will I ever sign such a contract. If I were going to do the kind of leading-edge research that many of these people do, I'd want to see some reasonable proportion of any future revenue/rights as well. Sure, if I'm being paid to do the research then the person paying will get the lion's share, as is only reasonable. But if my research is that important, and something only a select few people could do, they shouldn't mind letting me in on the profits a little as well.
-
Re:Funny how /. editors miss things
Actually, IIS has most of the same API hooks as Apache via ISAPI Filters, which would allow you to write something very similar.
A quick google search turned up this from the Zeus manual of all places, which is an example of how that would work.
I've written my own URL-rewriting functionality for IIS before now with no problem, but at the moment, AFAIK, you do need to use some C to do it.
--
the telephone rings / problem between screen and chair / thoughts of homocide -
Re:try something that's "actually fast"
Bah, here's the correct link
-
Re:How many crap sites?actually, of the commercial servers, Zeus is by far the best.
-
Roxen Challenger
I have noticed that a number of people have mentioned Zeus and thttpd as alternatives to Apache. I know a few people who say they have also had success with the Roxen Challenger server. Does anyone know how Roxen performes in comparison to the other three? From what I've heard it is excellent for static pages, which sounds like what is on the art site described here.
-
Think SoftwareThis is more of a software issue, IMO. You could buy a fancy whiz-bang server but configure Apache wrong, and it's toast. Check all the Apache tuning guides.
Secondly, consider the BSDs. (Moderators: this is not flamebait. I have a valid point). Their TCP/IP implementation is a good deal faster than the Linux equivalent, and while the Linux stack is maxing out on concurrent TCP/IP connections (which is a possibility, especially with lots of images, etc. on your site) BSD will keep on chugging. I'm not sure how much of an issue this will be here, though. I think for the most part, unless you're Yahoo.com, you should be okay with Linux. But hey, you're the judge.
Finally, be sure to think outside the box when it comes to HTTP servers. There are other servers besides Apache, believe it or not. And in your case, there are ones that are a lot more optimized than Apache for serving up static content (I think it's static, save the webcam. You didn't really say). thttpd and Zeus (it's not free, shoot me) come to mind.
-
Re:You forgot the real reason>I'm not surprised that a Netscape employee won't
>admit this, but there are lots of benchmarks from
>unbiased sources that show IIS to reign surpreme
>serving in both the static and dynamic web page >arenas.
I did unleash a little fury on IIS, didn't I. I didn't mean to turn this thread into IIS bashing. I've just had some really bad experiences with IIS. It's way too integrated into the operating system for my taste. (Anytime that you are using the operating system's user database to authentiate web users, something is just plain wrong.) And the fact that the operating system that it is integrated into is NT just makes it worse. It's just not stable, manageable, or scalable enough.
Your claim that IIS is the fastest webserver is pure flamebait. If you would like to point me to a URL, I'd be happy to look at it. But, I'll guarantee that the fastest webserver isn't any webserver running on NT. Apache, Zeus, and Netscape can all crush IIS, simply by the fact that they can run on high-end UNIX machines with a dozen or more processors.
It doesn't really matter anyway though. I doubt that anyone makes their choice of web servers based on performance tests anyway. The difference in performance is small enough that features, managability, and stability are going to be decision points.
For those of you who brought up PHP's effect on the webserver comparisons, I concede that PHP may be significant development. To be honest, I don't know enough of the details about PHP to comment on its strengths and weaknesses. I'm a servlet kind of guy myself, so I haven't checked it out. But it does seem to be a simpler solution than mod_perl. (Not that Perl isn't cool.) At first look, it just looked like another server-side scripting language to me. Which is cool in it's own right since it's open source. But people tell me that it rocks.
By the way, since I didn't explicitly say it before: my opinions are mine, not Netscape's. I don't work on the development team for Enterprise server, and am not a professional webmaster either, so my opinion probably isn't any good anyway.
-
Re:The Strategy5) Even though Linux has weaknesses, and is slower on 4-way Xenon Intel processors with 4 gigs of ram, etc., Linux is continuously being improved and will eventually be superior.
I really wish people would not start beliving this delusion. Apache is slower than IIS on a high-end machine, but Apache was never meant to scale to that level of performance.
If you need that kind of web server performance in Linux, you don't use Apache. You use Zeus, thttpd, or mathopd. Here is a UNIX web server performance comparison.
As for the Samba vs. NT numbers, Samba does better than NT when all the clients are NT workstation, NT does better than Samba when all the clients are Windows95/98. The SMB server to use depends on what kind of clients you have in your enterprise.
- Sam
-
Both will win and looseNotice that every test team must make a test for 4 CPUs and one for a single CPU. I think we'll see that NT/IIS is more mature for a 4-way Xeon with 4x 100Base-TX network cards, and this will be proclaimed in huge letters by Microsoft and the supporting press once the tests show it. But I also think that Linux will be able to outperform NT on uniprocessor systems, even if the hardware is chosen to maximise test results to Microsofts favour! And parts of the press will burst about this too (if indeed the tests come out this way).
All this will be a fair enough. After all, who would seriously recommend a 4-way Xeon with 4 high-performance netcards to run Linux??? Linux, as I see it, does not yet have its strength here. If you would like to use Linux, tailor some other high-end solution, e.g. with multiple servers. If not, then buy expensive hardware from Sun and run Solaris on it! Just don't think that NT is your only alternative.
Others have pointed out that the NT Server configuration is highly optimised to the particular test. Taking advantage of the fact that a fairly small amount of static-only pages will be served, the NT is configured to keep it all in its cache.
While, as Alan cox, among many other things points out, using the (apparently commercial) Zeus webserver might up the Linux webserver performance, but virtually anyone installing a Linux webserver are going to use Apache, so I find find it reasonable to tune Apache instead. But it must be possible for the experts to similarly tune Apache/Linux to take advantage of the nature of the test.
-
Try ZeusWhat's the memory footprint of an Apache server? You need one for each simultaneous connection, don't you? Does that give a clue why it peaks at 1000 requests/s?
If this is supposed to be a comparison between IIS and Apache, then fine. But if its trying to offer a comparison between Linux and NT, its useless.
I suggest Mindcraft re-run the tests using a common webserver. Most web benchmarks I've seen use the Zeus webserver.
-
Sources, please?
Could you post references to those benchmarks? I looked for them, having heard that Apache was faster than IIS, but I couldn't find them at all.
I know there are proprietary servers (e.g. Zeus) that are faster than Apache.
By the way, if Apache really is faster than IIS on comparable hardware, that's a tremendous indictment of IIS's quality. IIS is a multithreaded, single-process server; such servers tend to be roughly three times faster than multi-process pre-forking servers like Apache, when they're both running on Unix, anyway.