Re: httpd is creating large number of shared memory segments.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

We changed our script that used to do a graceful restart to also record the number of shared memory segments before and after the restart. Plotting the number of shm segments vs. the number of times the server was restarted gracefully was almost a straight line.

Even doing a `apachectl -k restart` didn't solve the problem. Rather, the shared memory count again went up by 1.

Doing an `apachectl -k stop` removed all shared memory segments.

On starting it again using `apachectl -k start`, the server created 3 shared memory segments, two of which had status as dest. However, repeatedly doing ipcs -m -i <shmid> even on these shm segments showed that httpd and php-cgi processes were attaching and detaching these segments as well.

So, is this the expected behavior of the server? And does the apache server needs to be periodically stopped and started in case of multiple graceful restarts?

Thanks for your kind consideration,
Chandranshu


On Thu, Jun 25, 2009 at 5:43 PM, Chandranshu . <chandranshu@xxxxxxxxx> wrote:
Hi

We're running http-2.2.3 with preform MPM and host around 500 sites for many users. We always do a graceful restart of the server lest some users lose their session. The server has created a large number of shared memory segments. We have seen it creating as many as 4030 segments and this number consistently stays above 1500.

Doing ipcs -m shows that many of these segments have been marked for destruction but are still attached to some processes. Doing a grep on the pid of the process that last attached the segment returns nothing. Doing it in a while loop revealed that there were numerous httpd processes being spawned that attached the shm segment for a brief time before vanishing.

Why are there so many shared memory segments and are they not freed up by the main process?Also, could someone please guide me as to why are the processes dying so fast and replaced by new processes? I guess it has something to do with the following config:
<IfModule prefork.c>
  StartServers      2
  MinSpareServers   10
  MaxSpareServers   25
  ServerLimit     1024
  MaxClients      1024
  MaxRequestsPerChild  4000
</IfModule>

Thanks and regards
Chandranshu


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux