Configurables
The following table lists all the configurables you can use to customize a Perforce service. Configurable settings might affect the server, the client, or a proxy. The target of a particular configurable is indicated in the table below. The next sections explain how you set configurables, depending on their target.
In the table of configurables that makes up most of this appendix, where a configurable refers to a number of bytes, "K" and "M" abbreviations are interpreted as the appropriate powers of two. For other configurables, "K" and "M" refer to 1,000 and 1,000,000.
Configurables that affect the server
Use the p4 configure
to set or unset
configurables that affect a Perforce server. These configurables are
also described in p4 help configurables
. For more information on
the options you have in setting server configurables and on order of
precedence, see the description of p4 configure
.
Changes to most configurables are immediate; you do not have to restart the server for the change to take effect.
Configurables that affect the client
You can set configurables that affect the client in the following ways (shown in order of precedence):
-
As command line global options that are passed at server startup. For example:
$ p4 -u bluto -p perforce:1666 sync
-
As entries in a
P4CONFIG
file. Set configurables like this:P4USER=bluto P4PORT=perforce:1666
The following configurables can be set in a config file; you can also set the variables listed for the
p4 help environment
command:filesys.binaryscan
filesys.bufsize
lbr.verify.out
net.keepalive.count
net.keepalive.disable
net.keepalive.idle
net.keepalive.interval
net.maxwait
net.net.rfc3483
net.tcpsize
sys.rename.max
sys.rename.wait
-
As entries in a
P4ENVIRO
file.You can use both
P4ENVIRO
andP4CONFIG
files to define environment variables: use theP4CONFIG
file for those variables that have different values for different workspaces and theP4ENVIRO
file for those variables that remain constant for all projects. Values set in aP4CONFIG
file override those set in aP4ENVIRO
file. -
As set by the
p4 set
command for Windows and OS X. For example:$ p4 set P4PORT=ssl:tea:1666
Configurables that affect the proxy
You can set configurables that affect the proxy in the following ways:
-
Using a command line option. For example:
$ p4p -p tcp64:[::]:1999 -t central:1666 -r /var/proxyroot -v proxy.monitor.level=2
- Using environment variables.
-
On Windows, using the
p4 set
command as follows:C:\> p4 set -S "perforce_proxy" P4POPTIONS="-v
myconfig
=myvalue
"
Configurables
Configurable | Client or Server or Proxy? | Default Value | Meaning |
---|---|---|---|
|
Server |
|
The default method to use for authenticating new users.
|
|
Server |
|
An alphanumeric identifier that must be set for all servers in a distributed configuration if you want to implement single login to the master, which is then valid across all replica instances. You must also set |
|
Server |
|
If |
|
Server |
none |
The path to a file that contains one or more PEM-formatted
certificates used to verify the certificate presented by the AD/LDAP
server when using SSL or TLS and |
|
Server |
none |
Specifies the name of the LDAP configuration to use for authentication and the order in which it should be used to search for a given user name. The lowest number confers the highest priority. You may skip numbers. For example: auth.ldap.order.1=UK_LDAP auth.ldap.order.2=US_LDAP auth.ldap.order.5=RU_LDAP If this configurable has been set, if it specifies an existing LDAP configuration, if LDAP authentication is enabled, and if the Perforce server is restarted, authentication trigger support is disabled. |
|
Server |
?? |
Specifies the paging limit in bytes for LDAP searches with paged results. Set the configurable to a value less than the LDAP server’s result limit. For example, if the LDAP server’s limit is 2.0 KB, set the configurable to 1.9 KB. |
|
Server |
|
Level of SSL certificate validation:
|
|
Server |
|
The time in seconds to wait before giving up on a connection attempt. |
|
Server |
none |
The path of the directory where db.* files for a read-only client will be placed. For example, if you create a read-only client whose name is |
|
Server |
none |
Use |
|
Server |
256 K |
The default value sets the maximum size of memory allotted to the db.monitor table, which tracks the p4d commands that are currently running. Setting this configurable to 0 means that the table is written to disk. However, writing the table to memory is recommended to improve performance. If the size of the table exceeds the value of |
|
Server |
|
Enable and configure lockless reads; when enabled, many common commands no longer block other commands attempting to update the database. See the Helix Versioning Engine Administrator Guide: Fundamentals for details.
|
|
Server |
unset |
Control behavior of commands that access metadata
(
Equivalent to starting a replica with the This configurable cannot be set globally; you must specify a server id. |
|
Server |
|
Buffer size for journal and checkpoint read/write operations. |
|
Server |
|
Set to |
|
Server |
none |
Default type for new changelists: either |
|
Server |
|
Maximum revision size for |
|
Server |
|
Wait this many seconds before forcibly updating an access time, even if server must wait for a lock. |
|
Server |
|
Wait this many seconds before requesting a write lock to update an access time. |
|
Server |
|
Maximum number of revisions that can be searched with |
|
Server |
|
By default, use new integration engine with Sites that wish to continue to use the old (2006.1) integration logic
must set this configurable to 2 by running |
|
Server |
|
If set to |
|
Server |
|
Default minimum password length for servers where |
|
Server |
|
Allow Perforce administrators to use |
|
Server |
|
Determine (in accord with the use of IP addresses in the protections
table) whether a user can access a server from a given IP address.
By default, if a connection comes through an intermediary, the
Set this variable to For more information, see the |
|
Server |
|
Enable resolve for attributes set with |
|
Server |
|
Set to By default, when the journal is rotated, any structured logs are also rotated. Disabling this behavior can help when you’re doing frequent journal rotations and you want the log rotated on a different schedule. |
|
Server |
300 seconds |
When a shelf is viewed or modified, update its access time if its last
access time was longer than the limit specified by the value of
Use the |
|
Server |
|
Maximum number of files that can be shelved with |
|
Server |
|
Maximum size of a file that can be shelved, or |
|
Server |
|
Enable to make edge servers always promote shelved files to the commit
server (rather than use the |
|
Server |
|
Wait this many seconds before forcibly updating an access time, even if server must wait for a lock. |
|
Server |
|
Wait this many seconds before requesting a write lock to update an access time. |
|
Server |
|
Number of password attempts before delay. After the third failed login attempt, the user must wait 10 seconds. |
|
Server |
|
Control behavior of automatic user creation.
|
|
Server |
|
If set, all new users created with a password are forced to reset their password before issuing any commands. This configurable applies only if the passwords for newly created users
are set using the |
|
Client |
|
Scan the first |
|
Client, Server |
|
Buffer size for client-side read/write operations. |
|
Server |
|
Minimum diskspace required for any depot before server rejects
commands. (If there is less than You can use the following abbreviations to specify size:
You can also use a percentage to specify the relative amount of free diskspace required. |
|
Client |
|
Minimum filesize before preallocation (Windows). |
|
Server |
|
Minimum diskspace required on server journal filesystem before server rejects commands. You can use the following abbreviations to specify size:
You can also use a percentage to specify the relative amount of free diskspace required. |
|
Server |
|
Minimum diskspace required on server log filesystem before server rejects commands. You can use the following abbreviations to specify size:
You can also use a percentage to specify the relative amount of free diskspace required. |
|
Server |
|
Minimum diskspace required on server root filesystem before server rejects commands. You can use the following abbreviations to specify size:
You can also use a percentage to specify the relative amount of free diskspace required. |
|
Server |
|
Minimum diskspace required for temporary operations before server rejects commands. You can use the following abbreviations to specify size:
You can also use a percentage to specify the relative amount of free diskspace required. |
|
Server, Client, Proxy |
|
Set to Depending on the depth of your workspace path, this might need to be set on the client, server, and/or proxy (which acts as a client). A file name length of up to 32,767 characters is allowed. Each component of the path is limited to 255 characters. The server root or client root cannot be a long path. |
|
Server |
|
Maximum file size for text type detection. |
|
Server |
unset |
Prefix or directory location for rotated journal. |
|
Server |
|
Enabling this configurable, specifies the storage method as compressed
text ( It’s a good idea to set this variable when using a commit/edge configuration or when sharing archive files between servers. |
|
Server, Proxy |
|
Buffer size for read/write operations to server’s archive of versioned files. |
|
Proxy |
|
|
|
Server |
unset |
Control behavior of user commands that access versioned files on the Perforce server:
This configurable cannot be set globally; you must specify a server id. Equivalent to starting a replica |
|
Server |
|
In the event of a failed transfer, a replica will make |
|
Server |
|
Verify contents from the client to server? ( |
|
Client, Server |
|
Verify contents from the server to client? ( |
|
Server |
|
Set to When source watermarking is used, sites have configured a |
|
Server |
none |
Lowest version of client software permitted to connect to this server,
set by |
|
Server |
none |
Message to issue if client software is too old, set by |
|
Server |
|
Server process monitoring:
See |
|
Server |
none |
When set on Unix platforms, enables the use of the
$
The value for
$ /usr/bin/lsof -F pln
For more information, see the |
|
Server, Proxy |
|
Maximum length of queue for pending connections. Consider increasing if users find themselves unable to connect to extremely heavily-loaded servers. |
|
Server |
|
Number of unacknowledged keepalives before failure. |
|
Server |
|
If non-zero, disable the sending of TCP keepalive packets. |
|
Server |
|
Idle time (in seconds) before starting to send keepalives. |
|
Server |
|
Interval (in seconds) between sending keepalive packets. |
|
Proxy |
|
A value in megabytes that controls the proxy’s cache faulting
behavior. A single You must restart the server after changing the value of this configurable. |
|
Client, Server, Proxy |
none |
Time, in seconds, before a network connection times out. Best practice is not to set server-wide: if set on server, requires
that users complete command-line forms within this limit. If set in
user’s individual You must restart the server after changing the value of this configurable. |
|
Server, Proxy |
|
Man-in-the-middle network security level: This enables checks for possible interception or modification of data such as using an SSH tunnel or other TCP forwarder for users with passwords set.
You must restart the server after changing the value of this configurable. |
|
Server |
|
Specifies the number of files in a batch. |
|
Server |
|
Specifies the number of bytes in a batch. |
|
Server |
|
A value greater than one enables parallel processing up to the specified number of threads, when syncing a client or submitting files. In addition to setting this variable, you must use the Values can range between |
|
Server |
|
Specifies the minimum number of files in a parallel sync. A sync that is too small does not initiate parallel file transfers. |
|
Server |
|
Specifies the minimum number of bytes in a parallel sync. A sync that is too small does not initiate parallel file transfers. |
|
Server |
none |
For automatic parallel processing: specifies the number of threads to be used for sending files in parallel. The specified threads grab work in batches. The size of a batch is specified using the `net.parallel.submit.batch`configurable. See the |
|
Server |
|
For automatic parallel processing: specifies the minimum number of files to be sent in a parallel submit. See the |
|
Server |
|
For automatic parallel processing: specifies the number of files in a batch. See the |
|
Server |
|
Specifies the number of independent network connections that can be used for syncing files concurrently. The specified threads grab work in batches. |
|
Server |
|
Set You must restart the server after changing the value of this configurable. |
|
Client, Server |
|
If If an IPv4 literal address (e.g. 127.0.0.1) is used, the transport is
always You must restart the server after changing the value of this configurable. |
|
Client, Server, Proxy |
|
TCP send and receive buffer sizes, set on connection. Consider increasing for high-latency connections, such as the Proxy. Actual buffer size is the larger of this value and that defined by the OS. You must restart the server after changing the value of this configurable. |
|
Proxy |
|
Set the proxy monitoring interval. Default is 10 seconds. |
|
Proxy |
|
|
|
Server |
|
Set to |
|
Server |
0 |
Specifies one or more clients whose requests should be blocked. For more information, see "Blocking Clients" in Helix Versioning Engine Administrator Guide: Fundamentals. |
|
Server |
|
Level of database table checksum verification to perform when rotating journal. Each level corresponds to a larger set of database tables.
|
|
Server |
|
Level of on-the-fly changelist verification to perform.
Setting affects |
|
Server |
|
Level of table checksumming to perform.
|
|
Server |
|
Enable replica/master network compression:
|
|
Server |
|
Set to For more information, see "Authenticating users" in Helix Versioning Engine Administrator Guide: Multi-site Deployment. |
|
Server |
|
Used to tune server performance when a forwarding replica has lots of users. Please consult Perforce Support for guidance in adjusting values. |
|
Server |
|
Used to tune server performance when a forwarding replica has lots of users. Please consult Perforce Support for guidance in adjusting values. |
|
Server |
|
Used to tune server performance when a forwarding replica has lots of users. Please consult Perforce Support for guidance in adjusting values. |
|
Server |
|
The number of standby servers that must acknowledge a persisted transaction before the transaction is visible to a workspace server and before the client is notified of successful completion. The default value means one standbys has to acknowledge a transaction. Do not set this configurable to a higher value than the number of available standby servers. |
|
Server |
|
Set to Set to |
|
Server |
|
With a distributed Perforce service, there are both local and global labels. Local labels are restricted to a single edge server, and cannot be used on other servers. Global labels are created and updated on the commit server, and are visible to all servers. However, global labels can only be used with global (unbound) client workspaces. For the 2013.2 release, the default is for labels to be local. Set
When this configurable is set to |
|
Server |
|
Set to one to replicate the The Typically you would not want to replicate this data. But there are times
when this might be needed. For example, if you are chaining a read-only
replica to another replica to provide a warm standby for failover, you
might want your warm standby to replicate the |
|
Server |
|
If set, a replica server will re-verify the integrity of a cached file every time it delivers the file to the user, If the files do not match, it will re-fetch the file from the upstream server. This is computationally expensive on the replica and typically only useful in conjunction with Perforce technical support. |
|
Server |
|
If set, requires a user to authenticate before running
|
|
Server |
|
Server security level:
|
|
Server |
|
Determines whether changes can be fetched.
|
|
Server |
|
Determines whether changes can be pushed.
|
|
Server |
|
If set to a non-zero value, allows this server to run the
|
|
Server |
|
Policy for per-command resource limits:
|
|
Server |
none |
The filesystem location with respect to which a relative address given
in the |
|
Server |
0 |
Controls whether the view maps of a non-stream client on an edge server are made global when a client is modified. View maps of a client on a replica must be made global if that client is to be used as a template on another server. This configurable can be set globally or individually for each server. This allows client maps to be global on most edge servers while keeping them local on those edge servers that don’t need or want them to be global. Setting this configurable does not immediately make any client view maps
global; that happens only when a client is modified afterwards. Clearing
this configurable does not delete the view maps of any clients, but it
does prevent subsequent changes to a client’s view map from being
propagated to other servers. If a client with global view maps is
deleted, its view maps are also deleted globally regardless of the value
of Setting this configurable does not require a server restart. |
|
Server |
|
Set this configurable to disable server locks when running the |
|
Server |
|
Directory for server locks, specified relative to |
|
Server |
|
Set this configurable to |
|
Server |
|
When set, the If |
|
Server |
|
If monitoring is enabled, and if this configurable is set to a nonzero value, the service refuses to accept more than this many simultaneous command requests. |
|
Server |
none |
The counter name for the structured log file designated by See "Logging and structured files" in the Helix Versioning Engine Administrator Guide: Fundamentals for more information. |
|
Server |
none |
Server log file name associated with each structured log file. See
n may not exceed 500. |
|
Server |
none |
For each structured log file, the size, in megabytes, at which the associated log file is rotated. |
|
Server |
none |
For each structured log file, the number of rotated log files to retain on the server at any one time. |
|
Server |
none |
The service user as which a server (or proxy) authenticates against a master server in a replication/proxy configuration, or against a remote server in the context of remote depots. |
|
Server |
|
Number of buckets (subdirectories) into which files in the spec depot
are hashed. Set to |
|
Server |
|
By default, Perforce’s SSL support is based on the AES256-SHA cipher
suite. To use CAMELLIA256-SHA, set this tunable to |
|
Server |
none |
For replica servers, set The |
|
Server |
|
For replica servers, the file used by the server to track the current journal position. |
|
Server |
none |
Enable the generation of global changelist ids. This is relevant for users of the Helix Versioning Engine’s distributed versioning (DVCS) features.
For more information on global changelist ids, see the section "Track a changelist’s identity from server to server" in the "Fetching and Pushing" chapter of Using Helix for Distributed Versioning. |
|
Server |
|
Always re-transfer files after a failed submit. Set this configurable to have the server check whether files are already in the expected archive location and to not re-transfer files when retrying a failed submit. You can override the set behavior by using the |
|
Server |
|
When set, open files that users have locked (with the |
|
Server |
|
Limit in microseconds for retrying a failed file rename. Affects
Windows |
|
Server |
|
Timeout in microseconds between file rename attempts. Affects Windows
|
|
Server |
none |
Specifies the default client to be used as a template if the user
omits the |
|
Server |
none |
Specifies the default label to be used as a template if the user omits
the |
|
Server |
|
If set, specifies that triggers will not receive their parameters via command line variables. Rather, they will receive a dictionary of key/value pairs sent to their STDIN. Triggers can use their dictionary response to reply to the server via STDOUT. |
|
Server |
none |
If set, changes default behavior of |