什么是虚拟内存(virtual memory)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是虚拟内存(virtual memory)相关的知识,希望对你有一定的参考价值。
上网时显示virtual memory 太低,想调高点,但是不太清楚这东西。
1)虚拟内存是从哪空出来的?是C盘吗?
2)虚拟内存低该删掉哪些东西?
3)虚拟内存要改为多少最好?太高或太低会造成电脑速度慢吗
4)虚拟内存和内存条有关系吗?
虚拟内存的设置你可以右键点击桌面上我的电脑,然后按照“属性--》高级--》(性能)设置--》高级--》(虚拟内存)更改”的步骤进入虚拟内存设置界面,进行设置。
虚拟内存会让你设置初始大小和最大值,一般来说你能看到一个推荐值,将初始大小设置为这个即可。最大值可设置为初始大小的1.5-2倍。
希望对你有帮助。 参考技术A 虚拟内存是C盘里划出的一部分,虚拟内存低可以用工具清理系统里的垃圾,或是在系统里把虚拟内存改大一点。虚拟内存的大小我认为应当根据各人的应用情况,虚拟内存与内内存的关系不是很大。如我的电脑的内存是4个G,有时还提示说我的虚拟内存小了,要求清理C盘。
Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法
一、项目场景
系统版本:Ubuntu18.04
Hadoop版本:Hadoop3.2.2
(分布式安装)
Hive版本:Hive3.1.2
二、问题描述
在使用 Hive
执行 select
语句时,出现了 job 分配报错:
...
ERROR exec.Task: Ended Job = job_1639344121150_0015 with errors
ERROR exec.Task: Error during job, obtaining debugging information...
...
Container [pid=20022,containerID=container_123123432324_0015_01_000005] is running 78348374834B
beyond the 'VIRTUAL' memory limit. Current usage: 247.6 MB of 1GB physical memory used;
2.9GB of 2.1GB virtual memory used. Killing container.
...
三、原因分析
可以看到,2.9GB of 2.1GB virtual memory used.
,2.1GB 的虚拟内存分配了 2.9GB 的任务,导致内存溢出,容器自动被 killed 掉了。这里的容器具体是 map 容器
还是 reduce 容器
我们暂且不管它。
四、解决方案
在执行 Hive
语句之前,先为 map
和 reduce
端设置参数如下:
set mapreduce.map.memory.mb=4096;
set mapreduce.map.java.opts=-Xmx3276M;
set mapreduce.reduce.memory.mb=4096;
set mapreduce.reduce.java.opts=-Xmx3276M;
注:java.opts 是 memory.mb 的 80% 左右,根据内存溢出时提示的内存大小(例如:Current usage: 2.0 GB of 2 GB physical memory used
)进行增大内存,增大的最小单位是1GB。
接着再尝试执行我们的 select 语句。参考博客:https://blog.csdn.net/weixin_33581873/article/details/111948418
以上是关于什么是虚拟内存(virtual memory)的主要内容,如果未能解决你的问题,请参考以下文章
27 windows_27_windows_Virtual_Memory 虚拟内存
虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory
virtual memory exhausted: Cannot allocate memory
Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法