Forum OpenACS Q&A: Automated performance monitoring

Collapse
Posted by Joel Aufrecht on
At Heidelberg .LRN 2004, both Bergen and University of Vienna demonstrated features they had added to their .LRN systems to show real-time performance measuring. Could you post more information for this broader audience - screen shots, explanation, docs, code? How helpful has this data been? How frequently do you take corrective actions based on current performance data?

We need some basic benchmarking scripts for OpenACS, to answer questions like:

  • What is the expected performance for a system with a given configuration?
  • Is a live system operating at that expected performance?
  • How does system performance change when variables change (version of TCL, version of database, optimized queries, hardware changes, etc)?
We thus need web addresses that correspend to a set of different test points:
  • AOLserver directly, skipping OpenACS completely - is this possible?
  • AOLserver with TCL
  • round trip to the database (SYSTEM/dbtest.tcl)
  • login page
  • registered user home page
  • system admin hame page
  • externally authenticated user home page
  • locally authenticated user home page
  • In .LRN, class home page
For each data point, we need at least:
  • The URL used
  • which user
  • duration
The simplest approach would seem to be to put together a tcl script that calls wget for a list of pages, records the duration of the request, and writes to a plain text log. How can we create data that is comparable across different OpenACS sites? Are there standard benchmarking tools we could use to run tests and collect and distribute data? Are they worth the investment in learning how to use them and customize them vs writing as script from scratch?
Collapse
Posted by Tilmann Singer on
tclwebtest theoretically supports running several test runs repeatedly and measuring the time used in total (roughly, in seconds only),  optionally in parallel by forking off child processes. The forking appears to be broken though, for some reason the tclx forking calls don't behave anymore like they did initially.

Disadvantages: not highly accurate, quite resource intensive on the client machine.

Advantages: can measure arbitrarily complicated user actions, not only simple page requests.