Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
Thank you for your feeback, i guess i have to review the whole configuration design in the migration process and move balancer definitions in vhost section. Regards. On Tue, Dec 23, 2014 at 2:52 PM, Jim Jagielski wrote: > If migrating to 2.4, I would suggest using the method Yann describes > and have each balancer defined in its own vhost section. This is > because it is most likely that inheriting balancers will be > deprecated/removed in later versions of httpd, simply because > (1) it doesn't make sense and (2) causes the kinds of issues > you see. > > I would recommend using mod_macro to help out with your migration; > you could create a macro Vhost definition... > > > On Dec 19, 2014, at 10:49 AM, Sylvain Goulmy wrote: > > > > Yann, > > > > I did some additionnal tests with the BalancerInherit directive. If I > add the directive "BalancerInherit Off" in the main section I still have > the issue (shm saturation) if the number of virtual hosts/balancers is too > important. With a single virtual host then I can access correctly to the > application whereas I shouldn't be able to ... In other words, the > directive seems to have no effect. Anyway if it worked correctly i couldn't > have accessed to my application anymore, so i guess it doesn't deserve to > spend more time on this question. > > > > I also did some test with the balancer definition inside the virtual > host : I confirm that this configuration is ok. Unfortunately for me, this > choice introduces significant change on my apache 2.2 configuration and > adds a lot of complexity in my migration process. I also lose some > functionnality like an global overview of my balancer states via a single > URL. > > > > So before considering this option, as far as you know, do you think > there is definitely no other options available. > > > > Regards. > > Sylvain > > > > On Fri, Dec 19, 2014 at 2:06 PM, Yann Ylavic > wrote: > > Hi Sylvain, > > > > On Fri, Dec 19, 2014 at 11:04 AM, Sylvain Goulmy > wrote: > > > > > > My configuration is currently defining 338 virtual hosts and 169 proxy > > > balancers. > > > > > > The balancers are defined in the main section. Each virtual host > refers only > > > one balancer. > > > > > > Here what i notice : > > > - Apache creates one shm for each balancer > > > - Each virtual hosts creates one shm for each balancer even if it > doesn't > > > refer it... > > > > in 2.4, each vhost's balancer needs it own SHM plus as much SHMs as > > the balancer's members (the dynamic balancer-manager manages per > > vhost). > > By declaring all the balancers in the main config (and using > > "BalancerInherit on" to make them *all* available in *all* the > > vhosts), you multiply that number by the number of balancers and the > > number of of vhosts... > > > > > > > > Am i missing a directive that could avoid that behaviour or do i have > to > > > redesign my all configuration by moving each balancer definition at the > > > virtual host level ? > > > > You can't set "BalancerInherit off" since the "main" balancers won't > > be usable in the vhosts anymore. > > Since moreover "each virtual host refers only one balancer" in your > > configuration, you'd better declare each balancer in the corresponding > > vhost, and see that no more shared-memory than needed will be created > > (depending on the number of balancer members used by each vhost). > > > > Regards, > > Yann. > > > > - > > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > > For additional commands, e-mail: users-h...@httpd.apache.org > > > > > - > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > >
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
If migrating to 2.4, I would suggest using the method Yann describes and have each balancer defined in its own vhost section. This is because it is most likely that inheriting balancers will be deprecated/removed in later versions of httpd, simply because (1) it doesn't make sense and (2) causes the kinds of issues you see. I would recommend using mod_macro to help out with your migration; you could create a macro Vhost definition... > On Dec 19, 2014, at 10:49 AM, Sylvain Goulmy wrote: > > Yann, > > I did some additionnal tests with the BalancerInherit directive. If I add the > directive "BalancerInherit Off" in the main section I still have the issue > (shm saturation) if the number of virtual hosts/balancers is too important. > With a single virtual host then I can access correctly to the application > whereas I shouldn't be able to ... In other words, the directive seems to > have no effect. Anyway if it worked correctly i couldn't have accessed to my > application anymore, so i guess it doesn't deserve to spend more time on this > question. > > I also did some test with the balancer definition inside the virtual host : I > confirm that this configuration is ok. Unfortunately for me, this choice > introduces significant change on my apache 2.2 configuration and adds a lot > of complexity in my migration process. I also lose some functionnality like > an global overview of my balancer states via a single URL. > > So before considering this option, as far as you know, do you think there is > definitely no other options available. > > Regards. > Sylvain > > On Fri, Dec 19, 2014 at 2:06 PM, Yann Ylavic wrote: > Hi Sylvain, > > On Fri, Dec 19, 2014 at 11:04 AM, Sylvain Goulmy wrote: > > > > My configuration is currently defining 338 virtual hosts and 169 proxy > > balancers. > > > > The balancers are defined in the main section. Each virtual host refers only > > one balancer. > > > > Here what i notice : > > - Apache creates one shm for each balancer > > - Each virtual hosts creates one shm for each balancer even if it doesn't > > refer it... > > in 2.4, each vhost's balancer needs it own SHM plus as much SHMs as > the balancer's members (the dynamic balancer-manager manages per > vhost). > By declaring all the balancers in the main config (and using > "BalancerInherit on" to make them *all* available in *all* the > vhosts), you multiply that number by the number of balancers and the > number of of vhosts... > > > > > Am i missing a directive that could avoid that behaviour or do i have to > > redesign my all configuration by moving each balancer definition at the > > virtual host level ? > > You can't set "BalancerInherit off" since the "main" balancers won't > be usable in the vhosts anymore. > Since moreover "each virtual host refers only one balancer" in your > configuration, you'd better declare each balancer in the corresponding > vhost, and see that no more shared-memory than needed will be created > (depending on the number of balancer members used by each vhost). > > Regards, > Yann. > > - > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > - To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For additional commands, e-mail: users-h...@httpd.apache.org
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
So is the main issue the amount of shm used, right? > On Dec 19, 2014, at 5:04 AM, Sylvain Goulmy wrote: > > Hi Yann, > > Thank you for your feedback. > > My configuration is currently defining 338 virtual hosts and 169 proxy > balancers. > > The balancers are defined in the main section. Each virtual host refers only > one balancer. > > Here what i notice : > - Apache creates one shm for each balancer > - Each virtual hosts creates one shm for each balancer even if it doesn't > refer it... > > Am i missing a directive that could avoid that behaviour or do i have to > redesign my all configuration by moving each balancer definition at the > virtual host level ? > > Thanks in advance. > Regards. > > Sylvain > > > On Fri, Dec 19, 2014 at 12:06 AM, Yann Ylavic wrote: > If you can manage to recompile the APR library used by your Apache 2.4 > (you probably did that already since 2.4 does not seem to be the > version packaged with RHEL 6.4), you can use "./configure > --enable-posix-shm ..." to use another shared memory mechanism than > the default one (IPC SysV) which is limited to 32K segments (system > wide). > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > Unfortunately, there no equivalent to the Mutex directive for shared > memories, this can't be changed by httpd's configuration (as far as I > know). > > On Thu, Dec 18, 2014 at 2:30 PM, Sylvain Goulmy wrote: > > > > I also noticed that a single proxy_balancer creates almost 350 shm on the > > system. > > > > Is it normal that a single proxy_balancer creates so many shm ? > > How many VirtualHost(s) do you use in your configuration? > Also, how do you declare the balancer(s), in each VirtualHost or in > the main section using BalancerInherit on? > > > > > Do i really have to increase the memory segment on my system in huge > > proportion to handle all my proxy_balancers ? > > The number of IPC SysV shared-memory segments is limited to 32768 on > linux (system wide), and you are already above with 100 * 350, so you > would need to use another SHM mechanism. > Unfortunately, there no equivalent to the Mutex directive for shared > memories, AFAIK this can't be changed by httpd's configuration. > So you would have to recompile the APR library used by your Apache 2.4 > (you probably did that already since RHEL 6.4 does not seem to package > 2.4 by default), and do for example "./configure --enable-posix-shm > ..." to use another shared-memory mechanism. > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > However 350 shm per balancer looks weird to me, your configuration may > do something not optimal... > > Regards, > Yann. > > - > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > - To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For additional commands, e-mail: users-h...@httpd.apache.org
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
Yann, I did some additionnal tests with the BalancerInherit directive. If I add the directive "BalancerInherit Off" in the main section I still have the issue (shm saturation) if the number of virtual hosts/balancers is too important. With a single virtual host then I can access correctly to the application whereas I shouldn't be able to ... In other words, the directive seems to have no effect. Anyway if it worked correctly i couldn't have accessed to my application anymore, so i guess it doesn't deserve to spend more time on this question. I also did some test with the balancer definition inside the virtual host : I confirm that this configuration is ok. Unfortunately for me, this choice introduces significant change on my apache 2.2 configuration and adds a lot of complexity in my migration process. I also lose some functionnality like an global overview of my balancer states via a single URL. So before considering this option, as far as you know, do you think there is definitely no other options available. Regards. Sylvain On Fri, Dec 19, 2014 at 2:06 PM, Yann Ylavic wrote: > > Hi Sylvain, > > On Fri, Dec 19, 2014 at 11:04 AM, Sylvain Goulmy > wrote: > > > > My configuration is currently defining 338 virtual hosts and 169 proxy > > balancers. > > > > The balancers are defined in the main section. Each virtual host refers > only > > one balancer. > > > > Here what i notice : > > - Apache creates one shm for each balancer > > - Each virtual hosts creates one shm for each balancer even if it doesn't > > refer it... > > in 2.4, each vhost's balancer needs it own SHM plus as much SHMs as > the balancer's members (the dynamic balancer-manager manages per > vhost). > By declaring all the balancers in the main config (and using > "BalancerInherit on" to make them *all* available in *all* the > vhosts), you multiply that number by the number of balancers and the > number of of vhosts... > > > > > Am i missing a directive that could avoid that behaviour or do i have to > > redesign my all configuration by moving each balancer definition at the > > virtual host level ? > > You can't set "BalancerInherit off" since the "main" balancers won't > be usable in the vhosts anymore. > Since moreover "each virtual host refers only one balancer" in your > configuration, you'd better declare each balancer in the corresponding > vhost, and see that no more shared-memory than needed will be created > (depending on the number of balancer members used by each vhost). > > Regards, > Yann. > > - > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > >
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
Hi Sylvain, On Fri, Dec 19, 2014 at 11:04 AM, Sylvain Goulmy wrote: > > My configuration is currently defining 338 virtual hosts and 169 proxy > balancers. > > The balancers are defined in the main section. Each virtual host refers only > one balancer. > > Here what i notice : > - Apache creates one shm for each balancer > - Each virtual hosts creates one shm for each balancer even if it doesn't > refer it... in 2.4, each vhost's balancer needs it own SHM plus as much SHMs as the balancer's members (the dynamic balancer-manager manages per vhost). By declaring all the balancers in the main config (and using "BalancerInherit on" to make them *all* available in *all* the vhosts), you multiply that number by the number of balancers and the number of of vhosts... > > Am i missing a directive that could avoid that behaviour or do i have to > redesign my all configuration by moving each balancer definition at the > virtual host level ? You can't set "BalancerInherit off" since the "main" balancers won't be usable in the vhosts anymore. Since moreover "each virtual host refers only one balancer" in your configuration, you'd better declare each balancer in the corresponding vhost, and see that no more shared-memory than needed will be created (depending on the number of balancer members used by each vhost). Regards, Yann. - To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For additional commands, e-mail: users-h...@httpd.apache.org
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
I also forgot to mention that i have set the BalancerInherit to Off before loading the balancers definition. It unfortunatly doesn't change the behaviour. Sylvain On Fri, Dec 19, 2014 at 11:04 AM, Sylvain Goulmy wrote: > > Hi Yann, > > Thank you for your feedback. > > My configuration is currently defining 338 virtual hosts and 169 proxy > balancers. > > The balancers are defined in the main section. Each virtual host refers > only one balancer. > > Here what i notice : > - Apache creates one shm for each balancer > - Each virtual hosts creates one shm for each balancer even if it doesn't > refer it... > > Am i missing a directive that could avoid that behaviour or do i have to > redesign my all configuration by moving each balancer definition at the > virtual host level ? > > Thanks in advance. > Regards. > > Sylvain > > > On Fri, Dec 19, 2014 at 12:06 AM, Yann Ylavic > wrote: > >> If you can manage to recompile the APR library used by your Apache 2.4 >> (you probably did that already since 2.4 does not seem to be the >> version packaged with RHEL 6.4), you can use "./configure >> --enable-posix-shm ..." to use another shared memory mechanism than >> the default one (IPC SysV) which is limited to 32K segments (system >> wide). >> The number of segments would then be limited by the usual number of >> file descriptors per process (ulimit -n). >> >> Unfortunately, there no equivalent to the Mutex directive for shared >> memories, this can't be changed by httpd's configuration (as far as I >> know). >> >> On Thu, Dec 18, 2014 at 2:30 PM, Sylvain Goulmy >> wrote: >> > >> > I also noticed that a single proxy_balancer creates almost 350 shm on >> the >> > system. >> > >> > Is it normal that a single proxy_balancer creates so many shm ? >> >> How many VirtualHost(s) do you use in your configuration? >> Also, how do you declare the balancer(s), in each VirtualHost or in >> the main section using BalancerInherit on? >> >> > >> > Do i really have to increase the memory segment on my system in huge >> > proportion to handle all my proxy_balancers ? >> >> The number of IPC SysV shared-memory segments is limited to 32768 on >> linux (system wide), and you are already above with 100 * 350, so you >> would need to use another SHM mechanism. >> Unfortunately, there no equivalent to the Mutex directive for shared >> memories, AFAIK this can't be changed by httpd's configuration. >> So you would have to recompile the APR library used by your Apache 2.4 >> (you probably did that already since RHEL 6.4 does not seem to package >> 2.4 by default), and do for example "./configure --enable-posix-shm >> ..." to use another shared-memory mechanism. >> The number of segments would then be limited by the usual number of >> file descriptors per process (ulimit -n). >> >> However 350 shm per balancer looks weird to me, your configuration may >> do something not optimal... >> >> Regards, >> Yann. >> >> - >> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org >> For additional commands, e-mail: users-h...@httpd.apache.org >> >>
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
Hi Yann, Thank you for your feedback. My configuration is currently defining 338 virtual hosts and 169 proxy balancers. The balancers are defined in the main section. Each virtual host refers only one balancer. Here what i notice : - Apache creates one shm for each balancer - Each virtual hosts creates one shm for each balancer even if it doesn't refer it... Am i missing a directive that could avoid that behaviour or do i have to redesign my all configuration by moving each balancer definition at the virtual host level ? Thanks in advance. Regards. Sylvain On Fri, Dec 19, 2014 at 12:06 AM, Yann Ylavic wrote: > > If you can manage to recompile the APR library used by your Apache 2.4 > (you probably did that already since 2.4 does not seem to be the > version packaged with RHEL 6.4), you can use "./configure > --enable-posix-shm ..." to use another shared memory mechanism than > the default one (IPC SysV) which is limited to 32K segments (system > wide). > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > Unfortunately, there no equivalent to the Mutex directive for shared > memories, this can't be changed by httpd's configuration (as far as I > know). > > On Thu, Dec 18, 2014 at 2:30 PM, Sylvain Goulmy > wrote: > > > > I also noticed that a single proxy_balancer creates almost 350 shm on the > > system. > > > > Is it normal that a single proxy_balancer creates so many shm ? > > How many VirtualHost(s) do you use in your configuration? > Also, how do you declare the balancer(s), in each VirtualHost or in > the main section using BalancerInherit on? > > > > > Do i really have to increase the memory segment on my system in huge > > proportion to handle all my proxy_balancers ? > > The number of IPC SysV shared-memory segments is limited to 32768 on > linux (system wide), and you are already above with 100 * 350, so you > would need to use another SHM mechanism. > Unfortunately, there no equivalent to the Mutex directive for shared > memories, AFAIK this can't be changed by httpd's configuration. > So you would have to recompile the APR library used by your Apache 2.4 > (you probably did that already since RHEL 6.4 does not seem to package > 2.4 by default), and do for example "./configure --enable-posix-shm > ..." to use another shared-memory mechanism. > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > However 350 shm per balancer looks weird to me, your configuration may > do something not optimal... > > Regards, > Yann. > > - > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > >
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
On Fri, Dec 19, 2014 at 12:06 AM, Yann Ylavic wrote: > If you can manage to recompile the APR library used by your Apache 2.4 > (you probably did that already since 2.4 does not seem to be the > version packaged with RHEL 6.4), you can use "./configure > --enable-posix-shm ..." to use another shared memory mechanism than > the default one (IPC SysV) which is limited to 32K segments (system > wide). > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > Unfortunately, there no equivalent to the Mutex directive for shared > memories, this can't be changed by httpd's configuration (as far as I > know). Oups, this leading part was not meant to be sent, and is rephrased anyway below according to message, more accurately. Please ignore it... > > On Thu, Dec 18, 2014 at 2:30 PM, Sylvain Goulmy wrote: >> >> I also noticed that a single proxy_balancer creates almost 350 shm on the >> system. >> >> Is it normal that a single proxy_balancer creates so many shm ? > > How many VirtualHost(s) do you use in your configuration? > Also, how do you declare the balancer(s), in each VirtualHost or in > the main section using BalancerInherit on? > >> >> Do i really have to increase the memory segment on my system in huge >> proportion to handle all my proxy_balancers ? > > The number of IPC SysV shared-memory segments is limited to 32768 on > linux (system wide), and you are already above with 100 * 350, so you > would need to use another SHM mechanism. > Unfortunately, there no equivalent to the Mutex directive for shared > memories, AFAIK this can't be changed by httpd's configuration. > So you would have to recompile the APR library used by your Apache 2.4 > (you probably did that already since RHEL 6.4 does not seem to package > 2.4 by default), and do for example "./configure --enable-posix-shm > ..." to use another shared-memory mechanism. > The number of segments would then be limited by the usual number of > file descriptors per process (ulimit -n). > > However 350 shm per balancer looks weird to me, your configuration may > do something not optimal... > > Regards, > Yann. - To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For additional commands, e-mail: users-h...@httpd.apache.org
Re: [users@httpd] Apache 2.4 create a huge amount of shared memory segments
If you can manage to recompile the APR library used by your Apache 2.4 (you probably did that already since 2.4 does not seem to be the version packaged with RHEL 6.4), you can use "./configure --enable-posix-shm ..." to use another shared memory mechanism than the default one (IPC SysV) which is limited to 32K segments (system wide). The number of segments would then be limited by the usual number of file descriptors per process (ulimit -n). Unfortunately, there no equivalent to the Mutex directive for shared memories, this can't be changed by httpd's configuration (as far as I know). On Thu, Dec 18, 2014 at 2:30 PM, Sylvain Goulmy wrote: > > I also noticed that a single proxy_balancer creates almost 350 shm on the > system. > > Is it normal that a single proxy_balancer creates so many shm ? How many VirtualHost(s) do you use in your configuration? Also, how do you declare the balancer(s), in each VirtualHost or in the main section using BalancerInherit on? > > Do i really have to increase the memory segment on my system in huge > proportion to handle all my proxy_balancers ? The number of IPC SysV shared-memory segments is limited to 32768 on linux (system wide), and you are already above with 100 * 350, so you would need to use another SHM mechanism. Unfortunately, there no equivalent to the Mutex directive for shared memories, AFAIK this can't be changed by httpd's configuration. So you would have to recompile the APR library used by your Apache 2.4 (you probably did that already since RHEL 6.4 does not seem to package 2.4 by default), and do for example "./configure --enable-posix-shm ..." to use another shared-memory mechanism. The number of segments would then be limited by the usual number of file descriptors per process (ulimit -n). However 350 shm per balancer looks weird to me, your configuration may do something not optimal... Regards, Yann. - To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org For additional commands, e-mail: users-h...@httpd.apache.org