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>',
|
'logs' => 'optional list<wild>',
|
||||||
'cluster' => 'optional list<wild>',
|
'cluster' => 'optional list<wild>',
|
||||||
'pidfile' => 'string',
|
'pidfile' => 'string',
|
||||||
|
'memory.hint' => 'optional int',
|
||||||
));
|
));
|
||||||
} catch (Exception $ex) {
|
} catch (Exception $ex) {
|
||||||
throw new PhutilArgumentUsageException(
|
throw new PhutilArgumentUsageException(
|
||||||
|
@ -508,10 +509,22 @@ abstract class PhabricatorAphlictManagementWorkflow
|
||||||
return $root.'/support/aphlict/server/aphlict_server.js';
|
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) {
|
private function getStartCommand(array $server_argv) {
|
||||||
return csprintf(
|
return csprintf(
|
||||||
'%s %s %Ls',
|
'%R %Ls -- %s %Ls',
|
||||||
$this->getNodeBinary(),
|
$this->getNodeBinary(),
|
||||||
|
$this->getNodeArgv(),
|
||||||
$this->getAphlictScriptPath(),
|
$this->getAphlictScriptPath(),
|
||||||
$server_argv);
|
$server_argv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,6 +80,9 @@ The configuration file has these settings:
|
||||||
- `cluster`: //Optional list.// A list of cluster peers. This is an advanced
|
- `cluster`: //Optional list.// A list of cluster peers. This is an advanced
|
||||||
feature.
|
feature.
|
||||||
- `pidfile`: //Required string.// Path to a PID file.
|
- `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:
|
Each server in the `servers` list should be an object with these keys:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue