Slashdot Mirror


Apache Server Nears 2.0

An Anonymous Coward writes: "The Apache httpd project has released a new beta of their apache 2.0 server (v32)". For those who have not been following the 2.0 development, this is the third beta that has been produced. The new version of Apache sports the new APR API and a new method for filtered I/O, and has been rewritten to make use of a hybrid thread/process model. With Covalent already selling a commercial version of 2.0, hopefully we will see a full release of the open source version in the near future.

7 of 148 comments (clear)

  1. Excellent Work - Worth the wait by Dysan2k · · Score: 5, Insightful

    Personally, I don't mind waiting on the Apache project to take their time and do it right. I believe 2.0 isn't bloatware, but a far more modular and extensible version of the worlds fav. web server. Personally I've been waiting for a WHILE to start using it. I'm not sure if PHP4 will compile against it yet. Maybe out of CVS it will.

    With the new threading, it should manage to push out pages a lot faster under load, and make better use of the processors. Might have to go download today. Here's a project for those of you bleeding edgers out there. I've yet to manage this one myself:

    Apache 2.0 + mod_perl + php4 (with support for MySQL 4.x) + mod_ssl.

    I don't think non-CVS PHP4 will handle MySQL 4.x, but perhaps there are others that know how.

    Back to topic, way to go guys!!

    --
    -What have you contributed lately?
  2. Apache 2 is going to kick ass by blackmateria · · Score: 5, Informative

    I've been using Apache 2 on Linux and FreeBSD for about 2 months now (got into it while playing around with Subversion, another project that seems to be making excellent progress), and IMHO it is really going to rock the server world. Some major plusses:

    • ./configure; make; make install (almost). No more APACI, thankfully.
    • APR. It's already starting to be used by other projects.
    • Totally rewritten mod_cache, mod_proxy, etc. Works much better now!
    • Will actually work on Windows (well, some may not see this as a benefit, but whatever).

    People have been complaining that Apache 2 is slow to come out, but from what I've seen lurking on the mailing list, it's because they want to ensure the quality of this release. They've also been talking about how they want a lot of beta testers, because (<rumor mode on>)they want to release soon, maybe even from 2.0.32. So get out there and beta test it!


    ---
    Have you crashed Windows XP with a simple printf recently? Try it!
    1. Re:Apache 2 is going to kick ass by Electrum · · Score: 5, Insightful

      If serving huge amounts (>1 GB/hour)of static content from a single-CPU computer is what your server does, Apache is not for you.

      A well designed non blocking server can run in multiple processes, to take advantage of multiple CPU's. Zeus does this.

      But if you would stop to think for a while, you would see that no one does that. Nowdays, it's all about dynamic content. And in that case the overhead of using multiple threads is tiny compared to the added benefits of scalability and stability.

      That's wrong. As I said, most of your requests will be static content. Take Slashdot, for example. This comment posting page is one perl page, and six images. Do you really need six extra processes for those images? Especially large Apache processes that have mod_perl and who knows what else compiled into them. Sure, the code pages should be shared, but it's still poor design.

      It is actually possible to use a kernel-based server like Tux for static content and let Apache take care of the dynamic bits.

      Sure you can do that, but wouldn't it be better to use a well designed server in first place, and not have to kludge around design flaws in the web server? Your web server should not be your application server. Your web server should be serving web pages. Your application server should be running applications. The Apache model of "build everything conceivable into the web server process" is a bad idea, and is not consistent with the unix philosophy of doing one thing, and doing it well.

      Everyone knows CGI's are bad for performance because it causes forking a separate CGI process for each request. Turning the CGI's into Apache modules solves this problem, but not in an optimal way. Applications do not belong in the web server. A model such as FastCGI is a much better approach. It is similar to CGI, especially in the sense that it is easy to program for. But instead of running the process and using stdin/stdout as with a CGI, it connects to the FastCGI via a socket. Thus the application stays running, and there is no process creation overhead. It keeps any necessary load balancing on the application end where it belongs, and out of the web server.

      Additionally, the application doesn't even need to be on the same box. You can have one or several application servers, and a single web server. A web server only needs to handle data. A single box should be able to fill your outbound pipe, or at least around 100mbits of it. If an application is slowing it down, then you need another application server, not another web server. It is unfortunate that the two are not seen as the separate entities that they should be.

  3. Performance results by augustz · · Score: 5, Informative

    I've been following performance results for 2.0, and wanted to let folks know that it doesn't seem clear to me that there is this huge performance gain waiting to happen.

    http://webperf.org/a2/v29/Apache2_26-Nov-2001.html has some 2.x v. 1.x results.

    Love to hear the lowdown on performance advantages of the new Apache from someone in the know or someone who has done some actual testing.

    Also, PHP/Apache perl/Apache integration are probably very high on many folks lists, what is the status of those two vis a vis apache?

    1. Re:Performance results by Anonymous Coward · · Score: 5, Informative

      the apache has several performance advantages.

      1 lower memory footprint.
      you can run a a server which normally took 4G of memory in 512M

      2. speed
      http://webperf.org/a2/v31/2002-02-11-v29/
      http://webperf.org/a2/v31/2002-02-12-v31/
      the page is similiar to the 'NEWS-STORY-NORMAL' column in the old one..

      check out the response time in the graphs.. can v1.3 get a 1-1.5 second response time as CPU increases like that ?? doubt it
      3. mtmalloc
      we found that using mtmalloc with apache 2.0 gave us a performance increase of 30% (yes 30%) by preloading the library

      4. v31 has got a different pool allocater, which reduces the mutex contention considerably.

      nice to see someone is referenceing my benchmarks ;-)

      BTW .. solaris 8/8 cpu/GCC v2.95

      while your surfing webperf.org.. why not download the agent and run it for a while?

  4. Re:Apache 2.0 Threads by ink · · Score: 5, Informative
    Go get the source yourself, cuddle up to a posix threading book and pull out a 100% correct threading library. (Like the FreeBSD one.)

    When did FreeBSD get 100% compliance?

    http://www.idiom.com/~bko/bsd/freebsd-threads.txt
    In addition, ngpth has been accepted by Linus and they are very close to 100% compliant as well as providing for M:N mapping to scale on multiple processors, and to give programmers choice of kernel or userland threads with standard calls. BSD is great and all, but you guys do way too much chest-pounding.
    --
    The wheel is turning, but the hamster is dead.
  5. perchild MPM by slamb · · Score: 5, Interesting
    I'm a little disappointed by Apache 2.0 so far.

    I've been looking forward to the perchild MPM. It can run different server processes under different UID/GIDs. This is important because mod_{perl,php,python,snake} run in-process with the Apache server. It's the only way to run them securely for different people other than a completely seperate webserver for each person (with its own IP address, configuration file, memory footprint, etc.)

    But perchild doesn't really work:

    • It's not portable to non-Linux platforms. (There was talk on the mailing list of marking it experimental because of this.)
    • It hasn't compiled (even on Linux) out of the box in several releases. In 2.0.29, easy to fix but still doesn't work right. (Not compiling is a sure sign it hasn't been maintained.) Not quite as easy on 2.0.32. There's a patch, but it doesn't look right to me.
    • It's easy to misconfigure it into running virtual hosts as root. (Bug report)

    So, Apache 2.0 may be promising in the future...but when a feature I've been looking forward to for a long time is broken, I'm kind of disappointed.