next up previous contents index
Next: The buffer cache Up: Memory Management Previous: Sharing swap spaces with

分配对换空间

 

也许有人告诉你,应该分配2倍于物理内存的对换空间,但这是个虚假的规律。下面说明如何正确:

  1. 估计你的全部内存需求。这是你可能需要的最大量,即你要同时运行的所有程序所需的内存要求的总和。 你可以同时运行你可能同时运行的所有程序试试。

    例如,如果你想运行X,你得分配8MB给他,gcc要求数MB(有些文件偶尔可能需要很大量,数十MB, 但一般4MB差不多),等等。核心自己使用1MB,Shell和一些小工具可能需要几百KB(或说,总共1MB)。 不必太精确,粗略估计就行,但可以较悲观地考虑。

    记得如果将有多人同时使用系统,他们将都消耗内存。如果2个人同时运行相同的程序,总内存消耗一般并非 加倍,因为代码页和共享库是单一的。

    free ps 命令对估计内存需求很有用。

  2. 第一步的估计加上一些安全量。因为对程序大小的估计很可能是错误的,因为你可能忘了一些要运行的程序, 并确定你有一些额外空间。应该有数MB。(分配太多对换空间比分配太少好,但不必过分,因为不使用的 对换空间是浪费;见后文:关于增加对换空间。) Also,since it is nicer to deal with even numbers, you can round the value up to the next full megabyte.

  3. 基于以上计算,你知道了你总共需要多少内存。减去你的实际物理内存,就是对换空间。 (有些版本的UNIX中,你还需要分配物理内存的映象空间,所以第二布中计算的你所需的空间就不能减)

  4. 如果你计算的对换空间比你的实际物理内存大得多(大于好几倍以上),那么你也许需要更多的物理内存, 否则系统性能将太低。

即使计算显示你无须对换空间,最好还是至少有一些。Linux有些侵略性地使用对换空间,这样保持一定 的空闲物理内存。即使内存还不为什么程序所需,Linux也会换出一些不用的内存页,这样在需要的时候 就可以避免因对换的等待--即对换可以在硬盘空闲的时候提早完成。

对换空间可以分在几个硬盘中,这有时可以提高性能,依赖于这些盘的相对速度和存取模式。 你可以尝试几中方案,但要知道正确地尝试是很困难的。 不要相信某种方案比其他方案好的断定,因为它不会总是对的。


next up previous contents index
Next: The buffer cache Up: Memory Management Previous: Sharing swap spaces with

Lars Wirzenius
Sun Jun 29 13:31:22 EEST 1997