Hey, I’m working on reducing the latency between the server and the registered device by adjusting the polling interval .
My goal is to have the device check the server more frequently for updates to ensure a more responsive UI. Right now it takes a couple of minutes to dispatch scripts on the device.
From configure hook, I can see we don’t have this option. I have tried config app in landscape snap, by decreasing the exchange interval
# skipping registration because the device is already registered
sudo landscape-client.config --exchange-interval=10 --skip-registration --silent
Despite these changes, I haven’t seen the improvement I was hoping for.
Has anyone dealt with a similar issue or have suggestions on how to further reduce this latency? Any advice or alternative approaches would be greatly appreciated.
I haven’t played with these settings as I’m not too concerned with responsiveness, but it depends on what you are trying to achieve.
For example, if you are trying to see snap updates more rapidly you may want to look at the snap_monitor_interval setting. Or package_monitor_interval.
Those settings are in seconds though so I would be cautious of turning them down too low as the client may stuggle.
My concern was mostly about running scripts, there is some latency between when we dispatch the script and when the Broker places it on the device and runs it.
I was wondering if you guys have a parameter to tune this.
You could try ping_interval which is how often the client checks for messages. Then I think if a script is pending it will be classed as an urgent exchange so you could reduce urgent_exchange_interval.
Those are the only settings for the interaction between server and client but are not tested for anything too rapid fire.
Awesome, reducing all of these three variables seems to make the client a lot more responsive Not sure which variable does what xD but ok.
Is it possible to do a feature request to support these variables in the configure script of landscape-client so we can set defaults for them for our devices?
There is more problems I have with the newer versions… If I refresh to 279 it also seems that execute-script functionality does not work properly anymore, not sure if that is due to the same issue…
Does the model assertion you’re using include a serial-authority field? If it doesn’t, please add serial-authority: ["generic"]. This will tell the device to request a serial assertion from the global store. If that field is not provided, the device blocks indefinitely waiting for the serial. There’s a longer explanation here.
If you do have that specified, please share the model assertion & gadget.yaml in full I try reproduce the issue. Please redact any confidential information like keys, accounts, etc.
We do not have serial-authority: ["generic"] in our model, but we are also not connecting to the Global store. We have our own Brand Store, maybe that is your issue with reproducing?
I doubt we are waiting indefinitely for a serial, as requesting a serial and registering with it to Landscape seems to work on landscape-client revision 244, just not in later versions.
@st3v3nmw is there any channel where I can send them that is not public? I am not sure what information in there is secret and its a lot of logs so don’t feel like cleaning everything