首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

示例展示虚拟内存和物理内存的分配

通过前两篇文章(系统调用mmap的内核实现分析,Linux下Page Fault的处理流程)我们可以知道,虚拟内存是在我们向操作系统申请内存(比如malloc或mmap)时分配的,而物理内存是在我们使用...当程序输出2时,此时已经执行过mmap操作,对应的第二次pmap命令的输出比第一次多了一个[ anon ]区域(第45行),该区域的起始地址也正好和程序输出2时输出的地址相同,说明该区域就是我们用mmap...当程序输出3时,此时我们已经对p对应的地址空间赋值,也就是使用了虚拟内存的第一个page,对应看pmap命令的第三次输出,此时的[ anon ]区域(第74行)显示物理内存已使用4k。...当程序输出4时,此时我们已经对虚拟内存的第二个page进行了写操作,对应看pmap命令的第四次输出,此时的[ anon ]区域(第103行)显示已使用的物理内存是8k。...再推荐下我们之前推荐过的一篇文章,讲的也是linux内核对进程内存的分配、管理等,相信这次你会更加理解这篇文章。

1.5K10

测者的性能测试手册:谁来接NMT(Native Memory Tracking)内存故障诊断的下一个棒

pmap接下下一个接力棒 pmap提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。主要可以监测进程的地址空间和内存的状态。...pmap的语法 pmap -option pid 其中option如下: -x:显示扩展格式 -d:显示设备格式 -q:不显示头尾行 -V:显示指定版本 用法举例 [root@locaohost~]#pmap...] 00007f787c000000 132 24 24 rw--- [ anon ] 00007f789efce000 16 16 16...r---- libc-2.19.so 00007f7880000000 132 12 12 rw--- [ anon ] 00007f789efd2000...----- [ anon ] 其中: Address: 内存分配地址 Kbytes: 实际分配的内存大小 RSS: 程序实际占用的内存大小 Mapping: 分配该内存的模块的名称

73520

为什么java程序占用那么多内存

查看内存映射 linux服务器提供了查看内存映射关系的命令pmap pmap(选项)(参数) 选项 -x:显示扩展格式; -d:显示设备格式; -q:不显示头尾行; -V:显示指定版本。...设备名 使用pmap -x命令,看到有一个块,大小是16GB,应该就是我设置的内存大小。...同时还有大量的6xxxx大小Kbytes,Mapping为[anon]的块。 我将这些分配内存的块大小都加起来,最终大小是32GB,说明除了我申请的16GB内存,程序又额外申请了16GB内存。...计算分配内存大小的命令: pmap -x pid | grep anon | awk ' { mem = mem + $2;print $0} END {print mem/1024/1024,"GB...经过一番google,找到了这篇文章 red had 6.0发行版说明-13 编译器及工具 Red Hat Enterprise Linux 6 features version 2.11 of glibc

3.1K10

Linux常用命令--系统状态篇

前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题。本文就简单介绍一下这些命令。...查看系统版本相关信息--uname 例如: uname -a Linux ubuntu16.04 4.15.0-34-generic #37~16.04.1-Ubuntu SMP Tue Aug 28...10:44:06 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 从结果可以看到操作系统版本(ubuntu16.04),CPU类型(x86_64)等信息 查看当前环境变量...查看进程的内存使用情况--pmap pmap命令用于查看进程内存相关信息: pmap pid #pid为进程id,可通过ps命令获取 6030: ....8K r-x-- [ anon ] ffffffffff600000 4K r-x-- [ anon ] total 4356K 我们可以根据进程各部分占用空间情况

98850

如何查看Linux系统的状态信息?

前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题。本文就简单介绍一下这些命令。...10:44:06 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 从结果可以看到操作系统版本(ubuntu16.04),CPU类型(x86_64)等信息。...查看进程的内存使用情况--pmap pmap命令用于查看进程内存相关信息: pmap pid #pid为进程id,可通过ps命令获取 6030: ....8K r-x-- [ anon ] ffffffffff600000 4K r-x-- [ anon ] total 4356K 我们可以根据进程各部分占用空间情况...更多内容可参考《Linux中不可错过的信息宝库》。 本文仅介绍这些命令的经典使用,更多使用可通过man 命令查看。

7.3K10

一文掌握 Linux 性能分析之内存篇

我们注意到 free 很小,buff/cache 却很大,这是 Linux 的内存设计决定的,Linux 的想法是内存闲着反正也是闲着,不如拿出来做系统缓存和缓冲区,提高数据读写的速率。...2.3 pmap 这个命令用于查看进程的内存映像信息,能够查看进程在哪些地方用了多少内存。 常用 pmap -x pid 来查看。 ? ?...Mapping:占用内存的文件,[anon] 为已分配的内存,[stack] 为程序堆栈 最后的 total 为统计的总值。...使用: while true; do pmap -x pid | tail -1; sleep 1; done OK,以上工具都是 Linux 自带的,当然还有很多高阶的工具,比如 atop、memstat...参考: Linux下查看内存使用情况的多种方法 http://stor.51cto.com/art/201804/570236.htm

1.8K30

Linux 内核 内存管理】内存映射相关数据结构 ③ ( vm_area_struct 结构体成员分析 | shared 成员 | anon_vma_chain 成员 | anon_vma 成员 )

文章目录 一、vm_area_struct 结构体成员分析 1、shared 成员 2、anon_vma_chain 成员 3、anon_vma 成员 二、vm_area_struct 结构体完整源码...在博客 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb...) 中 , 分析了 vm_start vm_end vm_next vm_prev vm_rb 这 5 个结构体成员作用 ; 在博客 【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct...成员 " 虚拟内存区域 “ vm_area_struct 结构体实例 所 ” 关联 " 的 anon_vma 实例 , 会与 " 父进程 " 的 anon_vma 实例 串联起来 , 组成一个 链表...成员 anon_vma 结构体 用于 组织 " 匿名内存页 " 被 映射到的 " 用户虚拟地址空间 " , anon_vma 成员指向了 anon_vma 结构体实例 ; struct anon_vma

2.3K30
领券