分析命令

2022-08-15  本文已影响0人  superme_

1.内存的指标

Item全称描述类型

USS Unique Set Size进程独占的内存(不包含共享库占用的内存)物理内存

PSS  Proportional Set Size进程独占 + 比例分配共享库占用的内存物理内存

RSS Resident Set Size进程独占 + 共享库占用的内存物理内存

VSS Virtual Set SizeRSS + 未分配的物理内存虚拟内存

2.内存分析工具

2.1 proc/meminfo

查看详细的内存信息

cat proc/meminfo

MemTotal:        1002660 kB

MemFree:          39140 kB

MemAvailable:    609280 kB

Buffers:          20668 kB

Cached:          548972 kB

SwapCached:          856 kB

Active:          453564 kB

Inactive:        314604 kB

Active(anon):      83800 kB

Inactive(anon):  118824 kB

Active(file):    369764 kB

Inactive(file):  195780 kB

Unevictable:        2712 kB

Mlocked:            1044 kB

HighTotal:        504636 kB

HighFree:          2256 kB

LowTotal:        498024 kB

LowFree:          36884 kB

SwapTotal:        751988 kB

SwapFree:        738184 kB

Dirty:                68 kB

Writeback:            0 kB

AnonPages:        200976 kB

Mapped:          259604 kB

Shmem:              2428 kB

Slab:              45996 kB

SReclaimable:      19152 kB

SUnreclaim:        26844 kB

KernelStack:        7656 kB

PageTables:        15224 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:    1253316 kB

Committed_AS:  16471656 kB

VmallocTotal:    499712 kB

VmallocUsed:          0 kB

VmallocChunk:          0 kB

CmaTotal:              0 kB

CmaFree:              0 kB

MemTotal:表示系统内存总数 // 1002660 kB

系统从上电启动到引导完成,内核中需要保留部分内存,剩下的内存总数即为 MemTotal,这个值在系统运行期间保持不变。

MemFree:空闲内存总数//  39140 kB

表示系统中尚未使用的内存, MemTotal - MemFree 表示已经用掉的内存。

MemAvailable:可用内存 //609280 kB

应用程序可用内存数,系统中存在一些已经被使用但是可以回收的内存,比如Buffers、Cached和slab的部分,所以 MemFree 不能代表全部可用的内存,加上可以回收的内存才是系统可用内存的总和。//  39140 kB +  20668 kB + 548972 kB = 608780

比如 MemAvailable ≈ MemFree + Buffers + Cached,这里是内核计算出来的估值。MemFree表示系统层面,MemAvailable泛指应用层面。

Buffers:缓冲区内存

Cached:缓存区内存

2.2 free

# freetotal        used        free      shared    buffersMem: 4033196032 1199968256 2833227776 119869440 56078336-/+ buffers/cache:    1143889920  2889306112Swap: 2016256000 0 2016256000# free -mtotal        used        free      shared    buffersMem: 3846 1144 2701 114 53-/+ buffers/cache:          1091        2755Swap: 1922 0 1922

轻量级的内存查看工具,内容来源于proc/meminfo.

Mem.total = Mem.used + Mem.free,即 3846 = 1144 + 2701;

Mem.used - Mem.buffers = buffers.used,即 1144 - 53 = 1091;

Mem.free + Mem.buffers = buffers.free, 即 2701 + 53 = 2755;

2.3 dumpsys meminfo

输出的结果大致按照4个部分排序,分别Total PSS by process、Total PSS by OOM adjustment、Total PSS by category 和 Total RAM.

Total PSS by process:以进程的PSS从大到小排序

Total PSS by OOM adjustment:分别显示每个类型进程的情况,Native/System/Persistent/Foreground/Visible/Perceptible/A Services/Home/B Services/Cached.

Total PSS by category:以Dalvik/Native/.art mmap/.dex map等划分的各类进程的总PSS情况

Total:显示总内存、可用内存、已使用内存、其他内存.

tb8765ap1_bsp_1g:/ # dumpsys meminfo

Applications Memory Usage (in Kilobytes):

Uptime: 53063974 Realtime: 53063974

Total PSS by process:

    99,553K: com.baidu.launcher (pid 1628 / activities)

    46,172K: system (pid 631)

    36,404K: com.baidu.launcher:remote (pid 423)

    30,586K: com.baidu.input (pid 1835)

    22,029K: com.baidu.duer.thirdapp (pid 1446)

    18,381K: logd (pid 260)

    14,762K: camerahalserver (pid 361)

    13,589K: surfaceflinger (pid 305)

    10,911K: android.process.acore (pid 1549)

    10,244K: android.process.media (pid 1498)

    10,147K: zygote (pid 288)

      9,986K: com.baidu.duer.thirdapp:ota (pid 1981)

      8,502K: com.baidu.duer.ota:ota (pid 2062)

      7,983K: cameraserver (pid 344)

      7,426K: visionmanagerserver (pid 387)

      7,246K: android.hardware.audio@2.0-service-mediatek (pid 291)

      6,850K: com.baidu.duer.ota (pid 1424)

      6,727K: media.codec (pid 359)

      6,507K: mediaserver (pid 351)

      6,134K: android.hardware.graphics.composer@2.1-service (pid 298)

      6,035K: com.baidu.duershow.statistic (pid 1416)

      6,018K: com.mediatek.engineermode (pid 1766)

      5,768K: merged_hal_service (pid 300)

      4,809K: com.baidu.oases (pid 2448)

      4,723K: com.baidu.mesh.provisioner (pid 1477)

      4,706K: audioserver (pid 342)

      4,620K: vulture.watchdog (pid 1461)

      4,203K: com.mediatek.bluetooth.dtt (pid 2477)

      4,060K: com.mediatek.providers.drm (pid 2507)

      3,543K: com.mediatek.thermalmanager (pid 2556)

      3,540K: wpa_supplicant (pid 2712)

      3,416K: media.extractor (pid 350)

      3,349K: drmserver (pid 345)

      2,894K: /init (pid 1)

      1,873K: android.hardware.wifi@1.0-service (pid 299)

      1,702K: android.hardware.drm@1.0-service.widevine (pid 296)

      1,688K: mnld (pid 340)

      1,622K: vold (pid 277)

      1,543K: netd (pid 287)

      1,503K: lmkd (pid 304)

      1,335K: mtk_advcamserver (pid 355)

      1,324K: keystore (pid 348)

      1,225K: vendor.mediatek.hardware.pq@2.0-service (pid 371)

      1,190K: installd (pid 347)

      1,180K: ueventd (pid 214)

      1,160K: hwservicemanager (pid 262)

      1,124K: wificond (pid 358)

      1,113K: android.hardware.sensors@1.0-service-mediatek (pid 360)

      1,079K: adbd (pid 1346)

      1,056K: android.hardware.keymaster@3.0-service (pid 276)

      1,037K: ged_srv (pid 1361)

        918K: mediadrmserver (pid 349)

        877K: gatekeeperd (pid 373)

        873K: vendor.mediatek.hardware.dfps@1.0-service (pid 301)

        851K: thermalserviced (pid 306)

        802K: storaged (pid 357)

        780K: android.hardware.broadcastradio@1.1-service (pid 293)

        763K: healthd (pid 302)

        762K: aee_aedv (pid 684)

        757K: android.hardware.bluetooth@1.0-service-mediatek (pid 292)

        720K: android.hardware.gatekeeper@1.0-service (pid 297)

        718K: android.hardware.cas@1.0-service (pid 294)

        682K: aee_aed (pid 534)

        680K: ip6tables-restore (pid 315)

        674K: iptables-restore (pid 314)

        674K: netdagent (pid 377)

        647K: fuelgauged (pid 336)

        637K: android.hardware.configstore@1.0-service (pid 295)

        627K: netdiag (pid 356)

        619K: servicemanager (pid 261)

        590K: mobile_log_d (pid 353)

        573K: android.hidl.allocator@1.0-service (pid 290)

        573K: hardcoder_server (pid 339)

        571K: program_binary_service (pid 374)

        567K: dumpsys (pid 3739)

        560K: vndservicemanager (pid 263)

        548K: sh (pid 2799)

        541K: sh (pid 6705)

        538K: sh (pid 333)

        530K: thermald (pid 346)

        525K: tombstoned (pid 376)

        523K: batterywarning (pid 343)

        518K: logcat (pid 337)

        506K: ipsec_mon (pid 368)

        495K: met_log_d (pid 352)

        493K: asguard (pid 726)

        477K: thermalloadalgod (pid 335)

        460K: oasesd (pid 727)

        449K: klogd (pid 338)

        445K: duershow_localservice (pid 303)

        442K: sysenv_daemon (pid 370)

        421K: wifi2agps (pid 372)

        410K: thermal (pid 365)

        404K: wmt_launcher (pid 313)

Total PSS by OOM adjustment:

    171,549K: Native

        18,381K: logd (pid 260)

        14,762K: camerahalserver (pid 361)

        13,589K: surfaceflinger (pid 305)

        10,147K: zygote (pid 288)

          7,983K: cameraserver (pid 344)

          7,426K: visionmanagerserver (pid 387)

          7,246K: android.hardware.audio@2.0-service-mediatek (pid 291)

          6,727K: media.codec (pid 359)

          6,507K: mediaserver (pid 351)

          6,134K: android.hardware.graphics.composer@2.1-service (pid 298)

          5,768K: merged_hal_service (pid 300)

          4,706K: audioserver (pid 342)

          3,540K: wpa_supplicant (pid 2712)

          3,416K: media.extractor (pid 350)

          3,349K: drmserver (pid 345)

          2,894K: /init (pid 1)

          1,873K: android.hardware.wifi@1.0-service (pid 299)

          1,702K: android.hardware.drm@1.0-service.widevine (pid 296)

          1,688K: mnld (pid 340)

          1,622K: vold (pid 277)

          1,543K: netd (pid 287)

          1,503K: lmkd (pid 304)

          1,335K: mtk_advcamserver (pid 355)

          1,324K: keystore (pid 348)

          1,225K: vendor.mediatek.hardware.pq@2.0-service (pid 371)

          1,190K: installd (pid 347)

          1,180K: ueventd (pid 214)

          1,160K: hwservicemanager (pid 262)

          1,124K: wificond (pid 358)

          1,113K: android.hardware.sensors@1.0-service-mediatek (pid 360)

          1,079K: adbd (pid 1346)

          1,056K: android.hardware.keymaster@3.0-service (pid 276)

          1,037K: ged_srv (pid 1361)

            918K: mediadrmserver (pid 349)

            877K: gatekeeperd (pid 373)

            873K: vendor.mediatek.hardware.dfps@1.0-service (pid 301)

            851K: thermalserviced (pid 306)

            802K: storaged (pid 357)

            780K: android.hardware.broadcastradio@1.1-service (pid 293)

            763K: healthd (pid 302)

            762K: aee_aedv (pid 684)

            757K: android.hardware.bluetooth@1.0-service-mediatek (pid 292)

            720K: android.hardware.gatekeeper@1.0-service (pid 297)

            718K: android.hardware.cas@1.0-service (pid 294)

            682K: aee_aed (pid 534)

            680K: ip6tables-restore (pid 315)

            674K: iptables-restore (pid 314)

            674K: netdagent (pid 377)

            647K: fuelgauged (pid 336)

            637K: android.hardware.configstore@1.0-service (pid 295)

            627K: netdiag (pid 356)

            619K: servicemanager (pid 261)

            590K: mobile_log_d (pid 353)

            573K: android.hidl.allocator@1.0-service (pid 290)

            573K: hardcoder_server (pid 339)

            571K: program_binary_service (pid 374)

            567K: dumpsys (pid 3739)

            560K: vndservicemanager (pid 263)

            548K: sh (pid 2799)

            541K: sh (pid 6705)

            538K: sh (pid 333)

            530K: thermald (pid 346)

            525K: tombstoned (pid 376)

            523K: batterywarning (pid 343)

            518K: logcat (pid 337)

            506K: ipsec_mon (pid 368)

            495K: met_log_d (pid 352)

            493K: asguard (pid 726)

            477K: thermalloadalgod (pid 335)

            460K: oasesd (pid 727)

            449K: klogd (pid 338)

            445K: duershow_localservice (pid 303)

            442K: sysenv_daemon (pid 370)

            421K: wifi2agps (pid 372)

            410K: thermal (pid 365)

            404K: wmt_launcher (pid 313)

    46,172K: System

        46,172K: system (pid 631)

    198,702K: Persistent

        99,553K: com.baidu.launcher (pid 1628 / activities)

        36,404K: com.baidu.launcher:remote (pid 423)

        22,029K: com.baidu.duer.thirdapp (pid 1446)

          9,986K: com.baidu.duer.thirdapp:ota (pid 1981)

          8,502K: com.baidu.duer.ota:ota (pid 2062)

          6,850K: com.baidu.duer.ota (pid 1424)

          6,035K: com.baidu.duershow.statistic (pid 1416)

          4,723K: com.baidu.mesh.provisioner (pid 1477)

          4,620K: vulture.watchdog (pid 1461)

    74,374K: Cached

        30,586K: com.baidu.input (pid 1835)

        10,911K: android.process.acore (pid 1549)

        10,244K: android.process.media (pid 1498)

          6,018K: com.mediatek.engineermode (pid 1766)

          4,809K: com.baidu.oases (pid 2448)

          4,203K: com.mediatek.bluetooth.dtt (pid 2477)

          4,060K: com.mediatek.providers.drm (pid 2507)

          3,543K: com.mediatek.thermalmanager (pid 2556)

Total PSS by category:

    107,935K: .so mmap

    102,685K: .dex mmap

    81,292K: Native

    35,131K: .apk mmap

    33,565K: Unknown

    30,561K: Dalvik

    18,331K: .art mmap

    16,827K: Other mmap

    15,580K: .oat mmap

    10,677K: GL mtrack

    10,372K: Dalvik Other

    10,131K: EGL mtrack

      2,664K: Stack

      1,800K: Ashmem

        574K: Other dev

        268K: .ttf mmap

          0K: Cursor

          0K: Gfx dev

          0K: .jar mmap

          0K: Other mtrack

Total RAM: 1,002,660K (status moderate)

Free RAM:  441,070K (  74,374K cached pss +  330,464K cached kernel +    36,232K free)

Used RAM:  492,779K (  416,423K used pss +    76,356K kernel)

Lost RAM:    71,241K

    ZRAM:    5,032K physical used for    13,364K in swap (  751,988K total swap)

  Tuning: 128 (large 256), oom  184,320K, restore limit    61,440K (low-ram)

dumpsys meminfo <pid> // 输出指定pid的某一进程

dumpsys meminfo --package <packagename> // 输出指定包名的进程,可能包含多个进程

2.4 procrank

获取所有进程的内存使用的排行榜,排行是以Pss的大小而排序.

# procrankPID      Vss      Rss      Pss      Uss  cmdline4694715244K199568K93953K76772K  system_server6284774604K184272K79868K63260K  com.android.systemui3781581340K116848K63536K35956K  zygote10545048780K130504K33086K20376K  com.android.launcher33774239348K130300K28338K8012K  zygote646871333924K54604K25609K5504K  /system/bin/webview_zygote327494338336K108900K25539K16612K  com.android.phone26375200K27620K18690K16088K  /vendor/bin/hw/android.hardware.neuralnetworks@1.0-service-armnn6064330764K91380K15649K9656K  com.android.inputmethod.latin269312884K27868K13869K10336K  /system/bin/surfaceflinger11704321764K92900K13701K6336K  android.process.media13024323936K84736K13004K8064K  com.android.email25553284K21308K10199K6972K  /vendor/bin/hw/android.hardware.camera.provider@2.4-service11404317440K82832K9876K3808K  android.rockchip.update.service18504318536K75692K8379K4096K  com.android.calendar12844315752K77148K8185K3796K  com.android.providers.calendar38773924K18420K7686K5064K  /system/bin/mediaserver11904315400K71948K7137K2800K  com.android.quicksearchbox18764315996K74824K6986K2668K  com.android.mtp39131860K12104K6845K5644K  media.codec10214315960K70452K6835K3020K  com.android.printspooler10114314012K69076K6658K2864K  com.cghs.stresstest37943520K12616K6621K4920K  /system/bin/audioserver3852164032K18588K6493K4324K  media.extractor14074315816K70584K6403K2296K  android.ext.services11144314788K69144K5972K2240K  com.android.keychain10694313648K67308K5792K2156K  com.android.smspush25316256K7892K4116K2808K  /vendor/bin/hw/android.hardware.audio@2.0-service38024908K11124K3948K2544K  /system/bin/cameraserver3862128240K11312K3220K2156K  media.metrics26133120K7556K3022K2432K  /vendor/bin/hw/android.hardware.graphics.composer@2.1-service23219996K5304K2915K2820K  /system/bin/logd38118964K9884K2836K1652K  /system/bin/drmserver26614404K6140K2798K2604K  /vendor/bin/hw/android.hardware.wifi@1.0-service25812756K6560K2463K1904K  /vendor/bin/hw/android.hardware.drm@1.0-service24555064K7468K2421K2024K  /system/bin/vold38831004K6548K2225K1980K  /system/bin/netd25911140K5328K1985K1588K  /vendor/bin/hw/android.hardware.drm@1.0-service.widevine38319280K6492K1811K1348K  /system/bin/keystore38219676K5636K1809K1616K  /system/bin/installd111968K2436K1714K1092K  /init23414408K5576K1653K1352K  /system/bin/hwservicemanager184112932K1700K1511K1504K  /system/bin/adbd39015096K5632K1507K1312K  /system/bin/wificond26516888K5044K1439K1164K  /vendor/bin/hw/android.hardware.sensors@1.0-service24414848K5904K1422K928K  /vendor/bin/hw/android.hardware.keymaster@3.0-service38410688K5308K1297K804K  /system/bin/mediadrmserver26017480K5224K1261K960K  /vendor/bin/hw/android.hardware.graphics.allocator@2.0-service39315560K5612K1245K1000K  /system/bin/gatekeeperd4039468K3296K1244K1188K  /system/bin/ip6tables-restore4029452K3200K1165K1116K  /system/bin/iptables-restore2076080K1768K1158K568K  /sbin/ueventd203816940K3304K1145K1088K  procrank27013924K5000K1142K944K  /system/bin/thermalserviced38915988K4292K1090K960K  /system/bin/storaged25412244K4212K1042K868K  /vendor/bin/hw/android.hardware.bluetooth@1.0-service2569048K4108K1018K596K  /vendor/bin/hw/android.hardware.cas@1.0-service25715372K4372K1017K828K  /vendor/bin/hw/android.hardware.configstore@1.0-service26713464K4504K993K860K  /system/bin/healthd26212136K4168K896K676K  /vendor/bin/hw/android.hardware.light@2.0-service26412140K4168K870K668K  /vendor/bin/hw/android.hardware.power@1.0-service23310444K3428K848K760K  /system/bin/servicemanager23510244K3256K805K696K  /vendor/bin/vndservicemanager25212088K4088K767K636K  /system/bin/hw/android.hidl.allocator@1.0-service19838932K3008K736K548K  /system/bin/sh2748932K2944K727K540K  /system/bin/sh2689180K3072K681K624K  /system/bin/lmkd3959028K3004K662K600K  /system/bin/tombstoned                          ------  ------  ------601566K385996K  TOTAL RAM:3938668K total,2765940K free,54772K buffers,683920K cached,117060K shmem,119748K slab

2.5 showmap

该命令的输出每一行代表一个虚拟地址区域(vm_area),内容基本和proc/pid/maps基本一致.

# showmap -a 1302startendvirtualsharedsharedprivateprivateaddr    addr    size      RSS      PSS    clean    dirty    clean    dirty    swap  swapPSSobject    -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------------------------------0b65b0000b65c000400000000[anon:thread stack guard page]

start addr: 虚拟地址的起始地址

end addr: 虚拟地址的结束地址

virutal size: 占用虚拟内存大小

RSS:进程独占内存 + 共享库占用内存的物理内存

PSS:进程独占内存 + 比例分配共享库占用的物理内存

shared:共享数据

private:私有数据

2.6 vmstat

vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----

r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa

1  0  13284  47120  20668 542996    1    1    4    9    0  101  1  1 98  0

2.7 ps

ps -A -eo USER,MAJFL,MINFL,PID,RSS,CPU,TIME 其中的 MAJFL,MINFL分别是磁盘交换/swap交换次数

上一篇下一篇

猜你喜欢

热点阅读