The configure_new_server.sh
script (and configure_new_server.bat
for Windows)
serve as a guide defining best-practice configurables for a production environment (or a realistic PoC).
See documentation regarding configurables: here.
Here is some insight into the thinking that goes into setting configurables in the SDP. The SDP configurables are different from P4D defaults for a variety of reasons, such as:
server.depot.root
and journalPrefix
.filesys.*.min
, monitor
, server
, and some structured logs -- plus a recommendation for setting security
.lbr.autocompress
, lbr.bufsize
, net.backlog
, net.autotune
, net.tcpsize
, etc. P4D is
(rightly) more conservative when changing such defaults, perhaps requiring more proof/data, while the SDP is willing to promote settings changes ahead of P4D if folks in Engineering/Support/Consulting believe they'll be mostly good. In some cases, this may help get the more solid proof/data needed to change p4d defaults.Besides configurable settings, the SDP also adjusts P4D defaults and behaviors in other ways, such as always creating 'spec' and 'unload' depots.
See the Windows-specific setup files in:
..\Windows\setup
In particular:
SDPEnv.py
template_configure_new_server.bat
As the name implies, these configure_new_sever.*
scripts are intended to be run on a new server. When applied to an existing data set, it is recommended that these scripts be used as a guide. In that case, each setting can be applied manually, e.g. with p4 configure
commands, creating spec/unload depots, etc. When applying to an existing setting, there are a few things to be aware of:
journalPrefix
and server.depot.root
configurables are central to SDP operation, and must not be changed.filesys.*.min
settings are key safety settings. It is OK to adjust the values to suit your environment, but they should always be set in a production environment.mkrep.sh
.spec
or unload
; check that they do not already exist (possibly with a different name).dm.integ.engine
, we strongly recommend unsetting dm.integ.engine
if it is set and P4D is 2014.1 or later. This isn't done in the script as doing so will cause a significant change in user-visible behavior if it had previously been explicitly set, e.g. to 2
. Best Practices Settings Guidance === Configurable Settings --- The `configure_new_server.sh` script (and `configure_new_server.bat` for Windows) serve as a guide defining best-practice configurables for a production environment (or a realistic PoC). See documentation regarding configurables: [here](https://www.perforce.com/perforce/doc.current/manuals/cmdref/Content/CmdRef/configurables.configurables.html). Here is some insight into the thinking that goes into setting configurables in the SDP. The SDP configurables are different from P4D defaults for a variety of reasons, such as: * In some cases, SDP has standards related to its directory structure, for things like `server.depot.root` and `journalPrefix`. * In some cases, P4D defaults are (rightly) optimized for ease of installation in basic demo/PoC scenarios, where the SDP sets production-grade defaults, e.g. `filesys.*.min`, `monitor`, `server`, and some structured logs -- plus a recommendation for setting `security`. * In some cases, the SDP is more willing to adopt settings expected to be good for most environments (if not quite universal), e.g. setting `lbr.autocompress`, `lbr.bufsize`, `net.backlog`, `net.autotune`, `net.tcpsize`, etc. P4D is (rightly) more conservative when changing such defaults, perhaps requiring more proof/data, while the SDP is willing to promote settings changes ahead of P4D if folks in Engineering/Support/Consulting believe they'll be mostly good. In some cases, this may help get the more solid proof/data needed to change p4d defaults. Other Settings --- Besides configurable settings, the SDP also adjusts P4D defaults and behaviors in other ways, such as always creating 'spec' and 'unload' depots. Window Servers --- See the Windows-specific setup files in: ..\Windows\setup In particular: * `SDPEnv.py` * `template_configure_new_server.bat` Applying Settings to Existing Servers --- As the name implies, these `configure_new_sever.*` scripts are intended to be run on a new server. When applied to an existing data set, it is recommended that these scripts be used as a guide. In that case, each setting can be applied manually, e.g. with `p4 configure` commands, creating spec/unload depots, etc. When applying to an existing setting, there are a few things to be aware of: * The `journalPrefix` and `server.depot.root` configurables are central to SDP operation, and must not be changed. * The `filesys.*.min` settings are key safety settings. It is OK to adjust the values to suit your environment, but they should always be set in a production environment. * To see how journalPrefix is set on replicas, see logic in `mkrep.sh`. * There can be only one depot of type `spec` or `unload`; check that they do not already exist (possibly with a different name). * While this script does not explicitly unset `dm.integ.engine`, we strongly recommend unsetting `dm.integ.engine` if it is set and P4D is 2014.1 or later. This isn't done in the script as doing so will cause a significant change in user-visible behavior if it had previously been explicitly set, e.g. to `2`. * If you have settings on your server that had been set that are not referenced in this script, or are referenced but with different values, make a decision on what to do with each individual configurable base on merits.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 25113 | Robert Cowham | Merge latest changes from dev | ||
//guest/robert_cowham/perforce/sdp/Server/setup/README.txt | |||||
#1 | 18586 | Robert Cowham | Branching using cowhamr.sdp.dev | ||
//guest/perforce_software/sdp/dev/Server/setup/README.txt | |||||
#1 | 10996 | Robert Cowham |
Remove P4 requirement for basic SDPEnv.py - moved to report_env.py instead. Remove (oudataed) copies from OS Setup for now - duplicates cause a problem |