hyper-v虚拟服务器内存满了,在Hyper-V Dynamic Memory里设置虚拟内存

Hyper-V R2 SP1版中加入了动态内存技术,关于内存分配的猜想也随之结束。当VMware可以自动进行虚拟内存分配的时候,Hyper-V通过动态内存让用户可以调整虚拟内存的设置。这种灵活性为主机内存分配方式提供了参考,有效提高了精确度和降低难度。

通过Hyper-V动态内存技术,主机可以在虚机之间根据实时状态,动态地平衡内存资源的使用。内存作为物理机上的资源池存在,然后可以根据需要动态地分配给虚机。但是这种分配方式也有一个小问题:Hyper-V完成对内存的分配需要1~2秒的间隔。

以计算机的时间来看,一秒明显是个过长的周期。在一两秒的时间内,虚拟机的内存需求会极大的发生改变。在此期间,主机会从内存需求突然增大的虚机中移除分配的内存。因此,Hyper-V动态内存技术中包含了对虚拟内存的设置——通常称为内存缓存和内存优先级,以便于控制主机行为和改善虚拟内存管理。

内存缓存设置为虚拟机提供比实际需求更多的内存空间。内存优先级设置可以让用户指定在内存资源短缺时,哪台虚机可以优先获取。在标有Memory Management的对话框内您可以找到对虚拟内存配置的选项。

内存缓存设置

内存缓存是Hyper-V虚拟内存的基本设置,它为每台虚机保留额外空间,当内存需求在某个一两秒间隔内突然增大时,可以使用保留区域。在没有缓存的情况下,这一两秒内突然增大的内存需求,会迫使虚机进入内存溢出状态,该状态下自动将内存页面文件写入磁盘。当然,我们不希望写入磁盘的情况发生,数据从高速运行的内存空间中转移到相对而言极慢的磁盘上,会导致计算性能的明显降低。

内存缓存设置可以针对单个虚拟机进行。内存管理选项中提供了一个滑动条用于增加和减少保留用于缓存空间的百分比。某个特定时间内,Hyper-V主机为虚拟机分配的额外内存空间可以扩展到任意大小。

举个例子,假设我们为虚拟机保留了10%的内存作为缓存,在某个特殊时刻,该虚拟机显示需要1,000MB的内存。在本案中,Hyper-V主机实际为该虚拟机分配了1,100MB的内存。几秒后,虚拟机可能显示需要1,500MB的内存。此时,Hyper-V主机实际为其分配了1,650MB。请记住,主机保留的额外内存空间取决于您在内存设置中指定的百分比大小。

很明显,当内存需求发生改变时,额外保留的空间可以降低虚拟机需要把内存数据写入磁盘的概率。同时,更大的缓存空间也带来了浪费。保留的内存区域总是处于可用状态,因此在虚拟机用到它之前都是闲置的。从设置看,用户灵活性很大,该比率可以是5%到95%之间的任意数字。比较好的方式是,开始的时候设置的小一点。因为,当发现虚拟机总是发生写入磁盘的情况时,您可以随时对比率进行调整。

内存优先级设置

虚拟内存管理提供的另一个重要工具是内存优先级配置。Hyper-V动态内存技术总是不断地平衡内存的使用,但有时内存资源无法满足所有虚拟机的需求。或许您启用了过多的虚机,或者某台虚机运行特殊线程时可能会突然需要大量内存资源。

当发生这种情况是,内存优先级设置可以让我们对虚机的优先级分类。您需要给Hyper-V设置一个需要优先满足需求的虚拟机清单。低优先级的虚机在高优先级虚机内存分配未完成前无法获得内存资源。

如果主机提示进行虚拟内存设置,往往意味着您的内存资源很紧张。只有在可用内存耗尽时主机才会提示内存优先级问题。因此在多数时间内,Hyper-V不会用到它。但是如果发生这种情况,所有缺少内存资源的虚拟机都需要把内存数据写入硬盘,性能会大幅降低。虽然可以通过设置优先级清单来保障高优先级的虚机,但是首先还是要配置好虚拟主机尽量不要用到内存优先级。

这些虚拟内存配置可以增强虚拟内存的管理并帮助诊断内存资源争用问题。用户可以通过Hyper-V动态内存设置来找到最适合的内存分配方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-IO引脚复用-原理和使用

1.什么是端口复用? STM32有很多的内置外设(把一些功能ADC\看门狗…集中到芯片里面),这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候&#xff0c…

泰拉瑞亚服务器config修改,泰拉瑞亚配置怎么修改_泰拉瑞亚配置修改方法介绍...

泰拉瑞亚配置怎么修改呢,还有很多玩家还不知道的,下面小编为玩家们带来了泰拉瑞亚配置修改方法介绍,一起来看看吧。泰拉瑞亚配置修改方法介绍Config文件(1)Wiki链接http://terraria.gamepedia.com/Config.json_settings(2)关于Configconfig文…

STM32-UART-串口通信框图-波特率计算

1.处理器与外部设备通信的两种方式: 并行通信 传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多 串行通信 传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢…

java客户端与服务器信息加密,Java AES加密 - 在客户端和服务器之间发送初始化向量...

我在客户端生成初始化向量,其中消息被加密,然后与解密向量一起发送到服务器。Java AES加密 - 在客户端和服务器之间发送初始化向量客户端代码:String key1 "1234567812345678";byte[] key2 key1.getBytes();SecretKeySpec secret…

STM32-串口发送数据-过程与配置

串口发送过程配置流程 HAL库中串口寄存器定义文件: stm32f429xx.h F429芯片 stm32f767xx.h F767芯片 stm32f103xx.h F103芯片 stm32fnnnx.x.h 其他芯片 可以在其中找到USART_TypeDef:最终会映射到寄存器的地址。 typedef struct {__IO uint32_t CR1;…

STM32 串口接收流程-串口接收中断

串口接收 串口接收流程 编程USARTx_CR1的M位来定义字长。编程USARTx_CR2的STOP位来定义停止位位数。编程USARTx_BRR寄存器确定波特率。使能USARTx_CR1的UE位使能USARTx。如果进行多缓冲通信,配置USARTx_CR3的DMA使能(DMAT)。使能USARTx_CR1的RE位为1使…

STM32-串口接收、发送数据实验-程序代码分析

串口通信实验 Printf支持 printf向串口发送一些字符串数据。如果使用串口2,可以修改while((USART1->SR&0X40)0);和USART1->DR (u8) ch; 中的USART1为USART2. //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_…

STM32-外部中断配置-外部中断实验

STM32-外部中断原理与配置 IO口外部中断原理概述 STM32控制器支持的外部中断/事件请求 中断线M3M4M7EXTI线0~15:对应外部IO口的输入中断。√√√EXTI线16:连接到PVD输出。√√√EXTI线17:连接到RTC闹钟事件。√√√EXTI线18:连接到USB OTG…

STM32-独立看门狗原理-实验

独立看门狗原理概述 为什么要看门狗: 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继…

STM32-窗口看门狗-工作过程-配置-实验

窗口看门狗 窗口看门狗概述 之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。 而独立看门狗限制喂狗时间在0-x内…

python 列表、元组、集合、字典、循环遍历数据结构

python 列表、元组、集合、字典、数据结构的循环(整理自python文档)列表-list-用方括号标注,逗号分隔的一组值list 的 方法对list添加、插入、删除、查找、排列、翻转list.append(x)list.extend(iterable)list.insert(i, x)list.remove(x)lis…

音频和视频的基础知识

目录PCM-脉冲编码调制录音的原理记录声音-音频数字化音频数字化-PCM采样采样采样率采样定理量化位深度编码声道(Channel)比特率信噪比编码(Encode)解码(Decode)常见的音频编码和文件格式无损Monkeys AudioF…

神经网络算法-论证单层感知器的局限性

神经网络算法-论证单层感知器的局限性 今天课上学习了一个思路 将真值表转换到平面直角坐标系中 来论证线性可分还是不可分,挺有意思记录一下。 简单感知器模型实际上仍然是MP模型的结构,但是它通过采用监督学习来逐步增强模式划分的能力,达…

python 通过pip安装库 pycharm里面使用第三方库

安装所需的模块(python) pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。 首先命令行输入pip3 --version查看是否有pip C:\Users\jym>pip3 --version pip 19.2.3 from d:\program files\python38\l…

python threading-单线程 多线程 主线程 子线程 setDeamon join

python threading-单线程 多线程 主线程 子线程 setDeamon join单线程多线程主线程和子线程setDaemon()join()测试多线程下程序运行的时间创建多个线程优化子线程单线程 用单线程 ,做听音乐和看电影两件事儿,首先排一下顺序。 import timedef music():…

python 解决bytes和str之间 出现 TypeError的问题

解决TypeError: can only concatenate str (not “bytes”) to str 错误提示: pic_content pic_contentf.read() TypeError: can only concatenate str (not “bytes”) to str 首先来看代码: text_content HTTP/1.x 200 OK Content-Type: text/h…

python 实现TCP socket通信和 HTTP服务器、服务器和客户端通信python实例

python 实现TCP socket通信和 HTTP服务器、服务器和客户端通信实例socket是什么?服务器和客户端通信的流程python 实现TCP socket通信例子关于Host和PORT的设置socket函数socket编程思路基于TCP socket的HTTP服务器分析HTTP服务器代码服务器的response文本客户端的r…

判断ROS版本号-ubuntu20.04安装ROS_noetic-修改镜像源

判断ROS版本号-ROS安装-修改镜像源 linux版本:ubuntu20.04 ROS版本:noetic判断ROS版本号安装ROS改镜像源判断ROS版本号 机器人用的是树莓派、stm32、ros。 首先要配置网络,把机器人上的sd卡插到树莓派开发板上,然后配置连接的热点。 接下来&#xff0…

ROS基本概念 文件系统 创建ROS软件包 ROS中的一些命令

ROS基本概念 文件系统 创建ROS软件包 ROS中的一些命令ROS是什么ROS文件系统文件系统工具:rospack、roscd、rosls创建ROS 软件包catkin是什么创建和构建一个catkin工作空间:catkin软件包的结构catkin工作空间中存放软件包的结构创建catkin软件包-catkin_c…

ubuntu 中 ROS 一些报错的解决

1. Unable to load type jymubuntu:~/catkin_ws$ rosservice args /add_two_ints ERROR: Unable to load type [beginner_tutorials/AddTwoInts]. Have you typed make in [beginner_tutorials]?由于当前使用的终端的工作环境没有更新导致无法找到自定义的消息。使用下面的命…