Add tunable parameters for Nexus config#1086
Conversation
- Add the `[tunables]` section to the nexus config - Includes a key `max_vpc_ipv4_subnet_prefix`. This takes the place of the compile-time constant `omicron_nexus::defaults::MAX_VPC_IPV4_SUBNET_PREFIX`. The proximal reason for this is to allow a small subnet when testing, to keep the subnet allocation integration test short.
|
For the record: On On this branch: |
|
Remember there are a couple of other configs to update. https://github.com/oxidecomputer/omicron/blob/main/nexus/examples/config.toml I wonder if it's even worth keeping these around, though. Is anyone using them? If so maybe we should have a test to make sure they're kept up to date (just musing, that would be a separate PR). Also: there's some other stuff in the config that arguably could belong under tunables — is that worth moving around? Meh. omicron/nexus/examples/config.toml Line 33 in f02f5a3 |
|
Yeah, moving the maximum request body might be a good idea. I specifically didn't add the tunables to the other configuration files, though, since I want those to use the default. I'm not sure anything uses the |
|
Ah, missed the |
davepacheco
left a comment
There was a problem hiding this comment.
Thanks for doing this! That's a nice improvement.
Re: the config files: I definitely use config.toml. I think it's nice to have an example of a file-based logger, but that could also be commented-out in config.toml instead. For the same reason, I'd kind of like to see the tunables in here. To me, the example config file is documentation + example as much as something for people to use directly.
I also think it'd be nice to have a test that at least parses all the config files. (Agreed: not part of this PR.)
- More documentation - Add tunables to nexus/examples/config.toml - Improve test
Crucible changes Remove a superfluous copy during write serialization (#1087) Update to progenitor v0.5.0, pull in required Omicron updates (#1115) Update usdt to v0.5.0 (#1116) Do not panic on reinitialize of a downstairs client. (#1114) Bump (tracing-)opentelemetry(-jaeger) (#1113) Make the Guest -> Upstairs queue fully async (#1086) Switch to per-block ownership (#1107) Handle timeout in the client IO task (#1109) Enforce buffer alignment (#1106) Block size buffers (#1105) New dtrace probes and a counter struct in the Upstairs. (#1104) Implement read decryption offloading (#1089) Remove Arc + Mutex from Buffer (#1094) Comment cleanup and rename of DsState::Repair -> Reconcile (#1102) do not panic the dynamometer for OOB writes (#1101) Allow dsc to start the downstairs in read-only mode. (#1098) Use the omicron-zone-package methods for topo sorting (#1099) Package with topological sorting (#1097) Fix clippy lints in dsc (#1095) Propolis changes: PHD: demote artifact store logs to DEBUG, enable DEBUG on CI (#626) PHD: fix missing newlines in serial.log (#622) PHD: fix run_shell_command with multiline commands (#621) PHD: fix `--artifact-directory` not doing anything (#618) Update h2 dependency Update Crucible (and Omicron) dependencies PHD: refactor guest serial console handling (#615) phd: add basic "migration-from-base" tests + machinery (#609) phd: Ensure min disk size fits read-only parents (#611) phd: automatically fetch `crucible-downstairs` from Buildomat (#604) Mitigate behavior from illumos#16183 PHD: add guest adapter for WS2022 (#607) phd: include error cause chain in failure output (#606) add QEMU pvpanic ISA device (#596) Add crucible-mem backend Make crucible opt parsing more terse in standalone
Crucible changes Remove a superfluous copy during write serialization (#1087) Update to progenitor v0.5.0, pull in required Omicron updates (#1115) Update usdt to v0.5.0 (#1116) Do not panic on reinitialize of a downstairs client. (#1114) Bump (tracing-)opentelemetry(-jaeger) (#1113) Make the Guest -> Upstairs queue fully async (#1086) Switch to per-block ownership (#1107) Handle timeout in the client IO task (#1109) Enforce buffer alignment (#1106) Block size buffers (#1105) New dtrace probes and a counter struct in the Upstairs. (#1104) Implement read decryption offloading (#1089) Remove Arc + Mutex from Buffer (#1094) Comment cleanup and rename of DsState::Repair -> Reconcile (#1102) do not panic the dynamometer for OOB writes (#1101) Allow dsc to start the downstairs in read-only mode. (#1098) Use the omicron-zone-package methods for topo sorting (#1099) Package with topological sorting (#1097) Fix clippy lints in dsc (#1095) Propolis changes: PHD: demote artifact store logs to DEBUG, enable DEBUG on CI (#626) PHD: fix missing newlines in serial.log (#622) PHD: fix run_shell_command with multiline commands (#621) PHD: fix `--artifact-directory` not doing anything (#618) Update h2 dependency Update Crucible (and Omicron) dependencies PHD: refactor guest serial console handling (#615) phd: add basic "migration-from-base" tests + machinery (#609) phd: Ensure min disk size fits read-only parents (#611) phd: automatically fetch `crucible-downstairs` from Buildomat (#604) Mitigate behavior from illumos#16183 PHD: add guest adapter for WS2022 (#607) phd: include error cause chain in failure output (#606) add QEMU pvpanic ISA device (#596) Add crucible-mem backend Make crucible opt parsing more terse in standalone Co-authored-by: Alan Hanson <alan@oxide.computer>
[tunables]section to the nexus configmax_vpc_ipv4_subnet_prefix. This takes the place ofthe compile-time constant
omicron_nexus::defaults::MAX_VPC_IPV4_SUBNET_PREFIX. The proximalreason for this is to allow a small subnet when testing, to keep the
subnet allocation integration test short.