p4 configure
Set, view, and manage server configuration variables, including comments.
Syntax
p4 [g-opts] configure set [--comment=comment] [serverid#]variable=value p4 [g-opts] configure unset [--comment=comment] [serverid#]variable p4 [g-opts] configure show [allservers | serverid | variable] p4 [g-opts] configure history [allservers | serverid | variable] p4 configure history [--iteration=N] --comment=comment variable p4 configure help
Description
Configuration variables are used to control and customize the behavior of the Helix Core service. A configurable setting might affect the client, the server, or a proxy.
An alternative is using p4 server, which conveniently allows some configuration in the server spec. See the p4 server topic on the DistributedConfig: field.
The super user can use p4 [g-opts] configure history [allservers | serverid | variable] to display the history of configurables, which are recorded by the server since the 2019.2 release. See the Options.
The configuration variables are described both in this Reference and at the command line:
This Reference | Command-line |
---|---|
p4 help configurables shows the Name and Use.
|
|
See Environment and registry variables | p4 help environment |
Default value and p4 configure help
The default value of each configurable is shown in two places:
-
The output of
p4 configure help
command, which provides additional information. Some configurables have both aDefaultValue
and aRecommendedValue
. To learn more, see the help option.
Precedence
How the value of a configurable or environment variable is set, where 1 overrides 2, 2 overrides 3, and 3 overrides 4:
Precedence |
How the value is set |
Persistent configuration? |
---|---|---|
1 |
Command line "-v" options that are passed at server startup. For example: p4d -v net.keepalive.idle=2700
|
No, but the option can be supplied each time the server is started, |
2 |
Using the |
Yes |
3 |
Using environment variables.
|
Yes only for Windows |
4 |
Using default values (no action required). |
Yes |
You can use K
and M
to represent large numbers. For example, 10M
is the default value for the dm.shelve.maxfiles configurable.
Viewing the values of configuration variables on one server
To display the configuration state of the current server, a named server, or any configurable, including a Helix Core environment variable, use
p4 configure show
Each configurable is displayed along with its value, where the entry in the parentheses ( ) indicates how the value was set:
If the output line is ... | the value was set by ... |
---|---|
P4PORT=20192 (-p) | p4d -p |
monitor=2 (-v) | p4d -v |
net.parallel.max: 10 (configure) | p4 configure |
serverid=commit (serverid) | p4 serverid |
Note that monitor is set to 2. To find out whether a specific configurable variable has been set in more than one way, specify that configurable variable:
p4 configure show monitor
which might output:
monitor=2 (-v) monitor=10 (configure)
to indicate that p4d -v set monitor to 2, and p4 configure set monitor to 10. Because p4d has precedence over p4 configure, the output of p4 configure show indicates that monitor is set to 2.
Viewing the values of configuration variables on all servers
To display the configuration across all servers, use
p4 configure show allservers
The output might be similar to:
any: lbr.autocompress = 1
any: submit.allowbgtransfer = 1
paris-edge: P4LOG = /home/perforce/servers/edge1/log
headquarters-commit: P4LOG = /home/perforce/servers/commit-hq/log
where any means a configurable or environment variable defined on the commit server that is used by all connected servers unless specifically overridden in a named server's configuration. See Precedence.
Unsetting a value
To remove a custom setting of a configurable, use the p4 configure unset
command. For example, to revert net.parallel.shelve.threads to its default value of unset (0), the command would be:
p4 configure unset net.parallel.shelve.threads
See "Recommended settings to configurables for security" in the Securing the server chapter of Helix Core Server Administrator Guide.
Stopping the server for some configurables
Changes to most configurables take effect immediately. For example,
|
Changes to |
For certain configurables, such as ssl.tls.version.min: After you change the value of this configurable, you must explicitly "stop" the server. Note
p4 admin restart is not sufficient. For UNIX, see Stopping the Perforce Service and Starting the Perforce Service. For Windows, see Starting and stopping the Helix Core Server. |
Setting configurables in multi-server environments
Servers can be identified by name. In replicated and multi-server environments, a master can control the settings of multiple replicas by
specifying the server name as part of the configurable. For example, the
following command sets the value of the serviceUser
configurable for an edge server (tokyo_edge
). The command is
executed on the commit server.
p4 configure set tokyo_edge#serviceUser=svc_tokyo_edge
See Deployment architecture in the Helix Core Server Administrator Guide.
Accessing configurables when the server is down
If the
Helix Core Server is not running or you cannot access the server, you can use the
command to list, set, and unset server
configurables:p4d
-
To list all server configuration variables, use the
-cshow
option. For example:p4d -r $P4ROOT -cshow
-
To set or unset values, use
-cset
or-cunset
. For example:p4d -r $P4ROOT "-cset myServer#auth.ldap.timeout=30"p4d -r $P4ROOT "-cunset myServer#db.replication"
For more information, see the Perforce Knowledge Base article, Accessing Server Configuration Variables.
Adding a comment
You can create and view comments about a configurable. See the --comment
option.
Options
|
Sets the named variable to the provided value. For a list of configuration variables, see the Configurables reference in this Reference or run |
||||||||||||||||||||||||||||||||||
|
Unsets the named configuration variable. |
||||||||||||||||||||||||||||||||||
Displays the current configuration of this server, that is, the server currently
specified by Note
Regarding the maximum size of
the |
|||||||||||||||||||||||||||||||||||
|
Shows the configuration variables for all servers known to the system. |
||||||||||||||||||||||||||||||||||
|
Shows the setting(s) of the specified variable. This variant of the command shows all the settings of the variable that it can find, in order of precedence, and can be useful for understanding why a particular variable is not configured with the value that you expect, because variable settings can come from multiple sources. |
||||||||||||||||||||||||||||||||||
|
Shows the settings of the named server. |
||||||||||||||||||||||||||||||||||
--comment=comment
|
An optional explanation about why the value of a configurable was set. The comment can be provided when setting the configurable. The comment can also be provided any time later on. See Examples of p4 configure history. The dm.configure.comment.mandatory configurable can be set to ensure that a comment is provided when the setting of a configurable is changed. |
||||||||||||||||||||||||||||||||||
|
The optional |
||||||||||||||||||||||||||||||||||
|
Shows the history of configuration variables for all servers known to the system. |
||||||||||||||||||||||||||||||||||
|
Shows the history of the settings of the named server. |
||||||||||||||||||||||||||||||||||
|
Shows the history of the specified configuration variable. |
||||||||||||||||||||||||||||||||||
|
Shows details about all the documented and supported configurables. The output is best redirected to a file because it has about 4,000 lines. For each configurable, shows some or all of the following:
|
||||||||||||||||||||||||||||||||||
|
See Global options. |
Usage notes
Can File Arguments Use Revision Specifier? | Can File Arguments Use Revision Range? | Minimal Access Level Required |
---|---|---|
N/A |
N/A |
available to an operator user |
The output of p4 configure show
only shows those configurables that have been changed from their default value at least once. Such configurables continue to show even if the value is specifically set to the default value.
Examples
p4 configure set "Replica1#startup.1=pull -i 1" |
On the server named Replica1, set the startup.n configurable to poll 1 every second |
p4 configure set rpl.labels.global=1
|
The server returns: For server 'any', configuration variable 'rpl.labels.global' set to '1' where 'any' means this setting applies to ALL servers, unless there is a local override for the same setting. |
Examples of p4 configure history
Suppose the output of p4 configure history
has no comment for iteration 2:
any#dm.user.setinitialpasswd changed from 'unset' to '0' (iteration 1) by 'usuper' on 2022/10/17 01:54:55 local to server NoServerId with comment 'security'
any#server.allowfetch changed from 'unset' to '1' (iteration 2) by 'usuper' on 2023/10/20 10:22:55 local to server NoServerId
any#server.allowfetch changed from '1' to 'unset' (iteration 3) by 'usuper' on 2023/10/31 17:28:45 local to server NoServerId with comment 'unset fetch'
The admin can revise the history to add a comment:
p4 configure history --comment="for DVCS" --iteration=2 server.allowfetch
which changes the output of p4 configure history
to this:
any#dm.user.setinitialpasswd changed from 'unset' to '0' (iteration 1) by 'usuper' on 2022/10/17 01:54:55 local to server NoServerId with comment 'security' any#server.allowfetch changed from 'unset' to '1' (iteration 2) by 'usuper' on 2023/10/20 10:22:55 local to server NoServerId with comment 'for DVCS' any#server.allowfetch changed from '1' to 'unset' (iteration 3) by 'usuper' on 2023/10/31 17:28:45 local to server NoServerId with comment 'unset fetch'
To require the inclusion of a comment when the value of a configurable is changed with p4 configure
, set the dm.configure.comment.mandatory configurable.
Related commands
The p4 configure
command replaces many of
the settings formerly set by p4 counter
.
To list all counters and their values |
|
To set Helix Core server system variables | p4 set |