Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14413837
D16586.id39927.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
D16586.id39927.diff
View Options
diff --git a/src/applications/config/check/PhabricatorMySQLSetupCheck.php b/src/applications/config/check/PhabricatorMySQLSetupCheck.php
--- a/src/applications/config/check/PhabricatorMySQLSetupCheck.php
+++ b/src/applications/config/check/PhabricatorMySQLSetupCheck.php
@@ -44,6 +44,40 @@
->addMySQLConfig('max_allowed_packet');
}
+ $max_connections = self::loadRawConfigValue('max_connections');
+
+ // A common default is 150, but we're fairly liberal about the number of
+ // connections we open and it's easy for us to run far over this limit.
+
+ $warning_threshold = 256;
+ if ($max_connections < $warning_threshold) {
+ $message = pht(
+ 'MySQL is configured with a small "%s" (%d) limit, which may cause '.
+ 'connection failures long before any resources near exhaustion. '.
+ 'There is normally very little benefit to enforcing a connection '.
+ 'limit, and most installs should increase it substantially.'.
+ "\n\n".
+ 'You can compute a specific connection limit for your install by '.
+ 'doing a lot of math with MySQL buffer sizes and RAM available on '.
+ 'the machine, or just set it to a huge number. In nearly every case, '.
+ 'setting it to a huge number is entirely reasonable.'.
+ "\n\n".
+ 'You can raise this limit by adding this to your %s file (in the %s '.
+ 'section) and then restarting %s:'.
+ "\n\n%s",
+ 'max_connections',
+ $max_connections,
+ phutil_tag('tt', array(), 'my.cnf'),
+ phutil_tag('tt', array(), '[mysqld]'),
+ phutil_tag('tt', array(), 'mysqld'),
+ phutil_tag('pre', array(), 'max_connections=100000'));
+
+ $this->newIssue('mysql.max_connections')
+ ->setName(pht('Small MySQL "%s"', 'max_connections'))
+ ->setMessage($message)
+ ->addMySQLConfig('max_connections');
+ }
+
$modes = self::loadRawConfigValue('sql_mode');
$modes = explode(',', $modes);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Dec 25, 2:45 PM (3 h, 26 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6925733
Default Alt Text
D16586.id39927.diff (1 KB)
Attached To
Mode
D16586: Add a setup issue about small "max_connections" settings
Attached
Detach File
Event Timeline
Log In to Comment