/usr/share/doc/sysadmin-guide/html/swap-allocation.html is in sysadmin-guide 0.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Allocating swap space</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Linux System Administrators Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Memory Management"
HREF="memory-management.html"><LINK
REL="PREVIOUS"
TITLE="Sharing swap spaces with other operating systems"
HREF="sharing-swap.html"><LINK
REL="NEXT"
TITLE="The buffer cache"
HREF="buffer-cache.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux System Administrators Guide: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="sharing-swap.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Memory Management</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="buffer-cache.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="SWAP-ALLOCATION"
></A
>6.5. Allocating swap space</H1
><P
>Some people will tell you that you should allocate twice as
much swap space as you have physical memory, but this is a bogus
rule. Here's how to do it properly:
<P
></P
><UL
><LI
><P
> Estimate your total memory needs. This is the largest
amount of memory you'll probably need at a time, that is the
sum of the memory requirements of all the programs you want to
run at the same time. This can be done by running at the same
time all the programs you are likely to ever be running at the
same time. </P
><P
>For instance, if you want to run X, you should allocate
about 8 MB for it, gcc wants several megabytes (some
files need an unusually large amount, up to tens of
megabytes, but usually about four should do), and so on.
The kernel will use about a megabyte by itself, and the
usual shells and other small utilities perhaps a few
hundred kilobytes (say a megabyte together). There is
no need to try to be exact, rough estimates are fine,
but you might want to be on the pessimistic side.</P
><P
>Remember that if there are going to be several people
using the system at the same time, they are all going
to consume memory. However, if two people run the same
program at the same time, the total memory consumption
is usually not double, since code pages and shared
libraries exist only once.</P
><P
>The <B
CLASS="COMMAND"
>free</B
> and <B
CLASS="COMMAND"
>ps</B
>
commands are useful for estimating the memory needs.
</P
></LI
><LI
><P
>Add some security to the estimate in step 1. This is because
estimates of program sizes will probably be wrong, because
you'll probably forget some programs you want to run, and to
make certain that you have some extra space just in case. A
couple of megabytes should be fine. (It is better to allocate
too much than too little swap space, but there's no need to
over-do it and allocate the whole disk, since unused swap space
is wasted space; see later about adding more swap.) Also,
since it is nicer to deal with even numbers, you can round the
value up to the next full megabyte.</P
></LI
><LI
><P
>Based on the computations above, you know how much memory
you'll be needing in total. So, in order to allocate swap
space, you just need to subtract the size of your physical
memory from the total memory needed, and you know how much
swap space you need. (On some versions of UNIX, you need to
allocate space for an image of the physical memory as well, so
the amount computed in step 2 is what you need and you shouldn't
do the subtraction.)</P
></LI
><LI
><P
>If your calculated swap space is very much larger than your
physical memory (more than a couple times larger), you should
probably invest in more physical memory, otherwise performance
will be too low.</P
></LI
></UL
>
</P
><P
>It's a good idea to have at least some swap space, even if
your calculations indicate that you need none. Linux uses
swap space somewhat aggressively, so that as much physical
memory as possible can be kept free. Linux will swap out
memory pages that have not been used, even if the memory
is not yet needed for anything. This avoids waiting for
swapping when it is needed: the swapping can be done
earlier, when the disk is otherwise idle.</P
><P
>Swap space can be divided among several disks. This
can sometimes improve performance, depending on the
relative speeds of the disks and the access patterns
of the disks. You might want to experiment with a few
schemes, but be aware that doing the experiments
properly is quite difficult. You should not believe
claims that any one scheme is superior to any other,
since it won't always be true.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="sharing-swap.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="buffer-cache.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Sharing swap spaces with other operating systems</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="memory-management.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The buffer cache</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
|