在内存白菜价的今天,没个 8G、16G 的你都不好意思开口!但是在不需要跑程序时,这么多内存闲着可真够浪费的,本着节能减排的宗旨,必须把这空闲的利用起来。
用过 SSD 都应该对那种几近变态的 I/O 读写能力深有感触,就目前 SSD 的价格相对 HDD 来说还是贵了。但是可以利用大内存来曲线实现这种高速的 I/O 读写。市面上流行的 Linux 发行版都会划分出一块内存区域来做 ramfs,位于 /dev/shm,大小为实际物理内存的一半,可以直接利用这块区域而无需手动挂载 tmpfs.
很简单的一个脚本,就是利用 rsync 将硬盘上的虚拟机目录同步到内存中执行,然后每隔半小时同步一次防止丢数据。
#!/bin/bash # Your tmpfs VirtualBox folder VBOXTMPFS=/dev/shm/VirtualBox_VMs # Your VirtualBox folder VBOXHOME="${HOME}/VirtualBox_VMs" # Seconds interval for rsync INTERVAL=1800 # Check tmp folder if [ ! -d "${VBOXTMPFS}" ]; then mkdir -p ${VBOXTMPFS} fi # Sync to tmpfs echo "Syching ${VBOXHOME} to ${VBOXTMPFS}" rsync -avi --delete "${VBOXHOME}/" "${VBOXTMPFS}/" echo "Executing reverse sync every ${INTERVAL} seconds" ( while true; do sleep ${INTERVAL}; rsync -avi --delete "${VBOXTMPFS}/" "${VBOXHOME}/"; done; )& SYNC=$! echo "Launching VirtualBox" virtualbox echo "VirtualBox closed, kill auto sync and reverse sync one last time" echo "Please wait..." kill $! rsync -avi --delete "${VBOXTMPFS}/" "${VBOXHOME}/" echo "Done!"
效果绝对能接受,VirtualBox 里开一个 openSUSE 11.2 基本20s搞定。前提是内存足够大,要是低于10G的就要折腾一下了,毕竟 /dev/shm 只有内存的一半大小。
当然,这只是一个应用,你完全可以将 Chrome、Safari、Firefox等浏览器的缓存放到这里面来,加快读写速度。
PS:/dev/shm 本质还是 RAM 存储,所以一旦断电数据就没有了,切记!