mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-18 18:51:12 +01:00
Add a "memory.hint" parameter to Aphlict
Summary: Ref T10696. By default, `node` uses 1.5GB, which is enormous overkill for this service and can crowd out other services if it's running next to things like a database on the same host. Provide a configuration option to adjust it via `--max-old-space-size` and default to 256MB. It only seems to need about 30M locally, so this should be plenty of headroom. Test Plan: Ran `bin/aphlict debug`, things seemed OK. It takes a long time (days?) to grow to 1.5GB so I can't easily test this locally without a lot of work, but I'll keep an eye on it in production. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10696 Differential Revision: https://secure.phabricator.com/D15720
This commit is contained in:
parent
0534002894
commit
686c02d54a
2 changed files with 17 additions and 1 deletions
|
@ -78,6 +78,7 @@ abstract class PhabricatorAphlictManagementWorkflow
|
|||
'logs' => 'optional list<wild>',
|
||||
'cluster' => 'optional list<wild>',
|
||||
'pidfile' => 'string',
|
||||
'memory.hint' => 'optional int',
|
||||
));
|
||||
} catch (Exception $ex) {
|
||||
throw new PhutilArgumentUsageException(
|
||||
|
@ -508,10 +509,22 @@ abstract class PhabricatorAphlictManagementWorkflow
|
|||
return $root.'/support/aphlict/server/aphlict_server.js';
|
||||
}
|
||||
|
||||
private function getNodeArgv() {
|
||||
$argv = array();
|
||||
|
||||
$hint = idx($this->configData, 'memory.hint');
|
||||
$hint = nonempty($hint, 256);
|
||||
|
||||
$argv[] = sprintf('--max-old-space-size=%d', $hint);
|
||||
|
||||
return $argv;
|
||||
}
|
||||
|
||||
private function getStartCommand(array $server_argv) {
|
||||
return csprintf(
|
||||
'%s %s %Ls',
|
||||
'%R %Ls -- %s %Ls',
|
||||
$this->getNodeBinary(),
|
||||
$this->getNodeArgv(),
|
||||
$this->getAphlictScriptPath(),
|
||||
$server_argv);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,9 @@ The configuration file has these settings:
|
|||
- `cluster`: //Optional list.// A list of cluster peers. This is an advanced
|
||||
feature.
|
||||
- `pidfile`: //Required string.// Path to a PID file.
|
||||
- `memory.hint`: //Optional int.// Suggestion to `node` about how much
|
||||
memory to use, via `--max-old-stack-size`. In most cases, this can be
|
||||
left unspecified.
|
||||
|
||||
Each server in the `servers` list should be an object with these keys:
|
||||
|
||||
|
|
Loading…
Reference in a new issue