Purpose PodSize feature:
Define the size of the buildcontainer for the job,so a job can be run with a suitable resources.
Being able to set the size of our Gitlab-CI container allows us to better manage our cluster resources and can lead to speed up of GitLab-CI pipelines without compromising the the cluster resources for other tasks being able to run multiple jobs in parallel.
odagrun does not need a setting to define how many jobs can be run in parallel, in stead, odagrun will spin off as many jobs possible within the cluster resources limitations.
Usage of Pod Sizes
To define the podsize, we can assign a
ODAGRUN_POD_SIZE Global or per Gitlab-CI job with:
Predefined Size Selection:
|type ||memory ||cpu |
|nano ||128Mi ||250m |
|micro ||256Mi ||500 |
|small ||512Mi ||1 |
|medium ||768Mi ||1500m |
|large ||1Gi ||2 |
|xlarge ||2Gi ||4 |
|xxlarge ||4Gi ||8 |
|xxxlarge ||8Gi ||8 |
ODAGRUN_POD_SIZE is not set, it silently defaults to micro.
when building e.g. with automake and gcc, If you get a message like:
mv -f $depbase.Tpo $depbase.Po
gcc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
One might want to increase the size of pod, or reduce the number of Parallel jobs as the process was probaly killed due to insufficiant memory.
Reduce number of parallel jobs with
Secondly, a good practice with
make would be:
make -j$(nproc)> /dev/null
/dev/null for builds does reduce the uneeded output, thus increasing readability and preserving resources!
ODAGRUN_POD_SIZE as a global variable for all jobs the default value.