linux 内存信息_shell查看内存使用情况

linux 内存信息_shell查看内存使用情况pmaplddstace要熟悉的几个调试命令!两个查看内存的文件$cat/proc/<pid>/stat|awk'{print$23/1024}’$cat/proc/<pid>/status|grep-ivmsize其中,关于内存的是VSZ和RSS这两个概念manps看看它们的含义:rss       RSS    resident…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

pmap

ldd

stace

要熟悉的几个调试命令!

两个查看内存的文件

$ cat /proc/<pid>/stat | awk '{print $23 / 1024}'$ cat /proc/<pid>/status | grep -i vmsize

Jetbrains全家桶1年46,售后保障稳定

其中,关于内存的是 VSZ 和 RSS 这两个概念

man ps 看看它们的含义:

rss       RSS    resident set size, the non-swapped physical memory that a task has used (in kiloBytes). (alias rssize, rsz).

vsz       VSZ    virtual memory size of the process in KiB (1024-byte units). Device mappings are currently excluded; this is subject to change. (alias vsize).

观察到系统中的指定进程的地址空间分布情况显示一个目标文件或者链接库文件中的目标文件的各个段的大小。该文件从/proc//maps中获得数据。
命令格式:
pmap -x/-d  pid

 

范例:
[root@localhost security]# pmap -d 4993
4993: -bash
Address Kbytes Mode Offset Device Mapping
08047000 596 r-x– 0000000000000000 003:00006 bash bash的代码段
080dc000 28 rwx– 0000000000094000 003:00006 bash bash的数据段
080e3000 280 rwx– 00000000080e3000 000:00000 [ anon ] bash的堆
4d575000 84 r-x– 0000000000000000 003:00006 ld-2.3.4.so 共享库的代码段
4d58a000 4 r-x– 0000000000015000 003:00006 ld-2.3.4.so 共享库的数据段
4d58b000 4 rwx– 0000000000016000 003:00006 ld-2.3.4.so 共享库的堆
4d58e000 1164 r-x– 0000000000000000 003:00006 libc-2.3.4.so
4d6b1000 4 r-x– 0000000000123000 003:00006 libc-2.3.4.so
4d6b2000 12 rwx– 0000000000124000 003:00006 libc-2.3.4.so
4d6b5000 8 rwx– 000000004d6b5000 000:00000 [ anon ] 匿名物理内存,
4d6de000 8 r-x– 0000000000000000 003:00006 libdl-2.3.4.so
4d6e0000 8 rwx– 0000000000001000 003:00006 libdl-2.3.4.so
4d807000 12 r-x– 0000000000000000 003:00006 libtermcap.so.2.0.8
4d80a000 4 rwx– 0000000000002000 003:00006 libtermcap.so.2.0.8
b7bc2000 176 r-x– 0000000000000000 003:00006 GB18030.so
b7bee000 8 rwx– 000000000002b000 003:00006 GB18030.so
b7bf0000 24 r-xs- 0000000000000000 003:00006 gconv-modules.cache
b7bf6000 1060 r-x– 0000000002197000 003:00006 locale-archive
b7cff000 2048 r-x– 0000000000000000 003:00006 locale-archive
b7eff000 36 r-x– 0000000000000000 003:00006 libnss_files-2.3.4.so
b7f08000 8 rwx– 0000000000008000 003:00006 libnss_files-2.3.4.so
b7f0a000 8 rwx– 00000000b7f0a000 000:00000 [ anon ]
b7f20000 8 rwx– 00000000b7f20000 000:00000 [ anon ]
bff0d000 84 rw— 00000000bff0d000 000:00000 [ stack ]
ffffe000 4 —– 0000000000000000 000:00000 [ anon ]
mapped: 5680K writeable/private: 460K shared: 24K

每列的含义如下:
参数 解释
Address:00378000-0038d000 进程所占的地址空间
Kbytes 该虚拟段的大小
RSS 设备号(主设备:次设备)
Anon 设备的节点号,0表示没有节点与内存相对应
Locked 是否允许swapped
Mode 权限:r=read, w=write, x=execute, s=shared, p=private(copy on write)
Mapping: bash 对应的映像文件名


循环显示进程3066的设备格式的最后1行,间隔2秒,

[root@C44 ~]#  while true; do pmap -d  3066 | tail -1; sleep 2; done

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

内存泄露脚本:

memleak.sh:

#!/bin/sh   

i=1   


until [ ! “$i” -le 10 ]   


do  


        val=$(pidof converter)


        if [ -z “$val” ]; then


        ret=$(pmap -d $val | tail -1)


        fi


        mytime=$(date “+%Y-%m-%d %H:%M:%S”)


        filetime=$(date “+%Y-%m-%d”)


        echo “[$mytime] [$ret]” >> memleak_$filetime.leak


        sleep 5


done

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219237.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ensp的dhcp配置命令(怎么配置dhcp服务器)

    DHCP动态主机配置协议,用来分配IP地址等网络参数。用户上网需要的条件:IP地址,网关,DNS…注意:除非有特殊需求会采用静态配置(员工比较多的企业)路由器、核心交换机、Linux、服务器等上面都可以配置DHCP。DHCP配置实验:dhcp第一种分配IP地址的配置方式:[Huawei]dhcpenable:在路由器上,开启DHCP功能。[Huawei]intg0/0/0ipaddress10.1.1.1进入与设备相连的接口添加物理IP[Huawei]ippool

    2022年4月18日
    99
  • nv12 yuv_yv12格式是什么

    nv12 yuv_yv12格式是什么用videoCapture和IAMStreamConfig拿到的支持的格式列表。发现支持2中图像格式,YV12和NV12。具体是怎么样的内存分布不知道。查了些文档。自己修改了几个图。看出了点端倪YV12先看看http://www.fourcc.org/yuv.php上比较标准的定义:YV12Thisistheformatofchoicef…

    2022年9月25日
    1
  • 哈希算法

    哈希算法

    2021年2月26日
    225
  • C语言中各种类型所占字节_C语言简单数据类型

    C语言中各种类型所占字节_C语言简单数据类型首先必须知道u8,s8等数据类型的定义:typedefsignedchars8;typedefunsignedcharu8;typedefsignedshorts16;typedefunsignedshortu16;typedefsignedints32;typedefunsignedintu32;typedef…

    2022年10月15日
    3
  • pycharm下的调试功能[通俗易懂]

    pycharm下的调试功能[通俗易懂]pycharm下的调试功能

    2022年8月27日
    8
  • java中补码怎么计算,二进制中补码计算简单详实的讲解

    java中补码怎么计算,二进制中补码计算简单详实的讲解本文说明一个基本的问题 补码的问题 需要说明一点补码是对负整数在计算机中存储的一种形式 另一种形式是负数在计算机中可以用符号 负数绝对值的形式表示一个负数 比如 3 存储 但是这种表示的负数有两个零 0 0 最要命的一点是不能做算术运算 比如 10 3 10 3 00001010 13 显然是错的 所以负整数必须以补码存储 负

    2025年9月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号