Mailing List Archive


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

RE: [tlug] A Swap Question



On Tue, 6 Nov 2007, burlingk@example.com wrote:

On Mon, 5 Nov 2007, Daniel A. Ramaley wrote:

For new installs on new hardware (with 1GB or more RAM), i usually
allocate 1/2 GB swap. My rationale is that on a server if
the swap is

<snip>

That may not always be true. The comments equating swap usage to bad performance assume all the swap is being eaten up by one overzealous process. In that case, you're likely going to feel the pain. But it really does depend on exactly what you plan to do with the machine.


So, it is more a matter of how the programs utilize swap, than a matter of how much swap there is?

Is that accurate?

No... programs don't have any control over swap -- they just eat up memory.
The O/S then uses swap to give the programs the impression that they each have a near-infinite memory space (at least to the extent of the physical RAM). In other words, if you have 2GB each program can pretend that the 2GB is completely allocated to that program exclusively and the problems of sharing the physical memory among multiple programs running at the same time is handled by the O/S.


If you have multiple memory-hog programs but only one is really running at any one time (that is, the others are idle waiting on, maybe, a mouse click), the O/S will send the memory data used by the idle programs to swap, thus freeing up real RAM for the programs that are really doing something. When the idle programs start up again, there may be a momentary pause but for the most part, they will be re-loaded into RAM and continue as if nothing happened.

Performance only suffers if: (a) one running program tries to use more memory than you have physical RAM, or (b) multiple programs whose process space adds up to more than your physical RAM are all trying to run at the same time. In other words, so long as the total memory of the running programs is less than your physical RAM and the total memory of the idle AND the running programs is less than the swap, you're cool. It really depends on how often you intend to leave idle (non-running) programs with huge memory footprints loaded. My guess is that a server would seldom do that -- thus the low estimates when it comes to swap space. But a desktop machine could have a very different usage pattern.

For example, I have 2GB of RAM in my desktop machine. Right now, the top three memory hogs are these three processes:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16513 larabell  15   0 1143m 228m  33m S  0.0 11.4   1:10.56 java
18542 larabell  15   0  582m 332m  13m S  0.0 16.6   3:11.73 gimp
 9388 larabell  15   0  577m 241m  22m S  0.0 12.0  28:35.68 firefox-bin

Between the three, they think they have about 2.3GB allocated (VIRT). My machine could not run these three processes together without crashing if it were not for my swap space. Because these processes are mostly swapped out, only about 800Mb is of RAM is really being used (RES). Since all three of these processes are idle at the moment, there is no real problem with performance. If all three suddenly started accessing the swapped out memory, the machine would almost certainly slow to a crawl.

A larger swap allows idle processes to eat up more memory before you start to feel the pinch. It is very true that multiple active processes eating that same amount of memory can easily bring your machine to its knees. For that reason, a server is not likely to benefit from a large swap, since it seldom runs huge processes and the ones it does run are not likely to be idle for very long. A desktop is an entirely different matter and your use pattern is probably an important factor.

BTW, I've always used at least RAM-times-two for my desktop -- sometimes more. This machine has about 20GB. I could run 1.1GB java/gimp images till I turn blue without running out of memory ;-)...

---
Joseph L (Joe) Larabell            Never fight with a dragon
http://larabell.org                     for thou art crunchy
                                  and goest well with cheese.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links