这个问题源自同事之间的一个玩笑,内容是关于通过将交换文件移动到tmpfs来提高性能。显然,即使有可能,也不是一个好主意。我想知道的是,能做到吗?
我目前在Ubuntu 14.04上,但是我可以想象大多数Linux / Unix机器的过程是相似的。这是我在做什么:
> mkdir /mnt/tmp
> mount -t tmpfs -o size=10m tmpfs /mnt/tmp
> dd if=/dev/zero of=/mnt/tmp/swapfile bs=1024 count=10240
> chmod 600 /mnt/tmp/swapfile
> mkswap /mnt/tmp/swapfile
# So far, so good!
> swapon /mnt/tmp/swapfile
swapon: /mnt/tmp/swapfile: swapon failed: Invalid argument
因此,在linux或unix(我对任何解决方案都感兴趣)上,您能以某种方式在驻留在ram中的文件/分区上设置交换吗?有办法解决Invalid argument
我遇到的错误吗?
再次强调一下,我不希望这是解决实际问题的方法。我想这只是一个有趣的实验。
因此,在linux或unix(我对任何解决方案都感兴趣)上,您能以某种方式在驻留在ram中的文件/分区上设置交换吗?
当然。在FreeBSD上:
# swapinfo -h
Device 1024-blocks Used Avail Capacity
/dev/mirror/swap.eli 4194300 0B 4.0G 0%
这表明,目前,我有一个具有镜像冗余的4G加密交换分区。我将添加另一个4G的非冗余,非加密交换:
首先创建一个支持4G RAM的“内存磁盘”(md
)设备:
# mdconfig -a -t malloc -s 4g; mdconfig -lv
md0
md0 malloc 4096M -
然后告诉swapon
将其添加到可用交换设备池中,并swapinfo
确认我现在有8G交换:
# swapon /dev/md0; swapinfo -h
Device 1024-blocks Used Avail Capacity
/dev/mirror/swap.eli 4194300 0B 4.0G 0%
/dev/md0 4194304 0B 4.0G 0%
Total 8388604 0B 8.0G 0%
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句