Linux的内存用量

Linux中系统和进程的内存用量统计 这里写自定义目录标题free命令的结果新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 free命令的结果 使用... 阅读详情
导读Linux 上的内存管理很复杂。尽管使用率高但未必存在问题。你也应当关注一些其他的事情。

Linux的内存用量Linux的内存用量
在 Linux 上用光内存通常并不意味着存在严重的问题。为什么?因为健康的 Linux 系统会在内存中缓存磁盘活动,基本上占用掉了未被使用的内存,这显然是一件好事情。
换句话说,它不让内存浪费掉。使用空闲的内存增加磁盘访问速度,并且不占用运行中应用程序的内存。你也能够想到,使用这种内存缓存比起直接访问硬盘驱动器(HDD)快上数百倍,也比明显快于直接访问固态硬盘驱动。内存占满或几乎占满通常意味着系统正在尽可能高效地运行当中 —— 并不是运行中遇到了问题。

缓存如何工作

磁盘缓存简单地意味着系统充分利用未使用的资源(空闲内存)来加速磁盘读取与写入。应用程序不会失去任何东西,并且大多数时间里能够按需求获得更多的内存。此外,磁盘缓存不会导致应用程序转而使用交换分区。反而,用作磁盘缓存的内存空间当被需要时会立即归还,并且磁盘内容会被更新。

主要和次要的页故障

Linux 系统通过分割物理内存来为进程分配空间,将分割成的块称为“页”,并且映射这些页到每个进程的虚拟内存上。不再会用到的页也许会从内存中移除,尽管相关的进程还在运行。当进程需要一个没有被映射或没在内存中页时,故障便会产生。所以,这个“故障fault”并不意味着“错误error”而是“不可用unavailables”,并且故障在内存管理中扮演者一个重要的角色。
次要故障意味着在内存中的页未分配给请求的进程,或未在内存管理单元中标记为出现。主要故障意味着页没有保留在内存中。
如果你想切身感受一下次要页故障和主要页故障出现的频率,像这样试一下 ps 命令。注意我们要的是与页故障和产生它的命令相关的项。输出中省略了很多行。MINFL 显示出次要故障的数目,而 MAJFL 表示了主要故障的数目。

$ ps -eo min_flt,maj_flt,cmd
 MINFL  MAJFL CMD
230760    150 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
     0      0 [kthreadd]
     0      0 [rcu_gp]
     0      0 [rcu_par_gp]
     0      0 [kworker/0:0H-kblockd]
   ...
   166     20 gpg-agent --homedir /var/lib/fwupd/gnupg --use-standard-socket --daemon
   525      1 /usr/libexec/gvfsd-trash --spawner :1.16 /org/gtk/gvfs/exec_spaw/0
  4966      4 /usr/libexec/gnome-terminal-server
  3617      0 bash
     0      0 [kworker/1:0H-kblockd]
   927      0 gdm-session-worker [pam/gdm-password]

汇报单一进程,你可以尝试这样的命令(LCTT 译注:参数里面的 1 是要查看的进程的 PID):

$ ps -o min_flt,maj_flt 1
 MINFL  MAJFL
230064    150

你也可以添加其他的显示字段,例如进程所有者的 UID 和 GID。

$ ps -o min_flt,maj_flt,cmd,args,uid,gid 1
 MINFL  MAJFL CMD                         COMMAND                       UID   GID
230064    150 /usr/lib/systemd/systemd -- /usr/lib/systemd/systemd --     0     0

多少才算满?

一种较好的方法来掌握内存究竟使用了多少是用 free -m 命令。-m 选项指定了数字的单位是 MiBmebibyte 而不是字节。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3244        3069          35          49         140         667
Swap:          3535           0        3535

注意 free(未使用)的内存可能会不足,而 available(可用于启动新的应用)会显示更大的数量。这两者的区别值得我们去关注。可用available意味着它可以在需要时恢复使用,而空闲free意味着现在就能够使用。

什么时候要担心

如果 Linux 系统上的性能表现良好 —— 应用程序响应度高,命令行没有显示出问题 —— 很可能系统状况良好。记住,一些应用也许会出于某种原因而变慢,但它不影响整个系统。
过多的硬故障也许表明确实存在问题,但要将其与观察到的性能相比较。
一个好的方法是当可用内存接近 0 或者“用作交换swap used”项显著增长或波动时开始担心。如果“可用”项占总内存可用量的百分比合理,那么就无需担心,就像下面的例子那样:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3244        3069          35          49         140         667
Swap:          3535           0        3535

Linux 性能很复杂

抛开这些不说,Linux 系统上的内存可能会变满,并且性能可能会降低。当系统出现问题时不要仅将单一的内存使用报告作为指标。
Linux 系统的内存管理很复杂,因为它采取的措施需要确保系统资源得到最好的利用。不要受到一开始内存占满的欺骗,使你认为系统存在问题,但实际上并没有。

原文来自:https://www.linuxprobe.com/?p=150905

嵌入式SDIO 总线面试题及参考答案 SDIO 的 4 位总线模式是一种提高数据传输效率的工作模式。在传统的 1 位总线模式下,数据只能通过一根数据线(DAT0)进行传输,这限制了数据传输的带宽和速度。而在 4 位总线模式下,DAT0 - DAT3 这 4 根数据线同时用于数据传输,相当于在同一时间内可以传输 4 倍于 1 位模式的数据量,从而显著提高了数据传输的带宽和速度。要通过 CMD6 命令将 SDIO 总线从当前模式切换到 4 位总线模式,需要遵循以下步骤:第一步,主设备需要确保 SDIO 卡支持 4 位总线模式。 阅读详情

相关推荐

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【最大化游戏试玩资格分发】

新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:

MISAYAONE的博客 205

gvfsd-trash占用内存高时,清空回收站

ubuntu系统由于长期的各种文件操作,导致回收站有大量的文件,这些文件会占用系统内存。当发现进程gvfsd-trash占用内存过高时,需要手动清空回收站和kill进程 清空回收站 sudo rm -fr ~/.local/share/Trash/* 结束gvfsd-trash进程 top #显示内存及cpu信息 在弹出的界面信息后,输入大写M,按内存排序 # 排序TOP命令结果 kill -9 pid # 杀死内存占用过高进程 ...

qq_36201400的博客 4832

明清科举进士登科数据集.zip

明清科举进士登科数据集.zip

GVFS和Gnome VFS模块相关资料

gnome-vfs和gio/gfvs是两个不同的概念,也许在不久的将来gnome-vfs应该会被gvfs所取代 GVFS是GNOME新一种虚拟文件系统。GVFS是用来代替过时的Gnome VFS虚拟文件系统。GVFS算是Gnome 2.22中一个比较大的改动,也Gnome 2.22中一个主要的新特性。   GVFS 是一个带有诸如 SFTP, FTP, DAV, SMB, Obe...

Linux Job 2071

Linux进程、前后台、服务与例行性任务管理

如果我想将一个基于 Web 的应用(如基于 Web 的 Python 交互应用)作为局域网内 Web 服务,以便于在其他设备上访问。那么如何将其注册为 systemd 服务呢?其实只需要编写一个简单的 .service 文件即可。!!!example “编写 .service 文件并运行(以 Jupyter Notebook 为例)”Jupyter Notebook 是基于浏览器的交互式编程平台,在数据科学领域非常常用。

白话机器学习 813

linux】——进程和计划任务管理

人生的重要法则:1.原谅自己。2.不要在意他人的目光。3.好好睡觉。

陌上花开,静待绽放! 1281

ubuntu的bug集合

1.gvfsd-trash 管理回收站的进程,经常占用cpu和Mem100%,kill即可 2.gedit中按shift键鼠标消失,ubuntu14.04。解决方法:不按shift即可 3.win和ubuntu双系统,ubuntu重启容易导致系统有线网消失,win系统上的有线也不能用。关机后再开机则不会出现此问题。在ubuntu和ubuntukylin中都遇到了此问题。解决方案:不重启,关机再

HadesDream的专栏 1193

linux 查看内存用量_linux下查看内存使用情况

Linux下查看内存我们一般用free命令:[root@scs-2 tmp]# freetotal used free shared buffers cachedMem: 3266180 3250004 16176 0 110652 2668236-/+ buffers/cache:...

weixin_29932857的博客 239

linux 查看内存用量_linux查询内存使用情况

输入:topPID:进程的IDUSER:进程所有者PR:进程的优先级别,越小越优先被执行NInice:值VIRT:进程占用的虚拟内存RES:进程占用的物理内存SHR:进程使用的共享内存S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU:进程占用CPU的使用率%MEM:进程使用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间,即占用CP...

weixin_39804631的博客 314

linux 查看内存用量_Linux查看内存使用情况方法

1. top命令:输入命令:top输出内容展示:内容分析:PID:进程的IDUSER:进程所有者PR:进程的优先级别,越小越优先被执行NI:进程Nice值,代表这个进程的优先值VIRT:进程占用的虚拟内存RES:进程占用的物理内存SHR:进程使用的共享内存S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态%CPU:进程占用CPU的使用%MEM:进程使用的物理内存和总内存的百分TIME+:该...

weixin_39716521的博客 176

linux 查看内存用量_Linux 查看内存使用情况

1 . top :用于实时显示 process 的动态PID:进程的IDUSER:进程所有PR:进程的优先级别,越小越优先被执VIRT:进程占用的虚拟内RES:进程占用的物理内SHR:进程使用的共享内S:进程的状态,S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负%CPU:进程占用CPU的使用%MEM:进程使用的物理内存和总内存的百分TIME+:该进程启动后占用的总的CPU时...

weixin_36466165的博客 174

linux 查看内存用量_Linux查看CPU和内存使用情况

top命令top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。内容解释:第一行(top):15:24:36 系统当前时刻14 days...

weixin_39958019的博客 107

Linux查看内存使用量和交换区使用量

Linux查看内存使用量和交换区使用量 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -m total used free shared buffers cached Mem: 3030 1354 1676

游海东的技术专栏 3433

linux内存占用高但看不到进程_Linux进程内存用量分析之内存映射篇

一、背景搜索引擎中,使用内存映射的方式加载庞大的索引数据文件已是常态,58自研的搜索引擎ESearch也是如此。ESearch检索节点中,索引数据是分段存储的,段上正排倒排等数据又分别存储在不同文件上,所有索引数据都使用内存映射的方式读取或更新。这样做有许多好处,比如简化了数据加载逻辑,由操作系统管理磁盘缓存等。但是也存在一些问题,比如映射的内存用量不容易控制等。ESearch检索节点索...

weixin_39818691的博客 1932

linux 交换内存使用吗,Linux查看内存使用量跟交换区使用量

Linux查看内存使用量和交换区使用量Linux查看内存使用量和交换区使用量youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -mtotal used free shared buffers cachedMem: 3030 1690 1339 8...

weixin_29009081的博客 188

linux 查看内存用量_linux查看内存使用情况

输入:freetotal:总计物理内存的大小used:已使用多大free:可用有多少Shared:多个进程共享的内存总额Buffers/cached:磁盘缓存的大小第三行(-/+ buffers/cached)used:已使用多大free:可用有多少第四行就不多解释了。区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别...

weixin_39575850的博客 92

linux系统下查看某个进程内存使用量

linux系统下可以查看进程的状态信息来获取进程的内存使用量,可通过top 和proc文件进程信息查看。 查看步骤如下: 1、获取进程ID,可以通过ps -elf命令获取,且可以通过grep获取指定的进程,如下图获取update.zip相关的进程: 2、如上图,获取到进程ID为92381,然后通过top -p id命令来获取进程的信息,通过信息可以筛选出内存使用的信息: (Ps:关...

渀波儿灞 3018

linux 查看内存用量_用来查看linux内存使用情况的shell脚本

linux 中,/proc/$PID/status 文件提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看。本文为大家提供的这个脚本,通过查看status文件中VmRSS的字段来查看系统或进程使用的内存情况,有需要的朋友不妨参考下。#! /bin/bashecho -n "PidNam...

weixin_39820910的博客 505

Linux | Linux内存用量查询及问题解决

Linux内存用量查询-df 命令管理 Linux 服务器时,可能需要检查服务器的剩余能力。此时可以使用的是 df 命令。显示有关当前装载的磁盘的大小、使用情况和剩余容量的信息。它更便于服务器维护,因为它比其他命令更可读。

weixin_44649780的博客 401
上一篇: Ubuntu不会放弃32位应用程序
下一篇: 5G网络安全
Listen2You
博客等级 码龄10年 202粉丝 1001原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值