Hacker News new | past | comments | ask | show | jobs | submit login

Apache can use event-driven non-blocking IO too, as well as the more traditional thread-per-connection mode.



Apache's event MPM is not really an event MPM. It's a slightly modified worker MPM. It puts all idle connections (keepalive state) and listeners in a single thread. Each active connection gets its own thread.

The event MPM also behaves the same as the worker MPM for SSL connections.

http://httpd.apache.org/docs/2.4/mod/event.html


This is incorrect for Apache 2.4: In 2.4 there is async write completion.

SSL behavior is still like the worker MPM, due to design issues in mod_ssl and filter stack. This is unlikely to change until 3.0.


In what sense is Apache 2.4.2's event mpm event-based when this is the result of siege -c 1000 http://hostname:port/sample.txt

  server-info selections
  MPM Name: event
  MPM Information: Max Daemons: 1 Threaded: yes Forked: yes

  server-status selections
  1550 requests/sec - 1.6 GB/second - 1.1 MB/request
  9 requests currently being processed, 41 idle workers

  W__W_____W_W_______R______W______W_______W__W_____..............
  ................................................................
  ......................
If those are asynchronous response writing handlers in the sense that they could be handled by an event loop, why do they have their own threads?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: