首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

与虚拟内存相比,为什么我的进程占用更高的常驻内存?

进程占用更高的常驻内存可能是由于以下几个原因:

  1. 虚拟内存机制:虚拟内存是一种操作系统提供的内存管理技术,它将进程的内存地址空间分为多个虚拟页面,并将这些虚拟页面映射到物理内存或磁盘上。当进程需要访问某个虚拟页面时,操作系统会将其加载到物理内存中。因此,虚拟内存可以使进程的内存占用看起来较小,因为只有部分页面被加载到物理内存中。
  2. 常驻内存:常驻内存是指进程在物理内存中一直保持驻留的部分,不会被操作系统交换到磁盘上。常驻内存通常包括进程的代码段、数据段、堆栈等。相比之下,虚拟内存中的部分页面可能被交换到磁盘上,需要时再加载到物理内存中。因此,进程的常驻内存占用会比虚拟内存占用更高。
  3. 内存分配和释放:进程在运行过程中会动态地申请和释放内存。如果进程频繁地申请和释放内存,可能会导致内存碎片的产生,从而增加了进程的常驻内存占用。
  4. 内存泄漏:内存泄漏是指进程在运行过程中申请的内存没有被正确释放,导致内存占用不断增加。如果进程存在内存泄漏问题,常驻内存占用会逐渐增加。

综上所述,进程占用更高的常驻内存可能是由于虚拟内存机制、常驻内存、内存分配和释放、内存泄漏等原因造成的。为了减少进程的常驻内存占用,可以优化内存管理、减少内存碎片、及时释放不再使用的内存,并进行内存泄漏检测和修复。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 中 Dalvik Heap 和 Native Heap

这样设计目的是为了让 Android 系统能同时让比较多进程常驻内存,这样程序启动时就不用每次都重新加载到内存,能够给用户更快响应。...迫使每个应用程序使用较小内存,移动设备非常有限RAM就能使比较多app常驻其中。...进程内存空间和 RAM 之间关系 进程内存空间只是虚拟内存(或者叫作逻辑内存),而程序运行需要是实实在在内存,即物理内存(RAM)。...在必要时,操作系统会将程序运行中申请内存虚拟内存)映射到RAM,让进程能够使用物理内存。...- Proportional Set Size 实际使用物理内存(比例分配共享库占用内存) USS- Unique Set Size 进程独自占用物理内存(不包含共享库占用内存) 一般来说内存占用大小有如下规律

10.8K00

OpenResty 和 Nginx 如何分配和管理内存

下面我们首先介绍 Nginx 进程在系统层面的内存占用分布,然后再逐个介绍应用层面的各种内存分配器。 系统层面 在现代操作系统中,进程在最高层面上申请和使用内存都是虚拟内存。...操作系统为每个进程分配和管理虚拟内存,并将实际使用虚拟内存页,映射到物理内存页上去(比如 DDR4 内存条等设备里)。...一个很重要概念是,进程可能会申请很多虚拟内存空间,而实际只使用其中很小一部分。比如,一个进程可以向操作系统申请 2TB 虚拟内存空间,即使当前系统只有 8GB 物理内存(RAM)。...实际使用那一小部分虚拟内存(即读写了数据),通常被叫做 RSS,即 常驻内存(resident memory)。当系统物理内存快耗尽时候,一部分常驻内存页里数据会被 交换 到硬盘上^1。...有很多工具可以提供任意进程(包括 OpenResty 应用 nginx 工作进程虚拟内存占用常驻内存占用和交换出去内存空间大小。

1.4K10

Linux 系统 top 命令详解

大家好,又见面了,是你们朋友全栈君。 文章目录 前言 top 命令关键词详解 1. VIRT:virtual memory usage 虚拟内存 2....VIRT:virtual memory usage 虚拟内存 1、进程“需要虚拟内存大小,包括进程使用库、代码、数据等 2、假如进程申请100m内存,但实际只使用了10m,那么它会增长100m...RES:resident memory usage 常驻内存 1、进程当前使用内存大小,不包括swap out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m,它只增长10m,...VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小 5、单位kb。...NI:进程nice值(优先级)。越小值意味着越高优先级。负值表示高优先级,正值表示低优先级 VIRT:进程使用虚拟内存进程使用虚拟内存总量,单位kb。

3.4K10

OS——内存扩充技术

OS——内存扩充技术 需求 为什么需要内存扩充技术?我们知道当并发运动多个进程长度之和大于内存可用空间时,多道程序设计就会出现很多困难。内存扩充技术就是借助大容量辅存,在逻辑上实现内存扩充。...常见内存扩充技术有覆盖技术、交换技术以及虚拟内存。本节主要探讨前两种,即虚拟内存出现前内存扩充技术。...在覆盖技术中,内存被分为固定区覆盖区,其中固定区是常驻内存放入区域,调入后就不再调出,直到运行结束。...覆盖 空间分配 Main 10KB A和B 30KB C、D、E 40KB 可以发现:每一个覆盖段小组内存必须为该小组内占用内存最大程序段。...交换技术类型 按照在内存外存间切换单位,可以分为整体交换部分交换 整体交换:以整个进程为单位在内存和外存之间交换,目的是减轻内存负荷,多用于多道程序系统,处理机中级调度核心就是交换技术。

62920

springboot第47集:【思维导图】面向对象,关键字,标识符,变量,数组使用...

root %CPU(CPU使用率): 98.7 %MEM(内存使用率): 0.1 VSZ(虚拟内存大小): 111512 KB RSS(常驻集大小): 2036 KB TTY/STAT/START TIME...%MEM: 进程物理RAM(内存)使用百分比。 VSZ: 虚拟内存大小,包括进程可以访问所有内存,包括已交换出去内存。 RSS: 常驻集大小,是进程在RAM中部分内存(非交换)。...它是Linux内核内存管理子系统一部分,参与处理当系统物理内存已满时交换空间。 PID(进程ID): 进程唯一标识符。 USER(用户): 进程所有者。...%CPU(CPU使用率): 进程占用CPU百分比。 %MEM(内存使用率): 进程占用物理内存百分比。 VSZ(虚拟内存大小): 进程虚拟内存大小。...RSS(常驻集大小): 进程占用实际内存大小。 TTY/STAT/START TIME(终端/状态/启动时间): 一些其他进程状态信息。 COMMAND(命令): 进程执行命令或名称。

21010

Linux中使用top命令技巧

首先介绍top中一些字段含义: VIRT:virtual memory usage 虚拟内存 1、进程“需要虚拟内存大小,包括进程使用库、代码、数据等 2、假如进程申请100m内存,但实际只使用了...10m,那么它会增长100m,而不是实际使用量 RES:resident memory usage 常驻内存 1、进程当前使用内存大小,但不包括swap out 2、包含其他进程共享 3、如果申请...100m内存,实际使用10m,它只增长10m,VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小 SHR:shared memory 共享内存 1、除了自身进程共享内存...,单位是 KiB(kibibytes) RES:常驻内存大小,单位是 KiB(物理内存虚拟内存一部分) SHR:共享内存大小,单位是 KiB(共享内存虚拟内存一部分) S:进程状态,一般 I 代表空闲...重要是要知道 VIRT 值最高进程就是内存使用最多进程。当你在用 top 排查为什么电脑运行无比卡时候,那个 VIRT 数值最大进程就是元凶。

1.9K30

php为什么要用swoole?

认为有以下几点: 常驻内存,避免重复加载带来性能损耗,提升海量性能 协程异步,提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等) 方便地开发 Http、WebSocket、TCP、...UDP 等应用,可以硬件通信 PHP 高性能微服务架构成为现实 常驻内存 目前传统 PHP框架,在处理每个请求之前,都要做一遍加载框架文件、配置操作。...微信图片_20191122205314.png 说到协程,就得先简单说说进程和线程,众所周知进程是很占用资源,为了处理请求大量创建进程肯定是得不偿失。...协程是在单线程基础上实现,它可以最大限度利用 CPU 资源,而不会在等待 I/O 时白白浪费。当然,协程数越多占用内存也就越多,不过这个是可以接受相比进程和线程,占用资源是相对较少。...如有错误之处欢迎指出,是真心想向大家推荐 Swoole! 以上就是php为什么要用swoole?详细内容

99400

ps命令手册

ps -aux提供关于每个进程信息包括进程用户,PID,进程使用CPU百分比,进程使用内存百分比,VSZ(虚拟大小以千字节为单位),RSS(实际内存大小或以1024字节为单位常驻集大小),STAT...大多数命令相比,ps之前连字符是可选,不是强制性。...VSZ 虚拟内存占用大小 单位:kb(killobytes) RSS 实际内存占用大小 单位:kb(killobytes) TTY...常驻内存 1、进程当前使用内存大小,但不包括swap out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m,它只增长10m,VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小...进程使用CPU时间总计,单位1/100秒 n %MEM 进程使用物理内存百分比 o VIRT 进程使用虚拟内存总量,单位kb。

1.2K30

总监看完top详解后做出了这样决定

执行完top命令之后,显示结果如下图,参数较多,我们细细道来 把开头五行截图下来: 2....VIRT:virtual memory usage 虚拟内存 1、进程“需要虚拟内存大小,包括进程使用库、代码、数据等 2、假如进程申请100m内存,但实际只使用了10m,那么它会增长100m...,而不是实际使用量 RES:resident memory usage 常驻内存 1、进程当前使用内存大小,但不包括swap out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m...,它只增长10m,VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小 SHR:shared memory 共享内存 1、除了自身进程共享内存,也包括其他进程共享内存 2、虽然进程只使用了几个共享库函数..., 学会看几个重要参数即可,比如load averages,比如查看占用内存最多进程

1.7K40

80% Linux 都不懂内存问题

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页。...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

1K20

这些内存问题你真的搞懂了吗?

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页。...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

50240

77% Linux 运维都不懂内核问题,这篇全告诉你了

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页。...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

47411

77% Linux 运维都不懂内核问题,这篇全告诉你了

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页。...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

55920

5分钟学会两年经验Linux运维都不懂内核问题

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页。...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

62920

77%Linux运维都不懂内核问题

这篇文章主要是分析了单个进程空间内存布局分配,是从全局视角分析下内核对内存管理; 下面主要从以下方面介绍 Linux 内存管理: 进程内存申请与分配; 内存耗尽之后 OOM; 申请内存都在哪...OOM 关键文件 oom_kill.c,里面介绍了当内存不够时,系统如何选择最应该被杀死进程,选择因素有挺多,除了进程占用内存外,还有进程运行时间,进程优先级,是否为 root 用户进程,子进程个数和占用内存以及用户控制参数...例如只有8g物理内存,然后 redis 虚拟内存占用了24G,物理内存占用3g,如果这时执行 bgsave,子进程和父进程共享物理内存,但是虚拟内存是自己,即子进程会申请24g虚拟内存,这很夸张大于物理内存...第二句后半部分, total-vm:186660kB, anon-rss:9388kB, file-rss:4kB 把一个进程内存使用情况,用三个属性进行了说明,即所有虚拟内存常驻内存匿名映射页以及常驻内存文件映射页...如果不是脏页,则直接释放回收,因为如果是io读缓存,直接释放掉,下次读时,缺页异常,直接到磁盘读回来即可,如果是文件映射页,直接释放掉,下次访问时,也是产生两个缺页异常,一次将文件内容读取进磁盘,另一次进程虚拟内存关联

2K80

系统内存管理:虚拟内存内存分段分页、页表缓存TLB以及Linux内存管理

这样,进程可以以一种透明方式访问内存,无需关心内存实际物理位置。通过虚拟内存机制,操作系统能够更好地管理系统内存资源,提供更高安全性和稳定性。...假设只有20%一级页表项被使用,那么页表占用内存空间只有0.804MB,相比于单级页表4MB,内存节约非常巨大。为什么不分级页表无法实现这样内存节约呢?...虽然每个进程都有独立虚拟内存,但虚拟内存内核地址关联是相同物理内存,这样进程切换到内核态后就可以方便地访问内核空间内存。...虚拟内存使用使得每个进程都可以拥有相同虚拟地址空间,而不用担心与其他进程地址冲突。通过虚拟内存机制,操作系统能够更好地管理系统内存资源,提供更高安全性和稳定性。...Linux内存管理涉及逻辑地址和线性地址转换,将虚拟地址空间分为内核空间和用户空间,方便进程访问内核空间内存正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

51480

linux top命令VIRT,RES,SHR,DATA含义

VIRT:virtual memory usage 虚拟内存 1、进程“需要虚拟内存大小,包括进程使用库、代码、数据等 2、假如进程申请100m内存,但实际只使用了10m,那么它会增长100m,...而不是实际使用量 RES:resident memory usage 常驻内存 1、进程当前使用内存大小,但不包括swap out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m...,它只增长10m,VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小 SHR:shared memory 共享内存 1、除了自身进程共享内存,也包括其他进程共享内存 2、虽然进程只使用了几个共享库函数...进程使用CPU时间总计,单位1/100秒 n %MEM 进程使用物理内存百分比 o VIRT 进程使用虚拟内存总量,单位kb。...VIRT=SWAP+RES p SWAP 进程使用虚拟内存中,被换出大小,单位kb。 q RES 进程使用、未被换出物理内存大小,单位kb。

3.5K20

Linux top命令详解 -- 罗小黑

负值表示高优先级,正值表示低优先级 VIRT — 进程使用虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用、未被换出物理内存大小,单位kb。...,单位1/100秒 COMMAND — 进程名称(命令名/命令行) 详解 VIRT:virtual memory usage 虚拟内存 1、进程“需要虚拟内存大小,包括进程使用库、代码、数据等 2...、假如进程申请100m内存,但实际只使用了10m,那么它会增长100m,而不是实际使用量 RES:resident memory usage 常驻内存 1、进程当前使用内存大小,但不包括swap...out 2、包含其他进程共享 3、如果申请100m内存,实际使用10m,它只增长10m,VIRT相反 4、关于库占用内存情况,它只统计加载库文件所占内存大小 SHR:shared memory...Mem 和 第五行 Swap 信息表示 N – 以 PID 大小顺序排列表示进程列表 P – 以 CPU 占用率大小顺序排列进程列表 M – 以内存占用率大小顺序排列进程列表 h – 显示帮助

2.8K10

一次关于k8s kubectl top 和 contained ps 不一致问题探究

k8s kubectl top命令和contained内部 ps 看到进程内存占用不一致。下午时候,被这个问题问倒了。具体如图 ?...在上 Kubernetes 后半年,业务服务较少,偶尔会阶段性被运维唤醒,问之 “为什么你们服务内存占用这么高,赶紧查”。...再后面,出过几次OOM问题,普遍增加了容器限额 Limits,出现了好几个业务服务是内存小怪兽,因此如果不限制的话,服务过度占用会导致驱逐,因此反馈语也就变成了:“为什么你们服务内存占用这么高,老被...top命令 小TIPS: RSS、VSZ指标相关参数含义: RSS是Resident Set Size(常驻内存大小)缩写,用于表示进程使用了多少内存(RAM中物理内存),RSS不包含已经被换出内存...,然而我们发现用户当前进程占用内存才2.3G 左右。

2.9K41
领券