适当最小虚拟机内存大小+虚拟机的虚拟内存设置到tmpfs,目前感觉不错

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
科学之子
帖子: 2280
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 848 次
接收感谢: 32 次

适当最小虚拟机内存大小+虚拟机的虚拟内存设置到tmpfs,目前感觉不错

#1

帖子 科学之子 » 2016-03-11 0:02

适当最小虚拟机内存大小+虚拟机的虚拟内存设置到tmpfs,目前感觉不错

以下旧文:
虚拟机的内存还是适当大小吧,虚拟机内存太小会导致频繁写入"分页文件",进而导致频繁大数据量(数百MB)同步.
虚拟机的内存应该尽可能小还适当大小?或有更好的策略?
如果虚拟机的IO控制器选中了"use host I/O cache"
则虚拟机访问的大部分硬盘数据都会在内存中,其中也包括"分页文件"(虚拟机内装得是Windows XP)

目前我采取的策略如下:
开启zram
zram的大小是物理内存的200%
swappiness=100,尽可能压缩冷页面来缓存热门的IO操作
不分配任何低速交换设备(如HDD等)
具体到我的环境,我就仅仅分配zram作为交换设备,因为没有物理的高速交换设备(如SSD等)
XP的虚拟机用VirtualBox默认的192MB内存,16MB显存(显存应当尽可能小)

Sat Mar 12 13:32:54 CST 2016补充:
总结一下:
VirtualBox的虚拟机内存如果设置过小会导致频繁和虚拟机硬盘IO增加
尽管Linux的IO缓存强大,但有一个最严重问题
就是分页文件并非只读文件,而是内存不足时会频繁写入的文件
写入就意味着必须要在某个时刻同步到硬盘
虽然有强大的IO缓存,并不会很卡,但硬盘却承担着很大的IO压力
所以还是适当大小吧,避免尽量避免不必要的硬盘IO,同时保留足够物理内存.
上次由 科学之子 在 2016-09-10 15:40,总共编辑 6 次。
onlylove
论坛版主
帖子: 4623
注册时间: 2007-01-14 16:23
送出感谢: 0
接收感谢: 115 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#2

帖子 onlylove » 2016-03-11 0:16

自然是适当大小,顺便说,xp的话,看版本,如果是xp sp3的话,其实还是建议1G的
这些用户感谢了作者 onlylove 于这个帖子:
科学之子 (2016-03-12 15:04)
评价: 3.7%
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
科学之子
帖子: 2280
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 848 次
接收感谢: 32 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#3

帖子 科学之子 » 2016-03-11 0:22

onlylove 写了:自然是适当大小,顺便说,xp的话,看版本,如果是xp sp3的话,其实还是建议1G的
我这里XP SP3,192MB内存,比512内存的感觉可能(不知感觉是否准确)稍微卡了一点
但基本不卡,比我那台2005年的256MB机器还要快很多,操作流畅程度也基本和我现在2010年实机XP SP3一样.
onlylove
论坛版主
帖子: 4623
注册时间: 2007-01-14 16:23
送出感谢: 0
接收感谢: 115 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#4

帖子 onlylove » 2016-03-11 2:35

如果我没记错的话,MSDN原版的SP3,开机占用内存在500M左右,这是我建议你给1G内存的原因,当然,不知为啥,虚拟机要比物理机器同配置快那么一点 :Hehe
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
科学之子
帖子: 2280
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 848 次
接收感谢: 32 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#5

帖子 科学之子 » 2016-03-11 3:17

onlylove 写了:如果我没记错的话,MSDN原版的SP3,开机占用内存在500M左右,这是我建议你给1G内存的原因,当然,不知为啥,虚拟机要比物理机器同配置快那么一点 :Hehe
仔细感觉了一下,发现虚拟机XP 192MB内存比我这实机XP 2G内存慢不少
但是速度依然可以接受
我猜测慢的原因是因为Linux的页缓存使用树来实现,在树中查找的效率自然不如直接在内存中寻址

我这里也是下载的MSDN版本(不知是否是真的,但装上去感觉很干净),连分页文件加起来都没1G

感觉快的原因我猜测就是使用了物理机OS的缓存
感觉如果内存足够大,直接相当于SSD了,如果总线带宽和CPU再强大一些,甚至可以超过普通SSD(再次强调,只是感觉)
onlylove
论坛版主
帖子: 4623
注册时间: 2007-01-14 16:23
送出感谢: 0
接收感谢: 115 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#6

帖子 onlylove » 2016-03-11 17:14

192M和2G比 …… 大概01年左右,电脑内存普遍在256M上,嗯,2G的话,怎么也得09年往后了吧
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
poloshiao
论坛版主
帖子: 18280
注册时间: 2009-08-04 16:33
送出感谢: 21 次
接收感谢: 1954 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#7

帖子 poloshiao » 2016-03-11 17:45

XP的虚拟机用VirtualBox默认的192MB内存,16MB显存
參閱
1. http://www.virtualbox.org/manual/ch03.h ... otherboard
Base memory
2. http://www.virtualbox.org/manual/ch01.html#gui-createvm
Creating your first virtual machine
2-1. A Windows XP guest will require at least a few hundred MB RAM to run properly
2-2. But, in any case, make sure you always have at least 256 to 512 MB of RAM left on your host operating system.
Guest 的 RAM 當然是越多越好 (隨時可以重新設定)
但是 基本原則是
Host 順利運轉的 最低需求 RAM 一定要足夠 (看你在 Host 要執行什麼程式) 最低是 256 to 512 MB
2-3. 意思是 先要看你的 Host 需要預留多少 RAM
其它 可以都分配給 Guest
这些用户感谢了作者 poloshiao 于这个帖子:
科学之子 (2016-03-12 13:28)
评价: 3.7%
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位
送出感谢: 37 次
接收感谢: 26 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#8

帖子 kashu » 2016-03-11 19:25

我一般都是把整个虚拟机全部放内存里跑(全部是包括整个虚拟机文件)
Win7及以上的系统没法这样搞,12GB的内存完全不够用

各Linux发行版、XP SP3在内存里同时跑几个是完全没问题的
当然,得考虑到在虚拟机里安装的应用之类的

这样玩的效果是:速度会比物理机还快……


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
科学之子
帖子: 2280
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 848 次
接收感谢: 32 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#9

帖子 科学之子 » 2016-03-12 14:59

kashu 写了:我一般都是把整个虚拟机全部放内存里跑(全部是包括整个虚拟机文件)
Win7及以上的系统没法这样搞,12GB的内存完全不够用

各Linux发行版、XP SP3在内存里同时跑几个是完全没问题的
当然,得考虑到在虚拟机里安装的应用之类的

这样玩的效果是:速度会比物理机还快……
这么做好像对Linux意义不大,因为Linux本身的缓存机制就非常强大
除非虚拟机需要写入大量数据,就像我不久前尝试的把虚拟机XP内存设置成192MB
结果就是Linux内核不断同步Windows分页文件的缓存到硬盘...
Win7及以上的系统没法这样搞,12GB的内存完全不够用
你具体怎么放到内存的?
Win7貌似也就几十GB
我觉得12GB内存,如果配合zram和bcache,效果几乎等同于完全放在内存里
zram配合bacche和Linux内核普通的缓存相比就是内存不足时无法释放掉冷数据占用的空间
头像
kashu
帖子: 451
注册时间: 2014-02-07 17:31
系统: Xubuntu 14.04.5 64位
送出感谢: 37 次
接收感谢: 26 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#10

帖子 kashu » 2016-03-12 15:22

科学之子 写了: Win7貌似也就几十GB

哦,可能是我记错了
应该是Win8以上吧(我是指64位的,虚拟机我一般也是安装64-bit的,硬盘里只保留了64-bit的ISO镜像)

科学之子 写了: 你具体怎么放到内存的?

我是这样放内存的,并把虚拟机的目录做个软链接过去:

代码: 全选

kashu:/tmp$ grep /tmp /etc/fstab
tmpfs /tmp tmpfs defaults,sync,noatime,nosuid,nodev,mode=1777,size=75% 0 0
你可以尝试一下,安装Xubuntu后开、关机、重启基本都1秒钟,感觉挺好。

但得好好关注内存和/tmp的使用率,别用满了,满了会很惨的。 :Haha
[/size]
这些用户感谢了作者 kashu 于这个帖子:
科学之子 (2016-03-12 19:01)
评价: 3.7%


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ ... DuDYX8L6Qg
头像
自由建客
论坛版主
帖子: 13445
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 113 次
联系:

Re: 虚拟机的内存还是适当大小吧,虚拟机内存太小会导致频繁写入"分页文件",进而导致频繁大数据量(数百MB)同步.

#11

帖子 自由建客 » 2016-03-16 22:22

看需求。客戶系統 Linux 不設交換區,Windows 不設頁面文件,客戶系統內存不足就增加虛擬機內存分配。
这些用户感谢了作者 自由建客 于这个帖子:
科学之子 (2016-03-16 22:51)
评价: 3.7%
科学之子
帖子: 2280
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 848 次
接收感谢: 32 次

Re: 虚拟机的内存应该尽可能小还适当大小?或有更好的策略?

#12

帖子 科学之子 » 2016-03-31 2:37

kashu 写了:
科学之子 写了: Win7貌似也就几十GB

哦,可能是我记错了
应该是Win8以上吧(我是指64位的,虚拟机我一般也是安装64-bit的,硬盘里只保留了64-bit的ISO镜像)

科学之子 写了: 你具体怎么放到内存的?

我是这样放内存的,并把虚拟机的目录做个软链接过去:

代码: 全选

kashu:/tmp$ grep /tmp /etc/fstab
tmpfs /tmp tmpfs defaults,sync,noatime,nosuid,nodev,mode=1777,size=75% 0 0
你可以尝试一下,安装Xubuntu后开、关机、重启基本都1秒钟,感觉挺好。

但得好好关注内存和/tmp的使用率,别用满了,满了会很惨的。 :Haha
[/size]
我没有尝试Xubuntu
但是我在VirtualBox内安装了Debian,vdi文件放在tmpfs上
结果开机还是要好几秒(好像超过10秒了)
是因为我的CPU比较老的缘故?
回复

回到 “虚拟机和虚拟化”