[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: installation-guide: simplify RAM/disk space requirements



Hi again,

Samuel Thibault <sthibault@debian.org> wrote (Sun, 6 Aug 2023 14:32:22 +0200):
> Holger Wansing, le sam. 05 août 2023 20:46:27 +0200, a ecrit:
> > Now looking in the doc source, I see that the "780MB" value from above is 
> > architecture-dependent too.
> 
> Ah, yes, that's part of the lowmem testing.
> 
> > While 780MB seems realistic for amd64 to me, I wonder if the other values can
> > be up-to-date:
> > 
> > amd64:minimum_memory=780
> > arm64:minimum_memory=260
> > armel:minimum_memory=80
> > armhf:minimum_memory=190
> > i386:minimum_memory=485
> > mips:minimum_memory=85
> > mips64el:minimum_memory=345
> > mipsel:minimum_memory=170
> > ppc64el:minimum_memory=64
> > s390x:minimum_memory=44
> > 
> > In the most eye-catching case of s390x, my proposal would mean, to change
> > the value in the guide from 44 to 512MB !
> > That leads to the question, if the new situation after my changing would be 
> > wrong, or if the doc was wrong in the past?
> 
> The doc probably just ended up wrong by just not getting updated,
> because we don't have people who both care about updating them, and have
> access to the hardware or know the qemu tricks to test all archs.
> 
> I see that in the lowmem package,
> bbb4ed4c4da20d585cf30ceba9f0987173d3ac70 raised the default levels from
> 32MB/64MB to 120MB/155MB, that being the minimum numbers that were
> actually seen to work on at least some arch.

Ok, I have now included those changes into my patch, to get the numbers
up-to-date for all archs. 

That is:

amd64:minimum_memory_strict=350
amd64:minimum_memory=780

arm64:minimum_memory_strict=245
arm64:minimum_memory=260

armel:minimum_memory_strict=140
armel:minimum_memory=190

armhf:minimum_memory_strict=140
armhf:minimum_memory=190

i386:minimum_memory_strict=285
i386:minimum_memory=485

mips64el:minimum_memory_strict=200
mips64el:minimum_memory=345

mipsel:minimum_memory_strict=160
mipsel:minimum_memory=170

ppc64el:minimum_memory_strict=256
ppc64el:minimum_memory=500

s390x:minimum_memory_strict=120
s390x:minimum_memory=155

See patch.


> > And, if a generic value for all archs is realistic and makes sense at all?
> 
> Probably not, as seen in the values in the lowmem package.

I think I found a reasonable solution.

Current situation is:

We have two sorts of numbers for RAM size:

a) some kind of rough values, identical for all archs. These are just 
   subjective values, rounded up to the next bigger RAM modules you can buy
   (current values can be found in
   "Table 3.2. Recommended Minimum System Requirements" at
   https://d-i.debian.org/manual/en.amd64/ch03s04.html )
   These are only rough recommendations, as in "we **recommend** X MB".
   And this chapter 3.4 also mentions, that these recommendations can well be 
   underrun by the second sort of values:
b) these are values based on meassurements during lowmem testing. They are 
   different over the archs, and in the current text they are considered as 
   some kind of strict requirement, as in "you **need** at least X MB" values.
   --> Compare this to the "we **recommend** X MB" values from a) !




Taking all this as a basis, I would like to propose the following:


1. in chapter 2 (https://people.debian.org/~holgerw/installation-guide___improve-ram-size-values/amd64/ch02s05.html)
   which is about hardware requirements, just mention the minimal rough 
   recommended values from a) which says something like "512MB" or "1GB",
   corresponding to RAM modules available from your favorite hardware store.

2. People who want to try to go with lower values, are guided to
   chapter 3 (https://people.debian.org/~holgerw/installation-guide___improve-ram-size-values/amd64/ch03s04.html),
   where they find the values from b) based on lowmem tests, which contain
   the "absolute minimum values", drawing the baseline that cannot be underrun.
   Note, that this page is different, depending on arch!

3. Move all the constraints / advanced infos like
     - installer should automatically do memory-saving tricks on low-memory systems"
     - warning, when lowmem levels are untested for some archs
     - note, that graphical installer images need more RAM
  from chapter 2 to 3, where they fit better: That's not hardware (which would
  be chapter 2), but how the software deals with the available hardware (so 
  that's chapter 3).

4. I moved the values for "Table 3.2. Recommended Minimum System Requirements"
   from hardcoded values to entities, to ease changings on this in the future
   (especially when looking at translations).

5. I bumped the recommended RAM size values from a) 
   from
   256MB (minimum) + 512MB (recommended)
   to
   512MB (minimum) + 1G (recommended)



All the resulting html files, separated for all archs can be found on
https://people.debian.org/~holgerw/installation-guide___improve-ram-size-values/

The interesting chapters are "Memory and Disk Space Requirements" in chapter 2
and "Meeting Minimum Hardware Requirements" in chapter 3.


Sorry, if this is kind of a chaotic thread; the issue grew bigger than I
had expected.



Holger


-- 
Holger Wansing <hwansing@mailbox.org>
PGP-Fingerprint: 496A C6E8 1442 4B34 8508  3529 59F1 87CA 156E B076
diff --git a/build/arch-options/armel b/build/arch-options/armel
index d17df5114..1598edb87 100644
--- a/build/arch-options/armel
+++ b/build/arch-options/armel
@@ -4,23 +4,23 @@
 
 # Note that we keep "arm" as archspec (and thus also for conditions)
 # and also continue to use "arm" for arch-specific XML-files in order
 # to minimize impact on translations.
 
 archspec="arm;armel;not-x86;not-s390;not-powerpc"
 arch_listname="arm"
 arch_porturl="arm"
 # TODO: update
 # This is coming from the lowmem package
-minimum_memory_strict=32
+minimum_memory_strict=140
 # This is coming from the lowmem package
-minimum_memory=80
+minimum_memory=190
 # These two options should be set if condition 'smp' is set below
 smp_config_section="N/A"
 smp_config_option="N/A"
 
 # Options below are assembled into one variable 'condition'
 # in the build scripts
 fdisk="fdisk.txt;cfdisk.txt"
 network="supports-tftp;supports-rarp;supports-bootp;supports-nfsroot"
 boot=""
 frontend="newt;not-gtk"
diff --git a/build/arch-options/ppc64el b/build/arch-options/ppc64el
index 2162cac4f..f07eb97de 100644
--- a/build/arch-options/ppc64el
+++ b/build/arch-options/ppc64el
@@ -1,22 +1,22 @@
 # This file contains architecture specific variables for
 # the 'ppc64el' architecture
 # It is sourced by the build scripts
 
 archspec="ppc64el;not-s390;not-x86"
 arch_listname="powerpc"
 arch_porturl="powerpc"
 # TODO: update
 # This is coming from the lowmem package
-minimum_memory_strict=32
+minimum_memory_strict=256
 # This is coming from the lowmem package
-minimum_memory=64
+minimum_memory=500
 # This is coming from the rootskel package, S60frontend
 minimum_memory_gtk=800
 # These two options should be set if condition 'smp' is set below
 smp_config_section="Processor support"
 smp_config_option="Symmetric multi-processing support"
 
 # Options below are assembled into one variable 'condition'
 # in the build scripts
 fdisk="fdisk.txt;cfdisk.txt"
 network="supports-tftp;supports-bootp;supports-nfsroot"
diff --git a/build/arch-options/s390x b/build/arch-options/s390x
index 7dcac7a73..8647fcc71 100644
--- a/build/arch-options/s390x
+++ b/build/arch-options/s390x
@@ -4,23 +4,23 @@
 
 # Note that we keep "s390" as archspec (and thus also for conditions)
 # and also continue to use "s390" for arch-specific XML-files in order
 # to minimize impact on translations.
 
 archspec="s390;not-powerpc;not-x86"
 arch_listname="s390"
 arch_porturl="s390"
 # TODO: update
 # This is coming from the lowmem package
-minimum_memory_strict=32
+minimum_memory_strict=120
 # This is coming from the lowmem package
-minimum_memory=44
+minimum_memory=155
 # These two options should be set if condition 'smp' is set below
 smp_config_section="Processor type and features"
 smp_config_option="Symmetric multi-processing support"
 
 # Options below are assembled into one variable 'condition'
 # in the build scripts
 fdisk="fdasd.txt;dasdfmt.txt"
 network=""
 boot=""
 frontend="not-newt;not-gtk"
diff --git a/build/entities/common.ent b/build/entities/common.ent
index 1e58745e1..f7b7f774c 100644
--- a/build/entities/common.ent
+++ b/build/entities/common.ent
@@ -59,30 +59,39 @@
 <!ENTITY escapekey "<keycap>Esc</keycap>">
 <!ENTITY tabkey "<keycap>Tab</keycap>">
 <!ENTITY spacekey "<keycap>Space</keycap>">
 <!ENTITY shiftkey "<keycap>Shift</keycap>">
 <!ENTITY MSG-YES "<userinput>Yes</userinput>">
 <!ENTITY MSG-NO "<userinput>No</userinput>">
 <!ENTITY BTN-CONT "<guibutton>Continue</guibutton>">
 <!ENTITY BTN-CANCEL "<guibutton>Cancel</guibutton>">
 <!ENTITY BTN-GOBACK "<guibutton>Go Back</guibutton>">
 
-<!-- notation used for 'megabytes' -->
+<!-- notation used for 'megabytes' and 'gigabytes' -->
 <!ENTITY notation-megabytes "MB">
+<!ENTITY notation-gigabytes "GB">
+
+<!-- generic RAM / harddisk size recommendations for all archs -->
+<!ENTITY ref-no-desktop-ram-minimum "512&notation-megabytes;">
+<!ENTITY ref-no-desktop-ram-recommend "1&notation-gigabytes;">
+<!ENTITY ref-no-desktop-hd "4&notation-gigabytes;">
+<!ENTITY ref-with-desktop-ram-minimum "1&notation-gigabytes;">
+<!ENTITY ref-with-desktop-ram-recommend "2&notation-gigabytes;">
+<!ENTITY ref-with-desktop-hd "10&notation-gigabytes;">
 
 <!-- minimum hard disk size for base system -->
 <!-- As measured just before reboot (i.e. before the cleanup script drops
 .debs), plus some margin. This is also approximately the used size after
 cleanup, plus minimal ~150MB work space included.
 Also update the value in debian-installer/build/boot/x86/f2.txt
 -->
-<!ENTITY minimum-fs-size "1160&notation-megabytes;">
+<!ENTITY minimum-fs-size "&ref-no-desktop-hd;">
 
 <!--
 Size of install as used in appendix/files.xml; all values based on amd64.
 
 To determine the size of the base system and tasks, start with a default
 installation:
 - having removed /usr/lib/finish-install.d/08hw-detect to avoid installing
 qemu-guest-agent which pulls glib+perl+icu
 - in English
 - with use of network mirror
diff --git a/en/hardware/memory-disk-requirements.xml b/en/hardware/memory-disk-requirements.xml
index 10f074738..eae24c6ff 100644
--- a/en/hardware/memory-disk-requirements.xml
+++ b/en/hardware/memory-disk-requirements.xml
@@ -1,48 +1,15 @@
 <!-- retain these comments for translator revision tracking -->
 <!-- $Id$ -->
 
  <sect1 id="memory-disk-requirements">
  <title>Memory and Disk Space Requirements</title>
 
 <para>
 
-You must have at least &minimum-memory; of memory and &minimum-fs-size;
-of hard disk space to perform a normal installation. Note that these are
-fairly minimal numbers. For more realistic figures, see
+We recommend at least &ref-no-desktop-ram-minimum; of memory and &minimum-fs-size;
+of hard disk space to perform an installation. For more detailed values, see
 <xref linkend="minimum-hardware-reqts"/>.
 
-</para><para>
-
-The installer normally automatically enables memory-saving tricks to be able to
-run on such low-memory system, but on architectures that are less tested
-it may miss doing so. It can however be enabled manually by appending the
-<userinput>lowmem=1</userinput> or even <userinput>lowmem=2</userinput> boot
-parameter (see also <xref linkend="lowmem"/> and
-<xref linkend="installer-args"/>).
-
-</para><warning condition="lowmem-unchecked"><para>
-
-On &architecture; the lowmem levels have not been tested, so automatic detection
-is probably outdated and you thus probably <emphasis>need</emphasis> to pass the
-boot parameter if your system has little memory.
-
-</para></warning><para>
-
-Installation on systems with less memory<footnote condition="gtk">
-
-<para>
-
-Installation images that support the graphical installer require more
-memory than images that support only the text-based installer and should
-not be used on systems with less than &minimum-memory; of memory. If
-there is a choice between booting the text-based and the graphical installer,
-the former should be selected on such systems.
-
-</para>
-
-</footnote> or disk space available may be possible but is only advised for
-experienced users.
-
 </para>
 
  </sect1>
diff --git a/en/preparing/minimum-hardware-reqts.xml b/en/preparing/minimum-hardware-reqts.xml
index eb36bb9ce..076c65791 100644
--- a/en/preparing/minimum-hardware-reqts.xml
+++ b/en/preparing/minimum-hardware-reqts.xml
@@ -38,48 +38,80 @@ Any OldWorld or NewWorld PowerPC can serve well as a desktop system.
   <entry>Install Type</entry>
   <entry>RAM (minimum)</entry>
   <entry>RAM (recommended)</entry>
   <entry>Hard Drive</entry>
 </row>
 </thead>
 
 <tbody>
 <row>
   <entry>No desktop</entry>
-  <entry>256 megabytes</entry>
-  <entry>512 megabytes</entry>
-  <entry>4 gigabytes</entry>
+  <entry>&ref-no-desktop-ram-minimum;</entry>
+  <entry>&ref-no-desktop-ram-recommend;</entry>
+  <entry>&ref-no-desktop-hd;</entry>
 </row><row arch="not-s390">
   <entry>With Desktop</entry>
-  <entry>1 gigabytes</entry>
-  <entry>2 gigabytes</entry>
-  <entry>10 gigabytes</entry>
+  <entry>&ref-with-desktop-ram-minimum;</entry>
+  <entry>&ref-with-desktop-ram-recommend;</entry>
+  <entry>&ref-with-desktop-hd;</entry>
 </row>
 
 </tbody></tgroup></table>
 
 <para>
 
 The minimum values assumes that swap will be enabled and a non-liveCD image is used.
-The <quote>No desktop</quote> value assumes that the non-graphical (text-based)
-installer is used.
+The <quote>No desktop</quote> value assumes that the text-based installer
+(not the graphical one) is used.
 
 </para><para>
 
 The actual minimum memory requirements are a lot less than the numbers
 listed in this table. With swap enabled, it is possible to
 install &debian; with as little as &minimum-memory-strict;.
 The same goes for the disk space requirements, especially if you
 pick and choose which applications to install; see
 <xref linkend="tasksel-size-list"/> for additional information on disk
 space requirements.
 
+</para><para>
+
+The installer normally automatically enables memory-saving tricks to be able to
+run on such low-memory system, but on architectures that are less tested
+it may miss doing so. It can however be enabled manually by appending the
+<userinput>lowmem=1</userinput> or even <userinput>lowmem=2</userinput> boot
+parameter (see also <xref linkend="lowmem"/> and
+<xref linkend="installer-args"/>).
+
+</para><warning condition="lowmem-unchecked"><para>
+
+On &architecture; the lowmem levels have not been tested, so automatic detection
+is probably outdated and you thus probably <emphasis>need</emphasis> to pass the
+boot parameter if your system has little memory.
+
+</para></warning><para>
+
+Installation on systems with less memory<footnote condition="gtk">
+
+<para>
+
+Installation images that support the graphical installer require more
+memory than images that support only the text-based installer and should
+not be used on systems with less than &minimum-memory; of memory. If
+there is a choice between booting the text-based and the graphical installer,
+the former should be selected on such systems.
+
+</para>
+
+</footnote> or disk space available may be possible but is only advised for
+experienced users.
+
 </para><para arch="not-s390">
 
 It is possible to run a graphical desktop environment on older or
 low-end systems, but in that case it is recommended to install
 a window manager that is less resource-hungry than those of the
 GNOME or KDE Plasma desktop environments; alternatives include
 <classname>xfce4</classname>, <classname>icewm</classname> and
 <classname>wmaker</classname>, but there are others to choose from.
 
 </para><para>

Reply to: