On 04.01.2009 01:51, Ruediger Pluem wrote:

On 01/04/2009 12:49 AM, Rainer Jung wrote:
On 04.01.2009 00:36, Paul Querna wrote:
Rainer Jung wrote:
During testing 2.3.1 I noticed a lot of errors of type EMFILE: "Too
many open files". I used strace and the problem looks like this:

- The test case is using ab with HTTP keep alive, concurrency 20 and a
small file, so doing about 2000 requests per second.

What is the exact size of the file?

It is the index.html, via URL /, so size is 45 Bytes.

Configuration is very close to original, except for:

40c40
< Listen myhost:8000
---
> Listen 80

455,456c455,456
< EnableMMAP off
< EnableSendfile off
---
> #EnableMMAP off
> #EnableSendfile off

(because installation is on NFS, but the problem also occurs with those switches on)

The following Modules are loaded:

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule mime_module modules/mod_mime.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

To reproduce you must use KeepAlive and your MaxKeepAliveRequests (Default:100) times concurrency must exceed the maximum number of FDs. Even without exceeding, you can use "httpd -X" and look at /proc/PID/fd during the test run. You should be able to notice a huge number of fds, all pointing to the index.html.

Regards,

Rainer

Reply via email to