p4 configure
Set, view, and manage server configuration variables.
Syntax
p4 [g-opts] configure set [serverid#]variable=value
p4 [g-opts] configure unset [serverid#]variable
p4 [g-opts] configure show [allservers | variable]
p4 [g-opts] configure history [allservers | variable]
Description
Although we recommend the syntax above, using serverid
instead of P4NAME, the following syntax is still supported.
p4 [g-opts] configure set [P4NAME#]variable=value
p4 [g-opts] configure unset [P4NAME#]variable
p4 [g-opts] configure show [allservers | P4NAME | variable]
p4 [g-opts] configure history [allservers | P4NAME | variable]
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 configuration variables are described both in this Reference and at the command line:
This Reference | Command-line |
---|---|
See Configurables - alphabetical list (indicates which ones require stopping the server.) |
p4 help configurables |
See Environment and registry variables | p4 help environment |
The super user can use p4 [g-opts] configure history [allservers | P4NAME | variable] to display the history of configurables, which are recorded by the 2019.2 server onwards. See the Options.
Precedence
The following table shows how the value of a configurable variable is set, where 1 overrides 2, 2 overrides 3, and 3 overrides 4:
Precedence |
How the value is set |
---|---|
1 |
Command line "-v" options that are passed at server startup. For example: $ p4d -v net.keepalive.idle=2700
|
2 |
Persistently, using the This method allows you to set the specified configurable for a named server or for any server. A configurable set for a named server has precedence over a configurable set for any server. |
3 |
Using environment variables.
|
4 |
Using default values (no action required). |
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 defined on the commit server that is used by all connected servers unless specifically overridden in that particular server's configuration.
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 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 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 Support Knowledgebase article, "Accessing Server Configuration Variables".
Options
|
Sets the named variable to the provided value. |
|
Unsets the named variable. |
|
Shows the current configuration of 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 of the specified configuration variable. |
|
If a
Helix Server was invoked with |
|
Records any changes to the value of each configurable in the db.configh table, which contains the name of the configurable, the targeted serverId, the old value, the new value, the user who made the change, the datetime of the change, the configureVersion number, and the serverId on which the change occurred. |
|
Shows the history of configuration variables for all servers known to the system. |
|
Shows the history of the specified configuration variable. |
|
If a
Helix Server was invoked with |
|
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. |
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 |