但是一般会有几个限制:
1.内存内存基本上是一个硬限制。物理服务器的内存肯定是有限的。例如,一台服务器有8core,8G内存,通常hypervisor会占用512M内存,大概还剩下7.5G内存,假设每个虚拟机的配置是1corecpu,1G内存,那么在此机器上最多可以运行7个这样的虚拟机。再创建新的虚拟机时,就会报错说内存不够。在此情况下,每个虚拟机在满负载情况下最多可以拥有1个cpucore的运算能力,1G的内存空间。
当然,现在的hypervisor基本上都支持over-commit的功能,也就是说,如果你的内存只有8G,但是设定一定比例的overcommit,例如50%,那么你可以最多分出去12G内存。还是上面那个例子,如果设定overcommit为50%,那么最多可以创建11个虚拟机(1core,1Gmem)。在服务器虚拟化方面,建议overcommit设置的不要太高,一般20%。在桌面虚拟化方面,可以将overcommit设置到50%.
2.网卡如果服务器只有一个网卡,所有虚拟机的网络流量都是通过一块网卡出去,虚拟机越多,每个虚拟机可以使用的带宽就会越少,这个是需要综合考虑。例如使用多个网卡等。
3.CPUCPU资源基本上都是采用时分复用,也就是时间片的方式来轮询的。
4.磁盘I/O是本地磁盘还是网络磁盘?如果是网络磁盘,是使用的iSCSI还是光纤?不同的情况,负载是不一样的。
一般一台服务器上能跑多少个虚拟机,需要综合考虑物理服务器,虚拟机负载等方面的整体情况,再来计算。没有一个固定的公式。
通常一个节点的内存在250G左右,若不设置运行内存,则会默认250G,当设置核心数过少时,可能会被分配到某个含空闲核心数不多的节点,该节点内存亦不多,因此可能会导致任务被杀死,下图所示
因此一般需要配置使用内存,可同时配置软件的使用内存和服务器请求使用的内存
可增加核心数,并在配置文件中配置使用内存,如50G,则在Max memory输入50
1)指定作业设置最大内存:--mem=<size[units]>指定作业在每个节点申请的内存
2)每个进程设置最大内存:--mem-per-cpu=<size[units]>每个进程申请的内存
结果显示节点名、节点状态、剩余CPU(核心数)、CPUload(一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息)、节点内存大小,剩余节点内存,任务列表
查看
参考:
https://www.cnblogs.com/nandi001/p/11643414.html
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)