Performance Tuning
Enable Ansible Pipelining
Ansible can be switched into pipelining mode when executing playbooks. This can significantly increase the performance especially when using emulated environments.
To enable pipelining just add ansible_pipelining: true to the general/parameters section
of your project configuration:
general:
...
parameters:
...
ansible_pipelining: true
...
...
Choosing a Suitable Compression Algorithm
A lot of intermediate artifacts of edi get compressed. The default compression algorithm is xz.
The xz algorithm is very good at reaching a high compression rate but it is rather slow.
To get some more speed when doing frequent builds it is advisable to switch to the gz
algorithm.
This can be done within the general section of the project configuration:
general:
...
edi_compression: gz
...
Avoid Re-bootstrapping
The bootstrapping process using debootstrap is pretty time consuming - especially when doing it for
a foreign architecture. In most cases the bootstrapped artifact is not affected by modifications done
to the project configuration. Therefore it is in most of the cases OK to keep the bootstrapped artifact
when doing a next build. The tool edi supports this workflow through the
--recursive-clean NUMBER command line option. Please take a look at this blog post for a
detailed example.
- --recursive-clean NUMBER
Cleans the artifacts that got produced by this and the preceding N commands.
Re-configure your Container Instead of Re-creating it
The tool edi enables you to do a lot of development work within a container that is very similar
to the target device. As the project configuration will change over time, also the development container
should be changed accordingly. Luckily the container setup can be adjusted by just re-executing the command
that got used in first place to generate the container (e.g. edi -v lxc configure CONTAINERNAME CONFIG.yml).