dear community, i have a question about the basic "default" setup from debian with current ispconfig version. how much "concurrent users" are predefined, and how i can increase that? i had the problem that my server closes the connection after about 500 users connects to it. can i increase that if i edit this file: /etc/apache2/mods-available/mpm_worker.conf I am using PHP-Fast-CGI with a selected PHP-Version they i have installed. Thank you so much many greets
This is /etc/apache2/mods-available/mpm_worker.conf from debian, not ubuntu, but likely is the same (though MaxRequestWorkers of 150 doesn't line up with your "about 500", so maybe this is not your issue): Code: # worker MPM # StartServers: initial number of server processes to start # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadLimit: ThreadsPerChild can be changed to this maximum value during a # graceful restart. ThreadLimit can only be changed by stopping # and starting Apache. # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestWorkers: maximum number of threads # MaxConnectionsPerChild: maximum number of requests a server process serves <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 150 MaxConnectionsPerChild 0 </IfModule> Yes, that would be the config file. https://httpd.apache.org/docs/2.4/mod/worker.html for more info.
thank you for your reply, one question: is there a possibility with command line to ask the current "configuration" what is loaded? that means the values that i have added in this file, that i can then through apache command see if this values are correct loaded? and what is the difference for mpm_prefork and mpm_worker? is it better to use the prefork or the worker? thank you!
prefork is single thread only. worker (and event) are multi-threaded. worker will serve more connections, faster, and using less system resources than prefork. (caveat: prefork is actually faster if you only serve one request at a time) in worker, threads are attached to connections, not requests. a long keep-alive persistent connection will keep hold of a thread until it's closed. event uses a dedicated thread to handle the keep-alive connections, event generally uses a bit less system resources than worker. event behaved identically to worker when using ssl connections on apache 2.2, it provides the same improvements over worker when using ssl connections on apache 2.4. i have seen some arguments that worker might be a better option when using apache as a proxy, though they were posted around 3 years ago, may no longer still be the case. in pretty much all real world use cases, worker and event are going to be better options than prefork. i think event will normally be very slightly faster, and consume slightly less resources, worker might be a little bit more stable. but there's not going to be massive differences between worker and event. personally, i always set apache to use mpm_event, and so far, it's never been the cause of any problems.
Thank you so much for your reply. Can you maybe tell how i can change from prefork to worker / events? in my case i have tried this but getting this message: root@srv:/# a2dismod mpm_prefork ERROR: The following modules depend on mpm_prefork and need to be disabled first: php7.3 root@srv:/# a2enmod mpm_worker Considering conflict mpm_event for mpm_worker: Considering conflict mpm_prefork for mpm_worker: ERROR: Module mpm_prefork is enabled - cannot proceed due to conflicts. It needs to be disabled first! i have installed more php versions for selecting in web PHP Fast CGI (7.1, 7.2, 7.3 and 7.4). thank you
a2dismod mpm_prefork a2dismod php7.3 a2enmod mpm_event (or mpm_worker if you prefer) systemctl restart apache2.service you may also need to 'a2enconf php7.3-fpm' if it isn't already enabled. also may need 'a2enmod proxy_fcgi setenvif', possibly also enable 'a2enmod alias rewrite', although i'd expect them to already be enabled. it''ll also be worth running 'a2enmod http2 ssl' as well before restarting apache2. ssl may already be enabled, but http2 won't be if you're using mod_php
Thank you so much, now i have changed to worker. one question: i have in no website apache directives set, but only (in this case server-status have activated it for see the status for the Server MPM: worker) works only on all webs with acitvated php 7.1. i have tried to open DOMAIN/server-status. on all PHP 7.1 webs its showing up, but on all other nothing appear (only i get 404). but all other website (7.2, 7.3 and 7.4) i cannot open this page. but i would configure the worker globally for server. how i can handle that? thank you so much for your help
The mpm module in use is the same for all sites, there is no difference between what php version a site uses, or if it has php disabled. The /server-status location is probably the same, handled in global apache config for all sites. What do you have in /etc/apache2/mods-enabled/status.conf and what does 'grep -R server-status /etc/apache2/' show?
Thank you so much for your help. It seems that my .htaccess file from Wordpress has not allowed the access. i have renamed the .htaccess to _htaccess. Now i can access the page. thank you so much for your help. this was really helpful for me. many greets
dear Jesse Norell, i have one question, after that i have done that, i get know on phpmyadmin this error, how can i fix this? can it be that now another php version will be used for phpmyadmin? thank you! Image:
Phpmyadmin will use the default php interpreter, maybe you enabled the wrong one, or multiple ones? What do you have in /etc/apache2/conf-enabled?
Thank you so much Jesse, i have this in my conf enabled: root@srv01:/etc/apache2/conf-enabled# ls -lsa insgesamt 8 4 drwxr-xr-x 2 root root 4096 Nov 11 04:57 . 4 drwxr-xr-x 8 root root 4096 Nov 9 22:49 .. 0 lrwxrwxrwx 1 root root 34 Mär 23 2020 apache2-doc.conf -> ../conf-available/apache2-doc.conf 0 lrwxrwxrwx 1 root root 30 Mär 23 2020 charset.conf -> ../conf-available/charset.conf 0 lrwxrwxrwx 1 root root 30 Mär 23 2020 httpoxy.conf -> ../conf-available/httpoxy.conf 0 lrwxrwxrwx 1 root root 44 Mär 23 2020 localized-error-pages.conf -> ../conf-available/localized-error-pages.conf 0 lrwxrwxrwx 1 root root 24 Mär 23 2020 mailman.conf -> /etc/mailman/apache.conf 0 lrwxrwxrwx 1 root root 46 Mär 23 2020 other-vhosts-access-log.conf -> ../conf-available/other-vhosts-access-log.conf 0 lrwxrwxrwx 1 root root 33 Nov 11 04:57 php7.4-fpm.conf -> ../conf-available/php7.4-fpm.conf 0 lrwxrwxrwx 1 root root 33 Mär 23 2020 phpmyadmin.conf -> ../conf-available/phpmyadmin.conf 0 lrwxrwxrwx 1 root root 32 Mär 23 2020 roundcube.conf -> ../conf-available/roundcube.conf 0 lrwxrwxrwx 1 root root 31 Mär 23 2020 security.conf -> ../conf-available/security.conf 0 lrwxrwxrwx 1 root root 36 Mär 23 2020 serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf Thank you
dear Jesse, i have now configured the server with these settings: Code: # default #<IfModule mpm_worker_module> # StartServers 2 # MinSpareThreads 25 # MaxSpareThreads 75 # ThreadLimit 64 # ThreadsPerChild 25 # MaxRequestWorkers 150 # MaxConnectionsPerChild 0 #</IfModule> <IfModule mpm_worker_module> ServerLimit 250 StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxRequestWorkers 8000 MaxConnectionsPerChild 10000 </IfModule> Is there a way to determine these values in order to adapt them to the hardware and performance? currently i think i will probably want too much from my server with 8000 connections, right? My Hardware: Dell Power Edge R640 CPUS: 32 CPUs x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz RAM: 128 GB SSDs: 4 x 1TB (RAID10) thank you so much
That depends on what the processes handling those connections are doing, if they're all sitting idle waiting for some event/resource, you could surely handle many more than that, but if they're all very cpu intensive, you might have your system pretty well maxed with less than 50 connections. I've never looked for any profiling tools for apache specifically; for the OS itself you can install and enable sysstat to get an idea of what the system is doing (cpu, memory, io, etc.). Once you identify a bottleneck you can see what can be done to eliminate/improve that.
for the phpmyadmin error, for your initial attempt to switch to php-fpm: and from what you posted on friday: i believe you should only enable the default php-fpm version, which judging by the mod_php you were using before, is php7.3-fpm. changing that may fix your problem. (may not, but it will avoid other problems)