Wednesday Jan 14, 2009

Perforce is a commercial source code management software available on many platforms including Solaris Sparc and Solaris x86. As one of our ISV partner experienced last year, the storage subsystem is likely the performance bottleneck of a Perforce Server installation. With entry-level systems featuring a minimum of 4 CPU cores, 4GB memory and dual GigE network nowadays --I am looking e.g. at the base configuration of the Sun Fire X2250 server--, CPU, memory and network are no longer bottlenecks. Unless you run Windows and are subject to the 2GB limit of addressable memory in Windows --Solaris will, by the way, happily let 32-bit applications allocate most of the theoretical 4GB of addressable memory, and you can go beyond that with the 64-bit Perforce Solaris binaries.

So our partner was experiencing poor performance and blocking situations under high load (280 users, 16M files, 15 server instances) with Perforce Server 2006.2 when running off a Sparc V440 server, Solaris 10 and UFS filesystem --with logging enabled. Benchmark results at the 2003 Perforce User Conference had already pointed out the low performance of UFS with Perforce, where synchronous directory updates are a key factor of performance. Linux performs better because it executes directory updates asynchronously --at the risk of data loss, of course. Our partner rather wanted to run off a more reliable Solaris Sparc server --the source code repository and management system is the number one mission-critical application in a software house--, tuned the kernel parameter segmap_percent to 80 but that yields very limited gains in Solaris 10. At that point, we offered to test ZFS, the novel filesystem introduced in Solaris 10.

We benchmarked Perforce Server (P4D) 2007.2 on a Sun Fire X4200 server and …

[Read More]

This blog copyright 2009 by Frederic Pariente