linux有swap分区,windows怎么没有,那windows的虚拟内存有与swap分区有什么区别呢,他是电脑自动设置的吗

2024年12月05日 00:08
有5个网友回答
网友(1):

原理基本都是一样的 区别就是windows即使物理内存没有用完也会去用到虚拟内存 而Linux不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区)这就是两者的区别。。。
windows的虚拟内存是电脑自动设置的
Linux的swap分区是你装系统的时候分好的啊

网友(2):

Linux 只不过是把交换文件设计为可以用分区而已,Linux 也可以用文件的。他们的区别就是实现方式不同而已。
Windows 的虚拟内存文件好处是可以动态变动大小,这个归系统自己管理的。

Windows 的虚拟内存设置默认好像是 50%-100% 内存在 C 盘上动态分配。Linux 没有这个自动的设计,但分区时安装程序会根据习惯自动分区出一个适合大小的 SWAP 分区。

Windows 的虚拟内存交换文件坏处是混在系统分区里面使用,文件碎片问题和容量变动问题都会影响交换文件的效率,Linux 因为是独立的分区,所以没有文件碎片和容量变动的问题。

Windows 其实也可以借用 Linux 的 SWAP 理念,单独分一个分区,只用来放 Windows 的虚拟内存交换文件。

网友(3):

windows的虚拟内存默认是放到 C:盘 (或者安装windows的那个盘)的pagefile.sys (这个文件属于系统文件,是隐藏的)

而linux一般都是用那个swap分区(实际是)作交换页,但是linux实际上也可以用某个文件(而不是用一个swap分区)来作虚拟内存,linux甚至可以同时使用若干个swap分区和若干个文件来一起用。

你可以试一下如下命令来设置一个文件去参与页面交换(用windows的术语就是作虚拟内存)

# dd if=/dev/zero of=pagefile bs=1024 count=65535
# mkswap pagefile
# swapon pagefile

你就会发现你的swap空间大了64M (用free -m 来查看),就是因为pagefile这个64M的文件加入了交换空间,关闭的方法自然是
# swapoff pagefile

网友(4):

原理是一样的,是自动设置的。

网友(5):

Linux并非只有当物理内存用完的时候才会去动用swap,有一个参数叫swappiness, 当内存使用比例大于swappiness,linux主动开始swap。swappiness可以由用户自己配置,你要愿意可以把swap关掉。