AH03490: scoreboard is full, note at MaxRequestWorkers.Increase ServerLimit.

kariha

Verified User
Joined
Sep 12, 2011
Messages
46
I am looking for a solution to the error:
AH03490: scoreboard is full, note at MaxRequestWorkers.Increase ServerLimit.

I use nginx_apache as webserver on my servers.
Also installed CSF and ModSecurity for security.

My Apache version: Apache/2.4.58

I've never seen http go unanswered before, even when sites on the server are attacked. But for the last 2 weeks, all sites on the server have been down. It gives white page error. When I refresh the httpd service, everything starts working smoothly.

I increased the values from /etc/httpd/conf/extra/httpd-mpm.conf file.

Code:
<IfModule mpm_event_module>
     StartServers 6
     MinSpareThreads 32
     MaxSpareThreads 128
     ThreadsPerChild 64
     ServerLimit 32
     MaxRequestWorkers 4096
     MaxConnectionsPerChild 20000
</IfModule>

To test if it would make a difference, I set the "apache_mpm" setting to "auto" on one server and "event" on the other. But in both of them, the "scoreboard full" error occurs at least once a day at different times.

Although sites like Semrus are not very fast, httpd stops responding when they send a large number of requests.
What path should I follow? Can you help me?
 
Last edited:
I don't know if nGinx also uses php-fpm but maybe you can rais the php_fpm_max_children_default= setting to a higher value than 10 in the directadmin.conf file and do the rewrite_confs afterwards?
 
That's wrong setting.

For basic knowledge.
Code:
MaxRequestWorkers = ServerLimit * ThreadsPerChild.
In this case, you can't change value of "ThreadsPerChild".

So only way to increase this, you must tuning "ServerLimit".

Please do matching with your hardware. Otherwise, it could make your server freeze.
 
Thank you for your help. I updated the settings as follows.
Code:
<IfModule mpm_event_module>
    StartServers             6
    MinSpareThreads         32
    MaxSpareThreads        128
    ThreadsPerChild         64
    ServerLimit            150
    MaxRequestWorkers     9600
    MaxConnectionsPerChild   10000
</IfModule>
I also changed the php_fpm_max_children_default setting to 100.
If you have any other suggestions, you can tell me.

My server features are as follows:
Intel Xeon E5-1650V3
8x RAM 32768MB DDR4 ECC

I will let you know here again whether I get any errors with the settings I made.
 
Last edited:
php_fpm_max_children 100 on such CPU - good for 5-10 websites or less, if you have more websites/accounts and want to avoid when 1 domain overload server - decrease it to 20-30, what will fit you and will remove errors from php-fpm log. Of course i'm talking about custom php-fpm template that applies for every user.
 
I made the httpd settings, but when I examined the logs, I found out what was causing the problem.

There are many domains on the server that use the same script. There is a cron file on these sites and it runs every minute. It connects to a url to pull exchange rates. The connection to this url is made with curl. The link is not responding right now. No timeout value is given to curl codes. For example, the url x.com/cron.php is running every minute. Since Curl cannot establish a connection, the process is never completed and another minute this cron.php is run again. The site trying to run cron does not respond and gives an SSL error. Other websites are working in this process.

Since many cron.php files are rerun every minute and this process never ends, httpd stops responding after a while.

Why does curl enter an infinite loop even though there is a timeout value in the php.ini file? Can we set a server-based timeout value for curl?

My English is not very good. I apologize if there is anything wrong or difficult to understand.
 
maybe there have some weird setting in their script like

Code:
ini_set('max_execution_time', 0);
ignore_user_abort(true);


"curl" don't have default option of "CURLOPT_TIMEOUT", So no ways to set this in globals.


this is just suggestion.
trying prevent changing value of ""max_execution_time"


#/usr/local/directadmin/data/templates/custom/php-fpm.conf.custom2
Code:
php_admin_value[max_execution_time] = 10

then rewrite config
Code:
da build rewrite_confs
 
Back
Top