首页 > 系统相关 >Linux内存占用分析的几个方法

Linux内存占用分析的几个方法

时间:2024-05-27 16:33:50浏览次数:22  
标签:kB 0.0 占用 内存大小 free 命令 内存 Linux

内存管理是一个非常重要的任务,Linux内存占用分析的方法不只以上几种,用户可以根据需要选择合适的方法进行使用。对于使用Linux进行开发和运维的人员,熟练使用这些命令和方法能够帮助他们更好的管理系统资源,提高系统性能和稳定性。

1. free命令

free命令可以查看Linux系统的内存使用情况,具体包括内存总量、已使用内存、空闲内存以及 Swap 分区情况。在终端输入 free 命令后会显示以下输出结果:

$ free

              total        used        free      shared  buff/cache   available
Mem:        7878648     4013264     2513048      104044     1352336     3322300
Swap:       8191996         148     8191848

其中,total 行显示系统总内存大小,used 行显示已使用的内存大小,free 行显示空闲的内存大小,buff/cache 行显示的是系统缓存和缓存中的空闲内存,available 行显示可用的内存大小,它并不包括实际没有被内核分配的内存。

2. top命令

top命令是Linux中一个非常常用的命令,它可以用来实时查看Linux系统的进程信息以及系统性能数据等。其中也包括内存占用情况。在终端输入 top 命令后,会显示以下输出结果:

$ top

top - 08:02:44 up  2:57,  1 user,  load average: 0.00, 0.01, 0.03
Tasks: 195 total,   1 running, 193 sleeping,   0 stopped,   1 zombie
%Cpu(s):  1.7 us,  0.7 sy,  0.0 ni, 97.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7878648 total,  2988332 free,  3556336 used,  1333980 buff/cache
KiB Swap:  8191996 total,  8191996 free,        0 used.  3829644 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                          
 2236 root      20   0 1951812 175100  39024 S   0.3  2.2   6:23.08 Xorg                                                                             
   89 root      20   0       0      0      0 S   0.0  0.0   0:00.03 kacpid                                                                            
   91 root      20   0       0      0      0 S   0.0  0.0   0:00.07 kacpi_notify                                                                      
  384 root      20   0       0      0      0 S   0.0  0.0   0:00.03 edac-poller                                                                      
 1027 root      20   0       0      0      0 S   0.0  0.0   0:01.09 ksmtuned                                                                          
   53 root      20   0       0      0      0 S   0.0  0.0   0:54.48 kswapd0  

其中,KiB Mem 行显示系统内存总量、可用内存、使用中的内存和缓存的内存,KiB Swap 行显示Swap分区的情况,而第一列 PID 显示所有正在运行的进程的进程ID。%CPU 和 %MEM 两列分别是进程所占用的 CPU 和内存的百分比。

3. vmstat命令

vmstat命令是一个比较强大的系统监测工具,它可以实时监测各种系统性能指标,包括CPU、内存、磁盘I/O以及虚拟内存等。在终端输入 vmstat 命令后,会显示以下输出结果:

$ vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 
 1  0  14848  2513048 1493028 3203088    1   28   280   597  470  810  1  1 97  1  0 

其中,第2列 free 显示可用的内存大小,buff 显示缓存内存的大小,cache 显示被文件系统缓存的页面内存大小,swpd 显示 Swap 分区的使用大小,si 和 so 都是换入和换出的大小,bi 和 bo 都是块设备上的输入输出大小。

4. /proc/meminfo文件

/proc/meminfo 是一个虚拟文件,包含了系统运行时各种内存的使用情况和系统信息等。可以使用 cat 命令输出其内容。在终端输入 cat /proc/meminfo 命令后,会显示以下输出结果:

$ cat /proc/meminfo

MemTotal:        7878648 kB
MemFree:         2487376 kB
MemAvailable:    3291020 kB
Buffers:         142492 kB
Cached:          844564 kB
SwapCached:         4696 kB
Active:         4149020 kB
Inactive:       2077392 kB
Active(anon):   1314368 kB
Inactive(anon):  236544 kB
Active(file):   2834652 kB
Inactive(file): 1840848 kB
Unevictable:       9472 kB
Mlocked:           9472 kB
SwapTotal:       8191996 kB
SwapFree:        8191848 kB
Dirty:              48 kB
Writeback:           0 kB
AnonPages:      1461736 kB
Mapped:          485256 kB
Shmem:           541052 kB
Slab:            202068 kB
SReclaimable:    145460 kB
SUnreclaim:       56608 kB
KernelStack:       8416 kB
PageTables:       64664 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
WritebackTmp:        0 kB
CommitLimit:   12156320 kB
Committed_AS:   6562960 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      72808 kB
VmallocChunk:   34359661404 kB
HardwareCorrupted:     0 kB
AnonHugePages:   558080 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB

其中,MemTotal 行显示系统总内存大小,MemFree 行显示空闲内存大小,Cache 行显示被文件系统缓存的内存大小,Buffers 行显示缓存的内存大小。

5. pmap命令

pmap命令主要用来查看进程的内存占用情况。在终端输入 pmap [PID] 命令后,会显示以下输出结果:

$ pmap 1234

1234:   /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid
0000000000400000    144K r-x--  /usr/bin/mysqld_safe
0000000000621000   4400K -----  /usr/bin/mysqld_safe
00007f0ba2560000      4K -----  /usr/bin/mysqld_safe
00007f0ba2561000    132K rw---  /usr/bin/mysqld_safe
00007f0ba2583000    276K rw---    [ anon ]
00007f0ba25c2000 146472K r----  /usr/lib/locale/locale-archive
00007f0ba51a1000     48K r-x--  /usr/lib/mysql/plugin/debug.so
...

其中,第1列是内存段的起始地址,第2列是内存段的大小,第3列是权限信息(读、写、可执行等)以及内存段所对应的文件名或[ anon ]表示匿名映射。

标签:kB,0.0,占用,内存大小,free,命令,内存,Linux
From: https://blog.csdn.net/m0_74285332/article/details/139241437

相关文章

  • 统计本地端口占用情况
    要查看MongoDB是否正在备份,可以通过以下几种方法:查看MongoDB的进程列表:使用命令ps-ef|grepmongo,这将列出所有正在运行的MongoDB进程。在输出的列表中,你可以查看是否有与备份相关的进程或任务正在运行。查看MongoDB的日志文件:你可以通过查看MongoDB的日志文件来获......
  • 十个对初学者特有用的 Linux 命令(非常详细)零基础入门到精通,收藏这一篇就够了
    21CTO导读:作为一名Linux管理员,或者即使是刚刚开始使用Linux的新手,充分了解解决网络问题时有用的命令也是至关重要的。我们将探讨用于诊断和解决常见网络问题的10个基本Linux命令。每个命令都将附有实际示例,以说明其用法与有效性。1.ping例如:pingwww.21cto.com......
  • linux.wine WINE9安装微信失败案例
    之前没有安装成功是因为apt自带的wine版本过低准备安装wine9试试 一、apt安装编译工具sudoapt-getinstallbuild-essentialgitwgetlibssl-devlibxml2-devlibasound2-devlibx11-devlibxext-devlibxtst-devlibpulse-devlibdbus-1-devlibfontconfig1-devlibfreet......
  • Linux上搭建并使用ffmpeg(Java)
    原网址:https://blog.csdn.net/Just_do_it_HZF/article/details/136404728关于MacOs和Windows系统上使用ffmpeg就不多说了,有很多相关文章,今天给大家分享一个在Linux环境下使用Java语言来使用ffmpeg一、首先去官网下载一个Linux对应的ffmpeg包1、进入ffmpeg官网:官网2、点击左侧导......
  • Java 进程 CPU 占用过高问题排查
    1.Java进程CPU占用过高问题排查1.1.运行环境1.2.定位CPU占用高的进程1.3.定位CPU占用高的线程1.4.将线程ID转换为十六进制1.5.找到线程对应的栈信息1.5.1.使用jstack1.5.2.使用jcmd1.5.3.使用arthas1.5.4.使用jattach1.Java进程CPU......
  • Linux目录结构
    在Linux世界里,一切皆文件  【 / 】根目录 【 /bin 】bin是Binary的缩写,存放了最经常使用的命令 【 /sbin 】s是SuperUser的意思,存放的是系统管理员使用的系统管理程序如:系统启动、关机、硬件配置等。 【 /home 】家目录,存放普通用户的主目录......
  • FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
    ​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(AllianceforOpenMedia,简称AOM)于2018年制定,融合了GoogleVP10、MozillaDaala以及CiscoThor三款开源项目的成果。据说在实际测试中,AV1标准比H.265(HEVC)的压缩率提升了大约27%。由于AV1具有性能优势,并且还是免费授权,因此各大流......
  • Linux下用户空间控制GPIO
    文章目录参考文章一、简介二、GPIO接口原理图三、在用户空间控制GPIO步骤参考文章https://blog.csdn.net/qq_41483419/article/details/134015533https://blog.csdn.net/baidu_38661691/article/details/97147652一、简介在用户空间中控制GPIO:​/sys/class/gpio......
  • Kali linux更新太慢?
    1.打开终端输入sudovim/etc/apt/sources.list2.找到键盘上的开头是 lns键点击左下角就后出现“插入”3.然后加入以下任意一种国源#阿里云debhttp://mirrors.aliyun.com/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.aliyun.com/kalikali-r......
  • Linux C编程一站式学习-x86汇编基础
    要彻底搞清楚C语言的原理,必须要深入到指令一层去理解。你写一行C代码,编译器会生成什么样的指令,要做到心中有数。本章介绍汇编程序的一些基础知识。1.最简单的汇编程序#PURPOSE:Simpleprogramthatexitsandreturnsa#statuscodebacktotheLinuxkernel##INPUT:no......