标签: virtual-memory

Windows Server 任务管理器显示的内存使用量远高于所有进程的工作集大小的总和

我有一台 16 GB 的 Windows Server 2008 x64 机器,主要运行 SQL Server 2008。在任务管理器中看到的可用内存非常低(目前为 128 MB),即使用了大约 15.7 GB。到现在为止还挺好。

现在,当我尝试使用最多的内存缩小进程的范围时,我感到困惑:任务管理器的“进程”选项卡中显示的所有进程都没有超过 200MB 的工作集大小。好吧,也许工作集大小不是相关的计数器?

为了弄清楚这一点,我使用了一个 PowerShell 命令 [1] 以一种蛮力方法来总结进程对象的每个单独的属性 - 当然其中一个必须加起来达到 15.7 GB,对吗?结果发现它们都没有,最接近的是 VirtualMemorySize(大约 12.7 GB)和 PeakVirtualMemorySize(大约 14.7 GB)。跆拳道?

换句话说:众多与内存相关的进程信息中的哪一个是“正确的”,即计入任务管理器的“性能”选项卡中显示的服务器物理内存?

谢谢你们!

[1] $erroractionpreference="silentlycontinue"; 获取进程| 通用 | where-object {$ .membertype -eq "Property"} | foreach-object {$ .name; (get-process | measure-object -sum $_.name ).sum / 1MB}

windows-server-2008 virtual-memory memory-usage sql-server-2008

5
推荐指数
1
解决办法
5110
查看次数

为什么 Windows Server 2012 R2 标准版只显示可用内存的 20%?

技术人员——我有一台基于 LENOVO x3650 X6/x64 的 Windows 服务器,带有 4 个 18 核/36 个逻辑处理器——安装了物理内存 (ram) @1.5 TB,总虚拟内存 @1.5 TB。但是,我只显示了 295 GB 的可用物理内存和 297 GB 的可用虚拟内存。发生了什么?Windows Server 2012 R2 Standard edition, version 6.3.9600, build 9600 是否会导致限制?我知道在 2008 年的 windows 产品世界中,企业版和标准版之间存在差异——但 2012 年服务器版的命名约定是不同的。windows server 2012 有一个数据中心类的 windows 产品——这是等价的吗?我是不是走错了路?我是否应该寻找不同的解释来解释为什么我只展示了我认为应该可用的 20%?

在此处输入图片说明

windows memory virtual-memory

5
推荐指数
1
解决办法
964
查看次数

/proc/sys/kernel/shmmax 的默认最大值是多少

我对于 shmmax 中的最大值应该设置多少有一个模糊性。

查看我的系统统计数据后,它显示以下内容:

#cat /proc/sys/kernel/shmmax 
18446744073692774399

#ipcs -l

------ Messages Limits --------
max queues system wide = 3675
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250 …
Run Code Online (Sandbox Code Playgroud)

shmmax virtual-memory sysctl proc

5
推荐指数
1
解决办法
7079
查看次数

如果您的虚拟字节数在 IIS 的应用程序池中很高,这会不会很糟糕?

IIS7.5 管理器中的工作进程窗格中的虚拟字节是什么意思相关

我有一台运行几个不同站点的服务器。我们看到了一些性能和内存问题。

当我转到工作进程时,我看到其中一个站点的虚拟字节数为 5 GB。专用字节是更合理的 800 MB。服务器为 x64,具有 8GB 内存和 IIS 7。

虚拟字节数如此之高是一个问题,还是一个红鲱鱼?如果虚拟字节数很高,这是否意味着它正在将内存存储在可能导致抖动的分页文件中?还是应用程序池只是在 Windows x64 上创建了一大块虚拟内存,而不会影响其他进程或写入分页文件?

iis application-pools virtual-memory paging

4
推荐指数
1
解决办法
8666
查看次数

高内存 64 位服务器,不使用所有 ram

我有台运行 centos 64bit 的高内存 linux 服务器,在正常运行 10-20 天后,我注意到在所有这些服务器上,它们实际上并没有使用到那时可用的所有内存(它们在 48gb 系统上都有大约 10gb 的空闲空间,并且在 64gb 系统上免费 20gb。

它们是网络服务器,并且在服务器中有超过 ram 数量的工作数据集(例如活动文件),所以我假设页面缓存会增长到使用所有 ram 的程度,然后页面缓存中的页面会在需要时/如果需要被释放。

例如 :

top - 09:44:46 up 57 days,  9:32,  5 users,  load average: 6.44, 6.33, 6.27
Tasks: 680 total,   4 running, 676 sleeping,   0 stopped,   0 zombie
Cpu(s): 17.3%us,  3.3%sy,  0.0%ni, 79.0%id,  0.1%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  49313212k total, 39277524k used, 10035688k free,  1247064k buffers
Swap: 20643832k total,        0k used, 20643832k free, 20592968k cached
Run Code Online (Sandbox Code Playgroud)

显示该服务器已经运行了 57 天,但是有 10GB …

linux memory centos virtual-memory

3
推荐指数
1
解决办法
1455
查看次数

尽管有足够的可用内存,但 Linux OOM 杀手仍在发挥作用

大约每周一次,OOM-killer 会在我的服务器中关闭一个 postgres 进程,尽管“免费”状态它有足够的可用内存。

我在这里和那里阅读了几个线程,但看不到任何真正的解释。难道真的是因为服务器现在已经掉呢?它是(Ubuntu)内核错误吗?

并且先发制人,是的,也许我会添加交换。但是就没有其他的解决办法了吗?或者至少解释一下?:)

服务器:物理戴尔
内存:64GB RAM 和 0 Swap
uname:Linux 服务器名称 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Postgres 版本:9.5.10(8GB 共享内存)
vm.overcommit_memory = 0

free -m在最后一次杀戮之前的输出

              可用的免费共享 buff/缓存总数
电话:64312 2666 450 8699 61196 52126
交换:0 0 0

上次杀死的内核日志

6 月 19 日 21:29:49 服务器名称内核:[17009377.877956] bash 调用 oom-killer:gfp_mask=0x26000c0,order=2,oom_score_adj=0
6 月 19 日 21:29:49 服务器名称内核:[17009377.877959] bash cpuset=/ mems_allowed=0-1
6 月 19 日 21:29:49 服务器名称内核:[17009377.877964] CPU:23 PID:61771 通讯:bash 未受污染 4.4.0-62-generic #83-Ubuntu …

postgresql linux memory virtual-memory oom

3
推荐指数
1
解决办法
2073
查看次数

VPS 上的 Linux 内存不足

在我的 VPS (CentOS) 4GB ram(2 + 2 需要时动态分配)上,我让 tomcat 运行以下选项 JAVA_OPTS="-Xms256m -Xmx2048m -XX:MaxPermSize=256m"。

现在,当我尝试启动其他基于 Java 的应用程序(如 hudson 服务器)时,出现以下错误:

 没有足够的内存供 Java 运行时环境继续使用。
 本机内存分配 (malloc) 未能为 Chunk::new 分配 664080 字节
 包含更多信息的错误报告文件保存为:
 /server/hs_err_pid26476.log

似乎系统无法分配 650KB 的内存,但它应该有 1.2 GB 的空闲空间。

自由 -m 
             缓存的已用空闲共享缓冲区总数
内存:4096 2816 1279 0 0 0
-/+ 缓冲区/缓存:2816 1279
交换:0 0 0

我发现在某个地方我还应该检查 /proc/user_beancounters,它在 privvmpages 上显示了 failcnt。我不知道这意味着什么(提供商是否按预期提供了 4GB 内存?还是他在作弊?)

# cat /proc/user_beancounters
版本:2.5
       uid 资源持有 maxheld 屏障限制 failcnt
 70692271:kmemsize 15371949 15388993 41943040 46137344 0
            锁定页面 0 0 1024 1024 0
            privvmpages …

linux vps java virtual-memory

2
推荐指数
1
解决办法
1947
查看次数

如何判断 Linux 系统是否有大内存?

i386 Linux 内核可以配置为每个进程的虚拟地址空间限制为 2、3 或 4 GiB,AFAIK。有什么我可以在 /proc 或其他地方查询来说明当前运行的内核是如何配置的吗?

更新:感谢您提供有关如何查询 4G 的答案。我可以通过什么方式查询 2G 与 3G?

linux virtual-memory

1
推荐指数
1
解决办法
2614
查看次数

64GB 服务器上的 100GB 虚拟内存,无需交换

可能的重复:
了解虚拟内存使用情况 > Linux 上的交换 + 物理内存

我们有以下流程:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                         
10684 root       8 -15 89.6g  13g 1.1g S 406.9 21.8 316:34.89 java 
Run Code Online (Sandbox Code Playgroud)

假设我们只有 64GB 的 RAM,这个虚拟内存量是否可以?这里还有关于物理内存的信息:

Mem:  65995412k total, 64967388k used,  1028024k free,  3976288k buffers
Swap: 32764556k total,     1236k used, 32763320k free, 19534812k cached
Run Code Online (Sandbox Code Playgroud)

如您所见,仅交换了 1236k。

我们想知道缺少的 30GB+ RAM 在哪里?它们在磁盘上吗?

特定进程可以使用多少虚拟内存?虚拟内存和 RAM 之间有什么联系。

linux memory virtual-memory

1
推荐指数
1
解决办法
1788
查看次数

Windows Server 2003 程序损失最小化

这是我在操作系统上遇到的最奇怪的事情。我运行了几个使用高达 1 GB 内存的程序。但是如果我最小化程序,它的内存使用量也会减少 100 mb!这意味着我丢失了 900 mb ram 只是消失了它去哪里了?我怎样才能把记忆留在原处?

在我自己的笔记本电脑上,程序运行良好而不会丢失内存。

该程序也不会立即崩溃,但几天后(它不会在内存中找到它需要的东西)有点奇怪......

这实际上是内存泄漏。(它只是错过了 ram)

我希望有人可以帮助我!

windows-server-2003 virtual-memory memory-leak

0
推荐指数
1
解决办法
358
查看次数

有没有办法手动提供虚拟内存?

我使用的其中一台 Windows VServer 中的托管商禁用了虚拟内存,以避免大量磁盘访问。同时,提供的RAM只有1GB,对于我正在使用的应用程序来说是不够的。

我熟悉这个应用程序的RAM访问模式,CPU和RAM吞吐量很低,但需要的RAM量很大。

有没有办法手动为 Windows 提供虚拟内存,以便应用程序能够运行?从我的角度来看,任何东西都足够了,无论是来自本地磁盘还是通过网络(即使我认为它在那里变得变态)。

virtual-memory windows-server-2008-r2

-2
推荐指数
1
解决办法
123
查看次数