Browse Benchmark
The Browse Benchmark provides a method to evaluate the CPU performance and network utilization of your P4D server under variable load conditions.
Description
The Browse Benchmark involves a single P4D server and multiple browsechild client machines. Each browsechild instance launched places a load on the server by executing commands that simulate the operational characteristics of the Perforce P4V client. Depending on configuration, this test can be potentially CPU and network intensive. Varying the settings for the benchmark configuration can provide information which gauge how well your computer handles a particular load.
To provide meaningful information about your P4D server environment, the server should be pre-loaded with sizable database comprised of a deep level repository structure. You have the option of using the reference01 metadata supplied by Perforce or metadata that is more relevant to your site. While using site-specific metadata can result in performance observations applicable to the site, using the reference01 metadata results in performance observations that can be compared to those at other sites. Using the reference01 metadata requires approximately 44GB of disk space in the P4ROOT directory.
The Browse Benchmark is directed by the browse script which resides on the same machine as the P4D server. The browse script deploys and launches instances of the browsechild program on each of a set of user-defined client machines. Each browsechild instance issues a series of commands which repeatedly drills down random paths through the repository without delaying between each browse. A single browsechild instance simulates numerous P4V users, each of which typically thinks about what to browse next. Each browsechild instance is lightweight and requires little CPU time on the client machine. As the benchmark session completes, a log analysis reports statistical information related to the run.
Terms
browse script | The shell script (browse.sh on Linux/Unix and browse.js on Windows). |
browsechild | C++ compiled binary (browsechild on Linux/Unix and browsechild.exe on Windows). The browsechild is automatically deployed to client machines where it executes commands against the server. |
client machine | One or more computers that runs one or more instances of the browsechild program. |
server machine | The computer on which the P4D server runs and also where the browse script is executed. |
SSH client | The secure shell client program located on the same computer as the server machine, it is the vehicle used to submit commands to the client machines. |
SSH daemon | The secure shell daemon program located on each client machine, it receives the browsechild specific command string from the SSH client and executes it locally. |
Topology
The number and types of machine hardware/operating systems involved in your benchmark topology is site specific. If the server machine is a high-performance server class computer, you might require several client machines to produce ample load. Another factor is the availability of the Perforce software for a particular operating system. Although Perforce provides pre-built browsechild binaries for a limited number of operating systems, the source for the browsechild C++ program is supplied in the Browse Benchmark package.
SSH deploys and launches the browsechild program on each client machine. The machine where the browse script resides uses the SSH client while each of the browechild client machines must have a running SSHD server. If you are including both Linux/Unix and Windows in the benchmark topology you must setup either SSH or SSHD in accordance to how the machine will be used.
SSH is *not* included with the Browse Benchmark package. If you do not already have SSH installed on each computer, you must download and install it.
This diagram provides an overview of Browse Benchmark topology. The computer where the P4D server resides also accommodates the browse script. When run, the browse script communicates to the client machines via SSH. In turn, the browsechild instances send commands to the P4D server.