Home Index Changes Prefs Log in »

Performance Engineering

Since the Image Packaging System, pkg(5), is a key component of the Update Center 2 Toolkit, there is keen interest on characterizing the performance of the pkg(5) repository server. Investments made by the UC2 project in this regard should complement performance engineering efforts within the pkg(5) project on opensolaris.org. Due to timing and prioritization differences of UC2 and OpenSolaris releases, some pkg(5) performance information may initially appear on the UC2 project site before being incorporated in the pkg(5) project.

Performance of the Update Tool GUI and the associated desktop notifier is being addressed within those subprojects.

Our priorities are:

  1. Initially, the UC2 project is most concerned about validating the ability of the Python-based pkg.depotd server to handle the loads associated with the JavaOne release of the GlassFish V3 Technology Preview (TP) 2 release.
  2. Work with the pkg(5) project to establish performance engineering deliverable plans supporting the production quality release of the UC 2.0 toolkit and subsequent minor releases..

Deliverables

Initial Performance Results

Run preliminary tests to validate pkg.depotd's ability to support the projected workload based on using a system that is similar to the production repository server.

  • Sheer load is supported by the repository server without failure
  • Response time requirements are met

Workload Descriptions

Performance Test Systems (internal)

The lab systems used for performance testing are:
  • jesarch-hv-0.czech.sun.com # X4150 (server)
  • jesarch-hv-2.czech.sun.com # X4140 (client)

Repository System Sizing

Based on the initial performance results, begin to establish guidelines for sizing pkg(5) package repositories.

Eventually include deployment strategies to help meet load requirements. e.g. load balanced configurations.

Performance Information from OpenSolaris

From Dan Price on Dec 5, 2008:

We have also been proactively stress testing the bits today. So far, we've seen that we can handle 1000% of our baseline load-- today we served up to 40 megabytes/second (or ~320 megabits), sustained for 20 minutes. Under normal "busy" load we push about 2-3 megabytes per second. Pushing 40MB/sec our systems are 95% idle and the load average is about 0.20. Each of our pair of systems can, by itself, handle all of the load we are likely to see. Solaris is fast.

See this Sun internal page for more information.

Future Performance Projects

This section lists some possibilities for future performance analysis projects.
  • Evaluate the impact of the move to cherrypy
  • Evaluate the impact of using SSL certificates for client validation (needed for paying customers)
  • Evaluate a switch from using a tarstream with filelist to streaming file requests via HTTP/1.1
  • Performance analysis of complete system with front-end web server (like what glassfish is using now)
  • Evaluate impact of using filters, especially if we move to having one repository for all platforms
« Home Attachments Info Index Changes
This page (revision-23) was last changed on 01-Oct-09 13:31 PM, -0700 by TomMueller