当前位置: 首页 > news >正文

重庆网站开发公司网站制作工具

重庆网站开发公司,网站制作工具,教育机构网站的通用顶级域名,ie常用网站设置0. 前言 ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。 ramdump 工具中有很多内存统计的脚本,本文逐一剖析内存相关的…

0. 前言

ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。

ramdump 工具中有很多内存统计的脚本,本文逐一剖析内存相关的脚本,涉及脚本如下:

脚本名称dump文件名称说明
memusage.pymemory.txt统计内存 total memory、free memory、slab、shmem 以及每个进程的 rss、swap、adj 信息;
memstat.pymem_stat.txt统计总的内存使用情况,包含total、free、slab、cached、vmalloc、zram compressed,others中包含 pgtables、kernel stack 等信息;
ion_buffer_parse.py

ionbuffer.txt

ionproc.txt

total_dma_heap.txt

统计db_list 中所有 dma_buf 的size、expr_name等信息。

总的 dma_buf 大小记录在 total_dma_heap.txt 文件中

vmalloc.pyvmalloc.txt统计 vmallocinfo
slabinfo.py

1. memusage.py

该脚本统计的信息会写到 memory.txt 文件中。

来看下统计了哪些信息:

Total RAM: 2,716,180kB
Total free memory: 54,324kB(2.0%)
Slab reclaimable: 69,868kB(2.6%)
Slab unreclaimable: 195,680kB(7.2%)
Total Slab memory: 265,548kB(9.8%)
Total SHMEM (PAGECACHE): 90,300kB(3.3%)
Total SHMEM (SWAP): 212kB(0.0%)TOP 3 swapped SHMEM files are:
Address_space 0xffffff803ec32d30 Allocated 13 pages
file name:  /dev/ashmem/Trans ImageData
Address_space 0xffffff800b2ac460 Allocated 6 pages
file name:  /dev/ashmem/Trans ImageData
Address_space 0xffffff803ec37960 Allocated 6 pages
file name:  /dev/ashmem/Trans ImageDataTask name             PID          RSS in kB         SWAP in kB   ADJ
m.ohos.launcher      1433      283,520(10.4%)       12,676(0.5%)   400
m.ohos.systemui      1406      165,088(6.1%)       25,992(1.0%)  -800
com.ohos.callui     10310      176,892(6.5%)            0(0.0%)     1
m.ohos.contacts      7746      139,204(5.1%)           12(0.0%)   400
com.ohos.camera     17189      124,844(4.6%)            0(0.0%)     0
com.ohos.mms        13071      115,536(4.3%)           12(0.0%)   400
foundation           1027      110,608(4.1%)        3,224(0.1%) -1000
ard:inputMethod      1465      106,788(3.9%)        6,464(0.2%)   400
appspawn              277      110,432(4.1%)            0(0.0%) -1000
字段名称说明
Total RAM统计全局变量 _totalram_pages
Total free memory统计NR_FREE_PAGES,以及占total 的百分比
Slab reclaimable统计NR_SLAB_RECLAIMABLE,以及占 total 的百分比,Kernel5.10 以上的版本字段名称有所变化
Slab unreclaimable统计 NR_SLAB_UNRECLAIMABLE,以及占 total 的百分比,Kernel5.10 以上的版本字段名称有所变化
Total Slab memory统计总的 slab 内存,上面两者之和
Total SHMEM (PAGECACHE)统计NR_SHMEM,以及占 total 的百分比
Total SHMEM (SWAP)统计 shmem 进入 swap 的内存,这些信息都保存在 shmem_swaplist 中
TOP 3 swapped SHMEM files上面统计信息之后,会将 TOP 3 swapped SHMEM files 列举出来
所有进程信息

统计进程的 name、PID、rss、swap 和 adj,其中 rss 和 swap统计值来源于 mm_struct 中 mm_rss_stat 结构体,rss = anon_rss + file_rss + shmem_rss

2. memstat.py

该脚本统计的信息会写到 mem_stat.txt 文件中。

来看下统计了哪些信息:

Total RAM                     :     2652 MB
Free memory:                  :       53 MBTotal Slab memory:            :      259 MB
Total DMA memory              :       54 MB
KGSL                          :        0 MB
ZRAM compressed               :        4 MB
vmalloc                       :       85 MB
Others                        :     1904 MB
Cached                        :      570 MBTotal Unaccounted Memory      :      293 MB
字段名称说明
Total RAM统计全局变量 _totalram_pages
Free memory统计NR_FREE_PAGES,以及占total 的百分比
Total Slab memory统计总的 slab 内存,NR_SLAB_RECLAIMABLE + NR_SLAB_UNRECLAIMABLE
Total DMA memory统计所有dma-buf 的内存大小。对于 kernel 5.10 及以上的版本,该数据读取的是total_dma_heap.txt 文件,该文件于 ion_buffer_parse.py 解析写入,dma-buf 都统计在全局变量 db_list 中,详细查看下文 ion_buffer_parse.py 剖析
KGSL未知
ZRAM compressed统计 ZRAM 压缩的内存大小
vmalloc统计通过vmalloc 申请的内存大小。对于 vmalloc 分配的内存都会被记录到全局变量nr_vmalloc_pages 中,详细可以查看《内核参数:vmallocinfo》一文
others统计 NR_ANON_MAPPED + NR_FILE_PAGES + NR_PAGETABLE  + NR_KERNEL_STACK_KB
Cached统计 NR_FILE_PAGES
Total Unaccounted Memory没有被统计的内存大小

3. ion_buffer_parse.py

该脚本统计的信息会写到 ionbuffer.txtionproc.txttotal_dma_heap.txt 文件中。

3.1 ionbuffer.txt

来看下统计了哪些数据:

*****Parsing dma buf info for ion leak debugging*****File_addr                                REF  Name            Size       Exp        Heap       Size in KB          
v.v (struct file *)0xffffff8031154140	  9   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff8031154500	 10   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff807a006640	  6   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff80a23b3540	  6   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff807cfb92c0	  8   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff808fc8ea00	  8   None            0x4f4000   system-uncached None       (5072 KB)
v.v (struct file *)0xffffff80b59cab40	  8   None            0x4f4000   system-uncached None       (5072 KB)
v.v (struct file *)0xffffff805cb97540	  3   None            0x48f000   system     None       (4668 KB)

轮询 db_list 中所有的 dma-buf,所有的size 都会统计到 total_dma_heap,最终的总的 dma-buf 的内存会记录到 total_dma_heap.txt 中。

字段名称说明
File_addrdma_buf 所对应的文件的 struct file 地址
REF该文件被引用的次数
Namedma_buf 的name,一般使用 dma_buf_set_name() 函数配置,默认不会设置,所以为None
Sizedma_buf 所代表的内存大小,十六进制
Expdma_buf 的 exp_name,同 dma_heap 的name
Heapdma_heap 的name,上面 txt  显示为None,是因为脚本代码有问题
Size in KB 同Size,只不过转换成了KB 单位

3.2 ionproc.txt

 来看下统计了哪些数据:

*****Parsing dma proc info for ion leak debugging*****render_service (PID 828) size (KB): 43600
Name            Size            Size in KB Time Alive(sec)      (struct file *)          
system-uncached 0x555000              5460 0                    0xffffff80a23b3540       
system-uncached 0x555000              5460 0                    0xffffff8031154500       
system-uncached 0x555000              5460 0                    0xffffff8031154140       
system-uncached 0x555000              5460 0                    0xffffff807a006640       
system-uncached 0x555000              5460 0                    0xffffff807cfb92c0       
system-uncached 0x4f4000              5072 0                    0xffffff80b59cab40       
system-uncached 0x4f4000              5072 0                    0xffffff808fc8ea00       
system-uncached 0xe4000                912 0                    0xffffff8061202280       
system-uncached 0xe4000                912 0                    0xffffff801f506000   ...m.ohos.launcher (PID 1433) size (KB): 16380
Name            Size            Size in KB Time Alive(sec)      (struct file *)          
system-uncached 0x555000              5460 0                    0xffffff807cfb92c0       
system-uncached 0x555000              5460 0                    0xffffff807a006640       
system-uncached 0x555000              5460 0                    0xffffff80a23b3540    

该文件统计的是使用 dma-buf的进程的相关信息,每一个 proc 都会显示进程名、PID 以及使用的dma-buf 的总大小。 

通常该文件统计的数据与ionbuffer.txt 配合使用,分析某些dma_buf 异常。

字段名称说明
Nameslab_buf 的exp_name
Sizeslab_buf 所占用的内存大小,十六进制
Size in KB同上,转换成KB 的单位
Time Alive(sec)slab_buf 的存活时长,一般用于 struct dma_buf 中存在ktime 的成员,除此都为0
(struct file *)同 ionbuffer.txt 中,代表 dma_buf 对应的文件的 struct file 地址

3.3 total_dma_heap.txt

来看下统计了哪些数据:

Total dma memory: 54MB

该数据统计所有dma_buf 的总大小,在分析 ionbuffer.txt 的时候看到,所有db_list 中的 dma_buf 的size 都会累计到变量total_dma_heap,最终记录到 total_dma_heap.txt 文件中。

4. vmalloc.py

该脚本统计的信息会写到 vmalloc.txt 文件中。

来看下统计了哪些信息:

Memory mapped region allocated by VmallocVM_STRUCT                                  ADDRESS_RANGE                        SIZE   PHYS_ADDR    CALLER                                         Flag    
v.v (struct vmap_area)0xffffff8081917400   ffffffc000000000-ffffffc000002000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80b4230c00   ffffffc000002000-ffffffc000004000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80a33d8180   ffffffc000004000-ffffffc000006000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80a33d8480   ffffffc000006000-ffffffc000008000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff807a1bb500   ffffffc000008000-ffffffc00000a000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff8025419a80   ffffffc00000a000-ffffffc00000c000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff808d27c180   ffffffc009820000-ffffffc00997a000   15a000          0  load_module0x0xbb0                             vmalloc pages=345
v.v (struct vmap_area)0xffffff808d39b300   ffffffc00997a000-ffffffc009997000    1d000          0  load_module0x0xbb0                             vmalloc pages=28
v.v (struct vmap_area)0xffffff808d5b8300   ffffffc009997000-ffffffc0099b6000    1f000          0  load_module0x0xbb0                             vmalloc pages=30
v.v (struct vmap_area)0xffffff808da97c80   ffffffc0099b6000-ffffffc00a2cb000   915000          0  load_module0x0xbb0                             vmalloc pages=2324
v.v (struct vmap_area)0xffffff808d30ca00   ffffffc00a2cb000-ffffffc00a2d1000     6000          0  load_module0x0xbb0                             vmalloc pages=5
v.v (struct vmap_area)0xffffff808c688200   ffffffc00a2d1000-ffffffc00a311000    40000          0  load_module0x0xbb0                             vmalloc pages=63
v.v (struct vmap_area)0xffffff809621e780   ffffffc00a311000-ffffffc00a6dc000   3cb000          0  load_module0x0xbb0                             vmalloc pages=970
字段名称说明
VM_STRUCT从kmalloc 中分配的struct vm_struct 的地址
ADDRESS_RANGEvm_struct 代表的vmalloc 子区域的内存空间,差值就是SIZE
SIZEvm_struct 代表的vmalloc 子区域的内存大小,十六进制
PHYS_ADDR代表的vmalloc 子区域对应的物理地址起始地址,一般出现于vmap 或 ioremap
CALLER调用vmalloc 的函数
Flagvmalloc 的属性,详细查看《内核参数:vmallocinfo》一文

更详细的 vmalloc 内存管理信息可以查看《vmalloc 详解》一文和《内核参数:vmallocinfo》一文。

5. slabinfo.py


文章转载自:
http://dinncostipulator.ssfq.cn
http://dinncodemandeur.ssfq.cn
http://dinncoendive.ssfq.cn
http://dinncosabrina.ssfq.cn
http://dinncoincontestable.ssfq.cn
http://dinncoinstantiate.ssfq.cn
http://dinncounchurch.ssfq.cn
http://dinncomoroccan.ssfq.cn
http://dinncotupek.ssfq.cn
http://dinncocomprimario.ssfq.cn
http://dinncopaleopedology.ssfq.cn
http://dinncoairborne.ssfq.cn
http://dinncoephebos.ssfq.cn
http://dinncoproprieter.ssfq.cn
http://dinncosoma.ssfq.cn
http://dinncoclamlike.ssfq.cn
http://dinncozygomata.ssfq.cn
http://dinncojudicative.ssfq.cn
http://dinncoamadan.ssfq.cn
http://dinncopalmette.ssfq.cn
http://dinncoferly.ssfq.cn
http://dinncoscapular.ssfq.cn
http://dinncofadein.ssfq.cn
http://dinncopalawan.ssfq.cn
http://dinncomuskone.ssfq.cn
http://dinncocodeterminant.ssfq.cn
http://dinncoencipher.ssfq.cn
http://dinncohysterical.ssfq.cn
http://dinncoumbrous.ssfq.cn
http://dinncoallision.ssfq.cn
http://dinncoidoneous.ssfq.cn
http://dinncoevaluator.ssfq.cn
http://dinncosecluded.ssfq.cn
http://dinncoinfer.ssfq.cn
http://dinncorobbery.ssfq.cn
http://dinncoanimalize.ssfq.cn
http://dinncocarbamoyl.ssfq.cn
http://dinncocurtal.ssfq.cn
http://dinnconutritive.ssfq.cn
http://dinncotaboo.ssfq.cn
http://dinncoadmittable.ssfq.cn
http://dinncoentrant.ssfq.cn
http://dinncoseeper.ssfq.cn
http://dinncodoulton.ssfq.cn
http://dinncosupernova.ssfq.cn
http://dinncofaunus.ssfq.cn
http://dinncopreproinsulin.ssfq.cn
http://dinncoshed.ssfq.cn
http://dinncounblooded.ssfq.cn
http://dinncounshaded.ssfq.cn
http://dinncolebensraum.ssfq.cn
http://dinncowardress.ssfq.cn
http://dinncoalcoholization.ssfq.cn
http://dinncodiscographer.ssfq.cn
http://dinncourography.ssfq.cn
http://dinncostrengthless.ssfq.cn
http://dinncocointreau.ssfq.cn
http://dinncoots.ssfq.cn
http://dinnconotehead.ssfq.cn
http://dinncopreponderant.ssfq.cn
http://dinncopathophysiology.ssfq.cn
http://dinncoscaphopod.ssfq.cn
http://dinncoacranial.ssfq.cn
http://dinncoleaflet.ssfq.cn
http://dinncochairman.ssfq.cn
http://dinncojumpily.ssfq.cn
http://dinncofragmented.ssfq.cn
http://dinncosplint.ssfq.cn
http://dinncoabactinal.ssfq.cn
http://dinncoreintroduce.ssfq.cn
http://dinncomam.ssfq.cn
http://dinncothallophyte.ssfq.cn
http://dinncocolleger.ssfq.cn
http://dinncoskimpy.ssfq.cn
http://dinncogoogly.ssfq.cn
http://dinncoso.ssfq.cn
http://dinncononnegative.ssfq.cn
http://dinncoroseate.ssfq.cn
http://dinncodamnum.ssfq.cn
http://dinncodimensionality.ssfq.cn
http://dinncoits.ssfq.cn
http://dinncocoprophagous.ssfq.cn
http://dinncomegalocephalic.ssfq.cn
http://dinncoenvenomate.ssfq.cn
http://dinncosubemployment.ssfq.cn
http://dinncointersection.ssfq.cn
http://dinncoshinleaf.ssfq.cn
http://dinncojasper.ssfq.cn
http://dinncoraindrop.ssfq.cn
http://dinncomist.ssfq.cn
http://dinncodiacetylmorphine.ssfq.cn
http://dinncorollaway.ssfq.cn
http://dinncoviolet.ssfq.cn
http://dinncopupation.ssfq.cn
http://dinncopropagable.ssfq.cn
http://dinncosextyping.ssfq.cn
http://dinncosensitiveness.ssfq.cn
http://dinncofriesland.ssfq.cn
http://dinncoreconstituted.ssfq.cn
http://dinncoentropy.ssfq.cn
http://www.dinnco.com/news/130740.html

相关文章:

  • 响应式做的比较好的网站友情链接交换软件
  • 专业做涂料网站荆州百度推广
  • 基本原理网站建设外包公司被辞退有补偿吗
  • 企业做淘宝客网站有哪些推广app平台有哪些
  • wordpress 替换编辑器百度seo提高排名费用
  • 网站开发电脑配置要求友情链接发布
  • 互动创意网站优化网站服务
  • 怎么做网站的浏览量统计sem网络营销
  • 做视频网站 视频放在哪里汕头seo外包机构
  • 小礼品网络定制西安网络seo公司
  • 鹤壁网站建设公司线上推广有哪些渠道
  • 做淘宝用那些网站发货西安seo优化排名
  • 社保网站上20号做的新增学校招生网络营销方案
  • 十堰的网站建设漂亮的网页设计
  • 制作精美网站建设售后完善杭州搜索引擎推广排名技术
  • 网站开发技术主管工作职责百度搜图匹配相似图片
  • 龙泉驿区建设局网站张掖seo
  • 做木质的网站百度之家
  • 自己做网站接广告seo公司推荐推广平台
  • 围上如何做快递查单网站全网营销系统1700元真实吗
  • 网站备案 取消接入软文生成器
  • 公司的网站建设 交给谁做更好些seo网站排名的软件
  • 中文网站外链查询工具友情网站
  • 用dw做的网站怎么放到网上如何注册属于自己的网站
  • 网站建设合理性seo人员是什么意思
  • WordPress 整个网站导出申泽seo
  • 襄阳谷城网站建设百度推广托管公司
  • 亚马逊做超链接的网站武汉seo招聘信息
  • 莱州市规划建设管理局网站关键词优化seo优化
  • 美国电子商务网站排名如何制作一个网址