Monitor Measurements and Deadline Violations
- From your host system, open two terminal windows. In the first window, you will start running the monitoring sample per the next steps. Then, in the second window, you will run the single measurement sample as input into the monitoring sample.
- In the first terminal window, connect to the target system:ssh <user>@<target>
- In the SSH session, run the monitoring sample and leave it running. The sample will wait for you to start the single measurement sample in the next step.TCC_MEASUREMENTS_BUFFERS=Approximation:10:2500 TCC_MEASUREMENTS_TIME_UNIT=ns tcc_measurement_monitoring_samplewhere:ArgumentDescriptionTCC_MEASUREMENTS_BUFFERS=Approximation:10:2500This environment variable specifies the measurement instance to collect:
TCC_MEASUREMENTS_TIME_UNIT=nsThe output will display results in nanoseconds, and the deadline is specified in nanoseconds.For more information about this environment variable, see Control Data Collection.
- “Approximation” is the measurement name defined in the__itt_string_handle_createcall in thetcc_single_measurement_sample.
- “10” is the maximum number of measurements that can be stored for this measurement instance.
- “2500” is the deadline in time units specified in TCC_MEASUREMENTS_TIME_UNIT.
- In the second terminal window, connect to the target system:ssh <user>@<target>
- Start the single measurement sample:TCC_MEASUREMENTS_BUFFERS=Approximation:10 TCC_USE_SHARED_MEMORY=true tcc_single_measurement_sample --approximation 20 --iterations 10 --emulate-outlierswhere:ArgumentDescriptionTCC_MEASUREMENTS_BUFFERS=Approximation:10This environment variable matches the measurement name and buffer size in thetcc_measurement_monitoring_samplecommand.TCC_USE_SHARED_MEMORY=trueUse a shared memory ring buffer instead of a local buffer to store all measurement results.tcc_single_measurement_sample --approximation 20 --iterations 10 --emulate-outliersThe sample will calculate the 20th approximation of 2/pi, run 10 times, and generate latency outliers.For more information about these command-line options, see Command-Line Options.
- Go back to the first terminal. You should see that the monitoring sample is printing the latency measurements and deadline violations of the single measurement sample, if any.
- Informational message with monitoring settings (measurement instance name and maximum number of measurements that can be stored)
- List of measurement results with deadline violations
- Number of measurements that exceeded the deadline. Of the 10 measurements in this example, 2 exceeded the deadline.
- Count of read data: Total number of measurements
Initializing monitoring for "Approximation", buffer size 10 Approximation: 366343738 CPU cycles (130687691 ns) Latency exceeding deadline: 366343738 CPU cycles (130687691 ns) Approximation: 584 CPU cycles (208 ns) Approximation: 534 CPU cycles (190 ns) Approximation: 537 CPU cycles (191 ns) Approximation: 539 CPU cycles (192 ns) Approximation: 366588744 CPU cycles (130775094 ns) Latency exceeding deadline: 366588744 CPU cycles (130775094 ns) Approximation: 536 CPU cycles (191 ns) Approximation: 535 CPU cycles (190 ns) Approximation: 536 CPU cycles (191 ns) Approximation: 541 CPU cycles (192 ns) Deadline: 7008 CPU cycles (2500 ns) Number of exceeding deadlines: 2 of 10 Count of read data: 10 Finishing monitoring