Sched Load Testing

The data provided by cms_perf on an XRootD server is eventually weighted by an XRootD manager to select servers with the least load. As such, a proper weighting via the cms.sched directive can be as important as proper sampling via the cms.perf directive. To test both directives, cms_perf can emulate the weighting of cms.sched for rapid testing on XRootD servers.

Enabling Sched Emulation

The cms_perf load sensor can be supplied with a cms.sched directive to compute the total weight for each measurement. In addition to writing the sensor data to stdout as usual, the total weight is written to stderr as a new row.

$ cms_perf --interval=1 --sched 'cms.sched runq 20 cpu 20 mem 60'
13 1 70 0 0 44
13 3 70 0 0 45
13 1 70 0 0 44
13 1 70 0 0 44
13 2 70 0 0 45

The sched emulator only uses the load parameters it can process and ignores the rest, including for example a leading cms.sched.

Testing Server Rejection

Several optional readings of cms_perf, such as the total socket count, are designed to identify unresponsive or overloaded servers. Ideally, an XRootD manager rejects such servers at a certain threshold using the maxload option of cms.sched.

Similar to the total weight, the maxload can be tested by cms_perf as well. When specified, an exclamation mark is appended to each total weight that exceeds the threshold.

$ cms_perf --interval=1 --sched 'cms.sched runq 20 cpu 20 mem 60 maxload 45'
13 1 70 0 0 44
13 3 70 0 0 45!
13 1 70 0 0 44
13 1 70 0 0 44
13 2 70 0 0 45!

Since the sensor does not collect data for the space weight, the emulator ignores this as well.