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.

17 of 148 comments (clear)

  1. It's not just for break^H^H^H, er, files anymore by Eryq · · Score: 4, Informative

    Many sites use Apache as an application server or to serve dynamic-content; e.g., by using mod_perl (to deliver blazingly-fast dynamic content generated by Perl scripts), or as a flexible and solid front-end to Java servlet engines like JServ and Tomcat.

    And far from being bloatware, Apache has (at least during 1.*) gotten more modularized over time, making it easier to fine-tune logging, access control, URL rewriting, etc, etc. I don't know squat about 2.x, but I expect good things.

    Just the $0.02 of a Perl/Java hacker who uses it extensively...

    --
    I'm a bloodsucking fiend! Look at my outfit!
  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 /ASCII · · Score: 2, Informative
      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. The Apache model will never do that as fast as Tux, Zeus or Boa.


      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.


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

      --
      Try out fish, the friendly interactive shell.
  3. There is more to that by artur · · Score: 4, Informative

    This is usually the case when you are serving static pages for a page that is viewed one time a day.

    However, it gets complicated when you serve pages that are dynamically generated for various users. You want to be able to pass content of a file through various modules. You can tell that you want the page to go through mod_perl and then through SSL modules. You can also stack any modules in between.
    The new version makes it easy.

    Of course there is a lot of other things besides the "reading and shooting" files (IPv6, web caching, etc).

  4. Re:Apache 2.0 Threads by Anonymous Coward · · Score: 4, Informative

    POSIX.1 specifies sleep(3) be both thread-safe and cancellation-safe.

  5. 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?

    2. Re:Performance results by webperf · · Score: 2, Informative

      one more point. these pages utilize mod-include VERY heavily. we found a EXPONENTIAL increase in speed in relation to decrease in the number of includes on the page.

  6. 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.
  7. Re:Apache 2.0 Threads by Electrum · · Score: 3, Informative

    Well, generally, when I see something like sleep(3), it means that a thread is waiting for an event to finish.

    That notation tells which manual section the name is in, not what parameters if any the function may be called with (many times the name is not a function). In this case, the "sleep" function is in manual section 3. i.e. you run "man 3 sleep".
  8. Re:MySQL? PostgreSQL is better! by Fweeky · · Score: 4, Informative

    The API's are not yet fixed, so they tend to break. You can probably compile CVS of PHP to the current beta Apache 2, but the next time they change something PHP will most likely track the CVS change, leaving the beta out in the cold again.

    I managed to get mod_php + Apache 2b28 coexisting, but it liked to segfault a lot (even when idle) and always ended up eating 100% CPU. I even managed to add Zend 2 (next-gen PHP engine) to the mix, but, well, I haven't seen Apache fall over so much since I got PHP 4.0.0 to generate 50,000 internal errors on a single script.

  9. Re:Apache 2.0 Threads by Fweeky · · Score: 3, Informative

    Should probably have included a link to http://people.freebsd.org/~jasone/kse/ for those who cba Googling; there is some good stuff about the current threading implimentations there too.

  10. Re:MSI Installer == Spiffy by darkwhite · · Score: 3, Informative

    Yeah, it's strange, because the previous beta does install the service. It's easy though, just run apache -i.

    I've just switched to 2.0 a few days ago on win32... so far it's been about the same as 1.3 for me, the only thing I had a problem with is that it doesn't substitute paths for shebang lines in cgi-bin files, so I have to write out full paths (1.3 did). And the conf file from 1.3 doesn't exactly work right away with 2 (which would be nice), I had to tweak it. Otherwise it's great.

    --

    [an error occurred while processing this directive]
  11. Re:Apache 2.0 Threads by BusterB · · Score: 4, Informative

    > POSIX.1 specifies sleep(3) be both thread-safe and cancellation-safe.

    I don't think he's talking about sleep being thread-safe. I think he's talking about using sleep rather than a condition variable and a while loop to wait for access to a shared resource. The problem with using sleep is that it's entirely dependent on system load/ speed/ alignment of the moon. Code like that assumes that if it waits a certain amount of time, the resource will be free.

    Imagine checking to see if a pool is dry, noticing that it is, coming back later and jumping in without looking. It might be full later, but it's much better to keep looking and not jump until the pool actually has water.

    This type of thing is especially hard to debug when you upgrade your hardware and your software mysteriously fails. Suddenly, you're not sleeping long enough to get an exclusive lock on a shared resource.

  12. Re:IBM has it too by ||| · · Score: 2, Informative

    why are everyone so exited about the thread-per-request model? instead, many high-performance servers use non-blocking (or asynchronous) i/o models to scale. for instance, look at the seda project (http://www.cs.berkeley.edu/~mdw/proj/seda/) where a java implementation of a web-server using non-blocking i/o outperforms both the apache and flash web-servers for specweb99.

  13. Portable runtime libraries by pieterh · · Score: 2, Informative
    It's a very sensible thing to make since it's cheap and eliminates much of the nasty #ifdef 'portability' one sees in programs.

    You can see an example of a multithreaded web server using a similar portability library on .

    I remember showing this web server and its multithreaded / portability model to the IBM Apache team in December 1999 during the Bazaar at New York. Maybe they got some inspiration from it.

  14. Re:Threads and processes : why? by webperf · · Score: 3, Informative

    I suggest you look at http://www.kegel.com/c10k.html for a great description on all the different types of architectures there are for webservers