I’ve successfully integrated mender into NXP’s iMX 6UL by Yocto Warrior. And I’m analysing the startup time of the board with ‘systemd-analyze’.
My concern is, Mender is not shown in the services list obtained by running ‘systemd-analyze blame’ but mender is running as daemon (confirmed by running pidof).
So,
Why mender daemon is not listing in systemd-analyze?
how can I measure the startup impact of mender? Are there any particular method or do you have any benchmarks?
I think the blame command lists only running service units, which implies that the mender-client service unit file is considered as completed. If you do “systemd-analyse plot > mender.svg” it should be listed in there.
I’m not overly familiar with the mender client binary itself but:
given that in ExecStart= in the service unit file the mender binary is daemonizing itself I would expect the unit type to be something like “forking” so that the child process is monitored by systemd and the parent process can exit.
You could try changing the unit file type to ‘forking’ as a proof of concept to see if its a bug, or whether there is a specific reason that the type is ‘idle’
forking will not work as the Mender daemon does not actually fork. simple is the recommended option for services that neither fork nor provide startup notification, and idle, which Mender uses, is just a more relaxed version of simple. AFAIK it does not provide any information about startup time, which would require either forking or notification support.