[imp] runaway HTTPD/Memory problems

Matthew Hilty mhilty at artic.edu
Mon Feb 17 10:33:31 PST 2003


Hi all,
	I've just recently provided access to IMP 3.1 to a ~3000 user
community which had been using 2.2.8 for about a year without problems.
During tests, the problem I'm about to describe did not exhibit itself,
but under the load of our production environment, it turns out that we're
experiencing occasional runaway httpd processes that consume up to 500+Mb
of RAM, and which force the server to swap dramatically.  For now, the
solution is  5 minute cron job that straces the process once it hits 200Mb
RSS and then kills it.  This kind of watchdog works well enough, but it's
not a decent solution in the long run. Kill -9 is the "solution", so to
speak!

for example...( killed at 90Mb RSS consumption)
31535 apache    14   0 45392  43M  4520 R    98.8  5.8   1:49 httpd

Here are the basic system specs:

RedHat 7.1; dual PIII 500Mhz processors; 776 Mb RAM, 542Mb swap
apache-1.3.27-1.7.1
php-4.1.2-0horde1 et al.
imap-devel-2000c-10
horde-2.1-3
imp-3.1-2
turba-1.1-2

---php.ini---
max_execution_time = 30
memory_limit = 8M
post_max_size = 2M
upload_max_filesize = 2M


I've already gotten the impression that most people encourage upgrading
to 4.2.3 to solve a variety of problems, but none specifically like I'm
noticing. I'm waiting for the Horde distro of 4.2.3 since I read that it
should be along shortly.

Attachments are limited to 2 Mb -- there were definite performance hits
with larger attachments before decreasing this, hence this limit (plus
email is not filesharing...:) but, the condition I describe persists and
strace provides the following consistent output with some variation in
memory addresses.  It seems like a php vs IMAP problem, but I could be
way off. I appreciate in advance any advice and guidance in solving this
problem.


Thanks,

Matthew

<snip strace -o thisfile.out -p pidof-MONGO apache process>

open("/var/www/html/horde/config/../imp/templates/folders/row.inc",
O_RDONLY) = 10
getcwd("/var/www/html/horde/imp", 4095) = 24
lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html/horde", {st_mode=S_IFDIR|0750, st_size=4096, ...})
= 0
lstat64("/var/www/html/horde/config", {st_mode=S_IFDIR|0750, st_size=4096,
...}) = 0
lstat64("/var/www/html/horde/imp", {st_mode=S_IFDIR|0750, st_size=4096,
...}) = 0
lstat64("/var/www/html/horde/imp/templates", {st_mode=S_IFDIR|0750,
st_size=4096, ...}) = 0
lstat64("/var/www/html/horde/imp/templates/folders",
{st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
lstat64("/var/www/html/horde/imp/templates/folders/row.inc",
{st_mode=S_IFREG|0640, st_size=461, ...}) = 0
ioctl(10, TCGETS, 0xbfff5940)           = -1 ENOTTY (Inappropriate ioctl
for device)
fstat64(10, {st_mode=S_IFREG|0640, st_size=461, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x44acb000
read(10, "<tr class=\"<?= $navclass ?>\">\n  "..., 8192) = 461
read(10, "", 4096)                      = 0
read(10, "", 8192)                      = 0
ioctl(10, TCGETS, 0xbfff4910)           = -1 ENOTTY (Inappropriate ioctl
for device)
close(10)                               = 0
munmap(0x44acb000, 4096)                = 0

</snip>







More information about the imp mailing list