Re: How do I choose the best settings for the Apache Server?

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

 



On 15/09/2023 8:14 pm, Jason Long wrote:
Hello,
Thank you so much.
Can you share an ideal Apache configuration file? Something like a template.

Not saying this is ideal but I went through an iterative set of confs and came to the following for a 4GB VM which seems to be OK in a lightly loaded scenario.

# event MPM
# ServerLimit: Upper limit on configurable number of processes (default 16)
# StartServers: initial number of server processes to start (default 3)
# MinSpareThreads: minimum number of worker threads which are kept spare (default 75)
# MaxSpareThreads: maximum number of worker threads which are kept spare (default 250)
# ThreadLimit: upper limit on the configurable number of threads per child process (default 64)
# ThreadsPerChild: constant number of worker threads in each server process (default 25)
# MaxRequestWorkers: maximum number of worker threads (ServerLimit*ThreadsPerChild)
# MaxConnectionsPerChild: maximum number of requests a server process serves
##
# After reading https://www.liquidweb.com/kb/apache-performance-tuning-apache-mpm-modules/
<IfModule mpm_event_module>
        ServerLimit                     32
        StartServers                    16
        MinSpareThreads                 400
#        MaxSpareThreads                 250 increase == MaxRequestWorkers dferradal@xxxxxxxxxx
        MaxSpareThreads                 800
        ThreadLimit                     64
        ThreadsPerChild                 50
        AsyncRequestWorkerFactor        2
        MaxRequestWorkers               800
        MaxConnectionsPerChild          0
</IfModule>

##
# First stab after reading Apache docs
#<IfModule mpm_event_module>
#    ServerLimit            16
#    StartServers            3
#    MinSpareThreads            75
#    MaxSpareThreads            250
#    ThreadLimit            750
#    ThreadsPerChild            250
#    AsyncRequestWorkerFactor    2
#    MaxRequestWorkers        1000
#    MaxConnectionsPerChild        0
#</IfModule>
# Original
#<IfModule mpm_event_module>
#    StartServers                    2
#    MinSpareThreads                 25
#    MaxSpareThreads                 75
#    ThreadLimit                     64
#    ThreadsPerChild                 25
#    MaxRequestWorkers               150
#    MaxConnectionsPerChild          0
#</IfModule>







On Fri, Sep 15, 2023 at 1:17 AM, Stormy
<stormy22@xxxxxxxxx> wrote:
On 2023-09-14 16:01, Jason Long wrote:
> Hello,
> Thanks again.
> How about the other parameters? For example, how can I estimate the best
> value for "MaxRequestsPerChild", "ThreadsPerChild" and etc.?

What is wrong with the default values? Why do you want to "estimate"?
Have you tried different values? If so, what was the upside/downside of
your trials? Logs? Stats?

You say somewhere below that your server "uses WordPress, so it also has
PHP and MySQL."  Fine, these are services (memory and CPU cycles)
outside the scope of Apache/httpd which just "serves" what it is given
to "serve."

As an example, I have just rewritten a quite big (474 Gb) WP website in
html5 with minimal php and js. Result: client output identical, Apache
throughput just over 90% lower. YMMV

Good luck,
Paul
>
>
>    On Thu, Sep 14, 2023 at 10:27 PM, Frank Gingras
>    <thumbs@xxxxxxxxxx> wrote:
>    Just comment out the LoadModule line for prefork, and uncomment the
>    line for event.
>
>    There is no "template"; you just need to tweak event to spawn more
>    workers if needed, but the default settings should be fine for small
>    volumes.
>
>    The prefork mpm should really be avoided at this point, as it spawns
>    a separate process for every single HTTP request.
>
>    On Thu, Sep 14, 2023 at 2:47 PM Jason Long
>    <hack3rcon@xxxxxxxxx.invalid> wrote:
>
>        Hello,
>        Thanks again.
>        So, I must remove the "mpm_prefork_module" section. Am I right?
>
>        Can you show me an Apache configuration template for use with
>        Wordpress?
>
>        When I must use "mpm_prefork_module"?
>
>
>            On Thu, Sep 14, 2023 at 4:24 PM, Frank Gingras
>            <thumbs@xxxxxxxxxx <mailto:thumbs@xxxxxxxxxx>> wrote:
>            500MB of RAM for the httpd processes, yes. The rest of the
>            RAM will go towards php and MySQL.
>
>            Since wordpress is involved, you'll want to use the event
>            mpm (nor prefork, nor event), proxy_fcgi and php-fpm. See:
>
>            https://cwiki.apache.org/confluence/display/HTTPD/PHP-FPM
>            <https://cwiki.apache.org/confluence/display/HTTPD/PHP-FPM>
>
>
>
>            On Thu, Sep 14, 2023 at 6:21 AM Jason Long
>            <hack3rcon@xxxxxxxxx <mailto:hack3rcon@xxxxxxxxx>> wrote:
>
>                Hello,
>                Thank you so much for your reply.
>                Can you tell me more about "It should run well under
>                500MB even with thousands of workers."? Do you mean 500
>                MB memory?
>
>                My server uses WordPress, so it also has PHP and MySQL.
>                What parameters should I change?
>
>                What is the formula for calculating "mpm_prefork_module"
>                and "mpm_worker_module"
>                parameters?
>
>
>
>                    On Wed, Sep 13, 2023 at 5:00 PM, Francois Gingras
>                    <francois.gingras@xxxxxxxxx
>                    <mailto:francois.gingras@xxxxxxxxx>> wrote:
>                    You'll want to make sure you're using the event mpm,
>                    in any case. It should run well under 500MB even
>                    with thousands of workers.
>
>                    If php or another dynamic language is involved, then
>                    the answer will depend on what you use. You should
>                    also consider if other services use RAM, such as a
>                    rdbms.
>
>
>                    On Wed, Sep 13, 2023 at 8:52 AM Jason Long
>                    <hack3rcon@xxxxxxxxx.invalid> wrote:
>
>                        Hello,
>                        My server has 6 GB RAM and 4 virtual CPUs. I
>                        want to know How can I change the following
>                        settings for better performance?
>
>
>                        Timeout 45
>                        KeepAlive On
>                        MaxKeepAliveRequests 100
>                        KeepAliveTimeout 15
>
>                        <IfModule mpm_prefork_module>
>                              StartServers                 3
>                              MinSpareServers         3
>                              MaxSpareServers        3
>                              ServerLimit                   50
>                              MaxClients                    50
>                              MaxRequestsPerChild  1000
>                        </IfModule>
>
>                        <IfModule mpm_worker_module>
>                              StartServers              3
>                              MaxClients                50
>                              MinSpareThreads     3
>                              MaxSpareThreads    3
>                              ThreadsPerChild       25
>                              MaxRequestsPerChild  1000
>                        </IfModule>
>
>
>                        I'm thankful if anyone can guide me to choose
>                        the above settings according to my server
>                        hardware specifications. If you know of other
>                        settings, please share.
>
>
>                        Thank you.
>
>                        ---------------------------------------------------------------------
>                        To unsubscribe, e-mail:
>                        users-unsubscribe@xxxxxxxxxxxxxxxx
>                        <mailto:users-unsubscribe@xxxxxxxxxxxxxxxx>
>                        For additional commands, e-mail:
>                        users-help@xxxxxxxxxxxxxxxx
>                        <mailto:users-help@xxxxxxxxxxxxxxxx>

>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



-- 
Signed email is an absolute defence against phishing. This email has
been signed with my private key. If you import my public key you can
automatically decrypt my signature and be sure it came from me. Your
email software can handle signing.

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[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