linux 查看每个应用占用内存情况

linux 查看每个应用占用内存情况,第1张

最近发现服务器内存用的比较多,但是不知道哪个应用具体用了多少,百度了,感觉没有找到什么合适答案,分享一下我的解决方法!

注意下面这个命令

ps -aux | grep 应用jar名称(应用名称)
907472 就是应用占用的内存,单位是K,大约等于907M内存

还有一个比较好用的命令:

ps aux | sort -k4,4nr | head -n 10

查看内存占用率前十的应用!

1"linux查看服务器内存大小,为您提供linux查看服务器内存大小图文信息,使用cat/proc/meminfo命令查看linux系统内存大小的详细信息,如总内存,剩余内存、可使用内存等信息。

2使用df-h命令可以查看linux系统各分区的使用情况。

3使用free-m命令可以查看linux系统内存使用量和交换区使用量。

用工具解决!
RamMap用于展示系统和进程内存状态和利用率。它提供一个命名为“使用计数”的概要栏,它列出所有各种各样的系统内存分区,如分页池和非分页池、流程私密的、可共享的、硬盘空间、内核堆栈和映射文件。它还显示被称为Metafile的缓存文件内存空间的数量。
如果你要解决的内存问题看起来和特定的进程或应用相关,你也许有必要通过使用VMMap来仔细看看。VMMap是一个过程导向的工具,它让你可以查看现有的进程或者追踪新的进程并查看其内存使用,它提供的信息远比RamMap详细。
VMMap启动时,它提示你选择你想要审查的现在进程或是开启一个新的进程。如果你启动了一个新进程,你将能追踪内存利用率,如堆和虚拟分配。

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况
top:
主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出to
显示参数:
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/toprc文件中。这是写top配置文件的推荐方法。
free
1作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
uptime
18:59:15 up 25 min, 2 users, load average: 123, 132, 121
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
avg-cpu: %user %nice %sys %iowait %idle
2025 018 261 7639 057
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 986 28434 8448 685407 2036
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。

1 free命令

命令格式:free -m

用途:用于检查有关系统RAM的使用情况(查看系统的可用和已用内存)。

可用内存计算公式:

可用内存=free +buffers +cached, 实际 *** 作即:215 +11+57 =253MB。

2 vmstat 指令

命令格式:vmstat -s(参数)

用途:用于查看系统的内存存储信息,是一个报告虚拟内存统计信息的小工具,vmstat 命令报告包括:进程、内存、分页、阻塞IO、中断、磁盘、CPU。

3 /proc/meminfo 指令

命令格式:cat/proc/meminfo

用途:用于从/proc文件系统中提取与内存相关的信息。这些文件包含有系统和内核的内部信息。

SwapFree中的交换内存。

PS:你还可以使用命令less /proc/meminfo 直接读取该文件。通过使用less 命令,可以在长长的输出中向上和向下滚动,找到你需要的内容哦~

4 top 指令

命令格式:top

用途:用于打印系统中的CPU和内存使用情况。

PS:如果你想让top 显示更友好的内存信息,使用命令top -o %MEM,这会使top 按进程所用内存对所有进程进行排序。

5 htop 指令

命令格式:htop

用途:详细分析CPU和内存使用情况。

PS:如果你终端没安装htop,先通过指令来安装。

命令格式:sudo apt-get update

接着输入以下指令

命令格式:sudo apt install htop

等一切安装结束之后。请输入以下指令即可。

虚拟机可用内存不足。 排查步骤 通过远程管理工具(如:Xftp、SecureFX、WinSCP)远程登录目标云服务器。执行以下命令,查看目标云服务器的内存使用情况。 free -m 执行命令反馈信息如图1所示,查看free项的数值。

$ free -m\x0d\ total used free shared buffers cached\x0d\ Mem: 1002 769 232 0 62 421\x0d\ -/+ buffers/cache: 286 715\x0d\ Swap: 1153 0 1153\x0d\ 第一部分Mem行:\x0d\ total 内存总数: 1002M\x0d\ used 已经使用的内存数: 769M\x0d\ free 空闲的内存数: 232M\x0d\ shared 当前已经废弃不用,总是0\x0d\ buffers Buffer 缓存内存数: 62M\x0d\ cached Page 缓存内存数:421M\x0d\ 关系:total(1002M) = used(769M) + free(232M)\x0d\ 第二部分(-/+ buffers/cache):\x0d\ (-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)\x0d\ (+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)\x0d\ 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。\x0d\ 第三部分是指交换分区, 我想不讲大家都明白\x0d\ 我想大家看了上面,还是很晕第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪\x0d\ 其实我们可以从二个方面来解释\x0d\ 对 *** 作系统来讲是Mem的参数buffers/cached 都是属于被使用,所以它认为free只有232\x0d\ 对应用程序来讲是(-/+ buffers/cach)buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。\x0d\ 所以,以应用来看看,以(-/+ buffers/cache)的free和used为主所以我们看这个就好了另外告诉大家一些常识Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路 径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。\x0d\ 记住内存是拿来用的,不是拿来看的不象windows, 无论你的真实物理内存有多少,他都要拿硬盘交换文件来读这也就是windows为什么常常提示虚拟空间不足的原因你们想想,多无聊,在内存还有大部分 的时候,拿出一部分硬盘空间来充当内存硬盘怎么会快过内存所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少如果常常 swap用很多,可能你就要考虑加物理内存了这也是linux看内存是否够用的标准哦


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/13083522.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存