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.
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
).