Sensor Value PropertiesChanged Events
Ambrozewicz, Adrian
adrian.ambrozewicz at linux.intel.com
Tue Feb 2 21:02:53 AEDT 2021
W dniu 2/2/2021 o 01:42, Bills, Jason M pisze:
> 1. Is this a real concern or are PropertiesChanged signals so
lightweight that removing them won't help with D-Bus load?
Without proper measurements I don't believe we can be sure. Can we
reliably benchmark how much CPU time and memory is used by
PropertiesChanged roaming through the system?
I would be interested in investing some time at profiling existing
dbus-sensors services, as from time to time we're experiencing
performance issues with them.
My trust in systemd D-Bus implementation is that signals are implemented
in optimal way and broker doesn't broadcast it to services without
proper 'match' defined. It should be checked though
Moving to polling might in fact increase D-Bus utilization by
introducing message-response communication between producer and
consumer. In certain cases of sensors which tend to update slowly,
introducing a getter with faster interval would increase the traffic, if
the interval would be faster than the sensor update rate.
> 2. Does anyone need to match on sensor Value property updates or is
reading them with get-property enough?
TelemetryService specifies 'OnChange' mode for monitoring Metrics - "The
metric report is generated when any of the metric values change.".
My current experience with TelemetryService adopters, shows that
administrators and data scientist want to get all the information they
can (all sensors, possibly with highest rate). With more focus on
telemetry these days I would expect more (hundreds of thousands) sensors
to come. Polling each of them individually could be not feasible.
Furthermore - having reliable event-based updates is crucial for
catching short-lived anomalies (voltage spikes etc). I believe they are
events of particular interest for data-center admins, while being easy
to miss with polling-based updates.
Algorithms working based on sensor updates would be also crippled in
this case, as missing samples means worse accuracy.
To sum up - I believe moving away from PropertiesChanged event would
limit pretty important use cases for system telemetry. I wouldn't mind
however on working out more performant solution, while keeping the same
(or better) features:
- optimal and efficient one-to-many broadcasting,
- queuing multiple updates to be consumed by receiver,
- low overhead of yet another side-band channel.
Regards,
Adrian
More information about the openbmc
mailing list