lfs/chapter04/aboutsbus.xml

80 lines
4.0 KiB
XML
Raw Normal View History

2024-01-18 19:53:23 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-preps-aboutsbus">
<?dbhtml filename="aboutsbus.html"?>
<title>About SBUs</title>
<para>Many people would like to know beforehand approximately how long
it takes to compile and install each package. Because Linux From
Scratch can be built on many different systems, it is impossible to
provide absolute time estimates. The biggest package (gcc) will
take approximately 5 minutes on the fastest systems, but could take
days on slower systems! Instead of providing actual times,
the Standard Build Unit (SBU) measure will be
used instead.</para>
<para>The SBU measure works as follows. The first package to be compiled is
binutils in <xref linkend="chapter-cross-tools"/>. The time it takes to
2023-02-12 20:19:14 +00:00
compile using one core is what we will refer to as the Standard
Build Unit or SBU. All other compile times will be expressed in terms of this
unit of time.</para>
<para>For example, consider a package whose compilation time is 4.5
SBUs. This means that if your system took 10 minutes to compile and
install the first pass of binutils, it will take
<emphasis>approximately</emphasis> 45 minutes to build the example package.
Fortunately, most build times are shorter than one SBU.</para>
<para>SBUs are not entirely accurate because they depend on many
factors, including the host system's version of GCC. They are provided here
to give an estimate of how long it might take to install a package, but the
numbers can vary by as much as dozens of minutes in some cases.</para>
2024-08-25 19:49:01 +01:00
<para>Before measuring the build time of any package (no matter Binutils
pass 1 or a package of which the SBU is being measured), make sure a
system power profile suitable to make the system running with the
maximum performance (and the maximum power consumption) is selected. Or
the measured SBU value may be severly inaccurate because the system may be
operated differently building Binutils pass 1 and the other package.
Be aware that a significant inaccuracy can still show up even if the same
profile (except one maximizing the performance) is used for both packages:
the system may respond slower for <quote>saving the power</quote> building
Binutils pass 1, because the system load seems only about 25% of the load
building the other package (with <parameter>-j4</parameter>).</para>
<para>On most distros the power profile can be managed with either
<command>power-profiles-daemon</command> or <command>tuned</command>.
If the distro runs <command>power-profiles-daemon</command>, issue the
<command>powerprofilesctl set performance</command> command to select
the <literal>performance</literal> profile. If the distro runs
<command>tuned</command>, issue the <command>tuned-adm profile
throughput-performance</command> command to select the
<literal>throughput-performance</literal> profile.</para>
<para>Even if you are not measuring the SBU values, it's still better to
select the power profile for maximum performance before building LFS, as
doing so can (obviously) make the system faster to build LFS
packages.</para>
<note>
<para>When multiple processors are used in this way, the SBU units in the
book will vary even more than they normally would. In some cases, the make
step will simply fail. Analyzing the output of the build process will also
be more difficult because the lines from different processes will be
interleaved. If you run into a problem with a build step, revert to a
single processor build to properly analyze the error messages.</para>
<para>The times presented here are based upon using four cores (-j4). The
times in Chapter 8 also include the time to run the regression tests for
the package unless specified otherwise.</para>
</note>
</sect1>