当程序需要的内存比电脑上拥有的物理内存还要大的时候,不管是 Windows 也好,Linux 也好,解决办法就是把存不下的东西转移到硬盘上的“虚拟内存”中去,尽管硬盘的速度比内存慢上很多,但是至少容量要大上很多。
另外,操作系统也可以把一些很久不活动的程序转移到虚拟内存中去,留出更多的主内存给需要的程序和磁盘缓冲。
Linux 在安装的时候,一般需要划出一个分区作为 Linux 的“交换分区”,作为虚拟内存内容的保存分区。
swapon -s 这个命令,可以查看当前系统的虚拟内存的情况,这条命令需要 root 来运行。
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
可以看到常常看到当前的交换分区为 /dev/sda3,第 2 栏的 Type 中显示为 partition,说明这是个交换分区,那么,还有其他的 Type 吗?
当然,其实 Linux 也可以像 Windows 一样,用交换文件来保存虚拟内存的内容,这样即使你忘记划出交换分区也不要紧,而且灵活性上会更大一些。下面我们看看如何创建交换文件。
交换文件和交换分区一样,大小是固定的,比如你想要一个 1G 的交换文件,那么首先要创建一个 1G 的空白文件,我们用 dd 这个工具来完成这个任务:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
1048576 就是 1G 用 KB 表示的大小,如果你想要其他大小的文件,更改这个数字即可。
上面的命令,会在根目录下创建 swapfile 这个文件,然后,我们需要将它格式化为交换文件的格式:
mkswap /swapfile
然后把挂载上去,就可以立刻应用这个交换文件了:
swapon /swapfile
你可以运行 swapon -s 查看一下:
Filename Type Size Used Priority
/dev/sda3 partition 1004052 0 -1
/swapfile file 1048486 0 -2
多出来了一项,Type 为 file,确实是我们创建的交换文件,系统已经在使用了。
如果你想开机的时候自动挂载这个交换文件,那么还要在 /etc/fstab 中加上下面这一句:
/swapfile none swap sw 0 0
这样就 OK 了。
经常有人问,虚拟内存要设多大才合适,是主内存的几点几倍性能最好云云,其实作为一般用途来讲,1~2G 就到顶了,妄想从虚拟内存上提高系统性能,是不可能的,去买内存条才是王道。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。