linux显示系统内存使用情况--free命令

free 命令是Linux系统中用于显示系统内存使用情况的一个常用工具。通过该命令,用户可以轻松了解系统的内存分配、使用情况以及性能状况。本文将深入介绍free命令的各个方面,并提供详细的示例。

安装与基本用法

通常来说,free命令已经预装在大多数Linux发行版中。如果你的系统没有安装,你可以使用以下命令安装:

sudo apt-get install procps   # 适用于Debian/Ubuntu系统
sudo yum install procps       # 适用于CentOS/RHEL系统

free命令的基本用法如下:

free

该命令会显示系统的总内存、已用内存、空闲内存等信息。

如下

             total       used       free     shared    buffers     cached
Mem:          7983       5862       2120         41        264       3559
-/+ buffers/cache:       2038       5945
Swap:         8191          4       8187
  1. 总内存 (total): 表示系统中物理内存的总量。在上面的例子中,总内存为7983 MB。

  2. 已用内存 (used): 表示当前系统已经使用的内存量。在上面的例子中,已用内存为5862 MB。

  3. 空闲内存 (free): 表示当前系统中未被使用的内存量。在上面的例子中,空闲内存为2120 MB。

  4. 共享内存 (shared): 表示被多个进程共享使用的内存量。在上面的例子中,共享内存为41 MB。

  5. 缓冲区 (buffers): 表示用于存储文件系统元数据的内存量。在上面的例子中,缓冲区为264 MB。

  6. 缓存 (cached): 表示用于存储文件系统数据的内存量。在上面的例子中,缓存为3559 MB。

  7. -/+ buffers/cache: 这一行提供了一个更详细的内存使用情况。第一列是真正被应用程序使用的内存(实际使用的内存),第二列是包括缓冲区和缓存后的内存情况。在上面的例子中,实际使用的内存为2038 MB,包括缓冲区和缓存后的可用内存为5945 MB。

  8. 交换区 (Swap): 表示系统中用于辅助物理内存的交换区的总量。在上面的例子中,交换区总量为8191 MB。

  9. 已用交换区 (`used): 表示当前系统中已经使用的交换区的量。在上面的例子中,已用交换区为4 KB。

  10. 空闲交换区 (free): 表示当前系统中未被使用的交换区的量。在上面的例子中,空闲交换区为8187 MB。

参数详解

free命令支持多种参数,通过这些参数,你可以获取更为详细的内存信息。

-b, --bytes

以字节为单位显示内存使用情况。

free -b

-k, --kilo

以千字节为单位显示内存使用情况。

free -k

-m, --mega

以兆字节为单位显示内存使用情况。

free -m

-g, --giga

以吉字节为单位显示内存使用情况。

free -g

实例分析

以下是一些使用free命令的实例,以更好地理解其输出:

实例 1:查看总内存和使用情况
free -m

输出示例:

             total       used       free     shared    buffers     cached
Mem:          7983       5862       2120         41        264       3559
-/+ buffers/cache:       2038       5945
Swap:         8191          4       8187

在这个例子中,我们可以看到系统的总内存是7983 MB,已用内存为5862 MB,空闲内存为2120 MB。此外,还提供了缓存和缓冲区的详细信息。

实例 2:以字节为单位显示内存信息
free -b

输出示例:

             total       used       free     shared    buffers     cached
Mem:     8364324352  6349947392  201437696    4194304   27110656  3735389184
-/+ buffers/cache:  2588541552  5775782800
Swap:    8589934592    4194304  8585740288

通过添加-b参数,我们以字节为单位查看了系统的内存使用情况。

进一步的参数解析

-t, --total

显示内存的总计数,包括物理内存和交换分区。

free -t

-s, --seconds

间隔一定时间显示内存使用情况。

free -s 5   # 每5秒更新一次内存使用情况

-h, --human

以易读的方式显示内存大小(使用K、M、G等单位)。

free -h

了解进程内存

free命令除了展示系统整体的内存使用情况外,还能提供关于进程内存的详细信息。通过查看 -p 参数,我们可以获取每个进程的内存使用情况。

实例 3:查看每个进程的内存占用
free -p

输出示例:

             total       used       free     shared    buffers     cached   available
Mem:          7983       5862       2120         41        264       3559       1501
Swap:         8191          4       8187PID   USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND1821   user      20   0 2994064 396184  92780 S   0.3   5.0   2:21.75 gnome-shell3456   user      20   0 4707324 276772  93696 S   0.0   3.5   0:23.45 firefox2318   user      20   0 1507068 141324  64580 S   0.3   1.8   0:13.32 gnome-terminal-...   ...       ...  ... ...     ...    ... ...  ...   ...     ...   ...

在这个例子中,我们除了看到整体的内存使用情况,还能看到每个进程的详细信息,包括进程的ID(PID)、用户、虚拟内存(VIRT)、实际使用的物理内存(RES)、共享内存(SHR)等。

监控内存变化

free命令还提供了 -s 参数,可以用于在一定时间间隔内连续监控内存使用情况。

实例 4:连续监控内存变化
free -s 5 -c 10

输出示例:

             total       used       free     shared    buffers     cached   available
Mem:          7983       5862       2120         41        264       3559       1501
Swap:         8191          4       8187total       used       free     shared    buffers     cached   available
Mem:          7983       5862       2120         41        264       3559       1501
Swap:         8191          4       8187total       used       free     shared    buffers     cached   available
Mem:          7983       5862       2120         41        264       3559       1501
Swap:         8191          4       8187...

在这个例子中,-s 5 表示每5秒更新一次内存使用情况,-c 10 表示更新10次后停止监控。这样,你可以更清晰地观察内存的动态变化。

以人类可读的方式显示内存大小

-h 参数可以使free命令以易读的方式显示内存大小。

实例 5:以人类可读方式显示内存信息
free -h

输出示例:

             total       used       free     shared    buffers     cached   available
Mem:          7.8G       5.8G       2.1G        41M       264M       3.5G       1.5G
Swap:         8.0G       4.0K       8.0G

这样的输出更直观,更容易理解,尤其是在与其他人分享信息时。

查看内存详细信息

-l 参数用于显示更详细的内存统计信息,包括内存页的大小等。

实例 6:查看更详细的内存信息
free -l

输出示例:

             total       used       free     shared    buffers     cached
Mem:          7983       5862       2120         41        264       3559
Low:          7983       5862       2120
High:            0          0          0
-/+ buffers/cache:       2038       5945
Swap:         8191          4       8187

在这个例子中,我们看到了更为详细的内存信息,包括Low和High内存的使用情况。

指定文件路径查看内存信息

free命令默认读取 /proc/meminfo 文件来获取系统内存信息,但你也可以通过 -t 参数指定其他文件路径。

实例 7:使用自定义文件查看内存信息
free -t /path/to/custom/meminfo

通过这个参数,你可以指定一个自定义的文件路径,从而查看与当前系统不同的内存信息。

查看进程的内存详细信息

-p 参数可以结合 -t 参数,查看指定进程的详细内存信息。

实例 8:查看指定进程的详细内存信息
free -p -t /path/to/custom/meminfo

这个例子中,你可以查看指定进程在自定义的文件路径下的详细内存信息。

监控内存变化并记录

-c 参数不仅可以用于显示一定次数的内存信息,还可以与 -s 参数结合使用,实现监控并记录内存变化。

实例 9:监控内存变化并记录
free -s 5 -c 10 -t

在这个例子中,-s 5 表示每5秒更新一次内存使用情况,-c 10 表示更新10次后停止监控,并通过 -t 参数记录内存的总计数。

结论

free命令是Linux系统中一个强大而实用的工具,通过它,用户可以及时了解系统的内存使用情况,为系统性能调优提供了便利。本文对free命令的安装、基本用法和参数详解进行了介绍,并通过实例分析帮助读者更好地理解和运用该命令。

希望这个详细的介绍能够帮助你更好地使用free命令进行系统内存管理。在接下来的部分,我将进一步展开对其他参数和高级用法的介绍,以全面了解free命令的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车数据解决方案:通过更好的数据提高速度

无论您是负责数字化转型的 CIO 或 IT 团队,还是实施 IoT 和 AI 洞察的工厂经理,或者是管理复杂数据管道的 ADAS 和无人驾驶团队,我们都可以帮您在数据发展曲线上保持领先。 全球数字化浪潮下,传统汽车行业生产模式、制造模式、服…

基于Python实现人脸识别相似度对比

目录 引言背景介绍目的和意义 人脸识别的原理人脸图像获取人脸检测与定位人脸特征提取相似度计算 基于Python的人脸相似度对比实现数据集准备人脸图像预处理特征提取相似度计算 引言 背景介绍 人脸识别技术是一种通过计算机对人脸图像进行分析和处理,从而实现自动识…

2023.1.17 关于 Redis 持久化 AOF 策略详解

目录 引言 AOF 策略 实例演示一 缓冲区 重写机制 手动触发 自动触发 AOF 重写流程 实例演示二 引言 Redis 实现持久化的两大策略 RDB ——> Redis DataBase(定期备份)AOF ——> Append Only File(实时备份) 注意&…

JavaEE:多线程(2):线程状态,线程安全

目录 线程状态 线程安全 线程不安全 加锁 互斥性 可重入 死锁 死锁的解决方法 Java标准库中线程安全类 内存可见性引起的线程安全问题 等待和通知机制 线程饿死 wait notify 线程状态 就绪:线程随时可以去CPU上执行,也包含在CPU上执行的…

漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0

​ 一、Openssl升级 1、查看Openssl安装的版本 openssl version 2、查看Openssl路径 which openssl 3、上传openssl安装包到服务器:openssl-1.1.1t.tar.gz,并且解压,安装: mv /usr/local/openssl /usr/local/backup_openssl_1.1.1q_20240120 mkdir /usr/local/openssl tar…

强化学习:MuJoCo机器人强化学习仿真入门

声明:我们跳过mujoco环境的搭建,搭建环境不难,可自行百度 下面开始进入正题(需要有一定的python基础与xml基础): 下面进入到建立机器人模型的部分: 需要先介绍URDF模型文件和导出MJCF格式 介绍完…

K8S--安装Nginx

原文网址:K8S--安装Nginx-CSDN博客 简介 本文介绍K8S安装Nginx的方法。 1.创建Nginx目录及配置文件 mkdir -p /work/devops/k8s/app/nginx/{config,html} 在config目录下创建nginx.conf配置文件,内容如下: # events必须要有 events {wo…

PALWORLD linux centos7开服教程

开放端口8211 iptables -A INPUT -p udp -p tcp --dport 8211 -j ACCEPT iptables -A INPUT -p udp -p udp --dport 8211 -j ACCEPT yum -y install glibc.i686 libstdc.i686 screen libcurl.i686 yum install glibc-devel.i686 yum install libstdc-devel.i686 yum -y ins…

C#设计模式教程(18):中介者模式

中介者模式的定义 中介者模式(Mediator Pattern)是一种行为设计模式,它允许一组对象相互通信,而不需要知道彼此的内部结构。这样做可以降低多个对象和类之间的通信复杂性,将多对多的通信转变为一对多的通信,使得对象之间的耦合松散,并且可以更容易地独立地改变和复用这…

逆序对数量(归并排序做法)

先给出上一篇文章归并排序模板-CSDN博客里的归并排序模板&#xff1a; #include<iostream> using namespace std;const int N 100010;int n; int q[N], temp[N];void merge_sort(int q[], int l, int r) {if(l > r) return;int mid (lr) >> 1;merge_sort(q, …

【代码随想录算法训练营-第十天】【栈与队列】232.用栈实现队列,225. 用队列实现栈

写在最前面&#xff0c;目前Java已经推荐使用Deque来实现栈和队列了&#xff0c;原因&#xff1a; https://www.cnblogs.com/jiading/articles/12452830.html 232.用栈实现队列 第一遍 思路 pop&#xff1a;出栈&#xff1b;push&#xff1a;入栈&#xff1b;peek&#xff1…

爬虫安居客新房

一、首先看网址 后面有全部代码 https://hf.fang.anjuke.com/loupan/baohequ/p3 这种形式很好分析&#xff0c;https://hf.fang.anjuke.com/loupan/行政区域页码 xinfang_area ["feixixian", "baohequ", "shushanqu", "luyangqu",…

#GPU|LLM|AIGC#集成显卡与独立显卡|显卡在深度学习中的选择与LLM GPU推荐

区别 核心区别&#xff1a;显存&#xff0c;也被称作帧缓存。独立显卡拥有独立显存&#xff0c;而集成显卡通常是没有的&#xff0c;需要占用部分主内存来达到缓存的目的 集成显卡&#xff1a; 是集成在主板上的&#xff0c;与主处理器共享系统内存。 一般会在很多轻便薄型的…

从0开始学mysql 第十课:MySQL 自定义函数

第十课&#xff1a;MySQL 自定义函数 学习目标 本课程将指导你&#xff1a; 理解自定义函数的概念及其与存储过程的区别。学习如何创建自定义函数。掌握在查询中调用自定义函数的方法。了解如何管理&#xff08;更新和删除&#xff09;自定义函数。对自定义函数的性能及最佳…

机械臂雅可比矩阵的矢量积理解和matlab实现

雅可比矩阵的第Ji列&#xff1a; 关于一些基本概念可以参考博客&#xff0c;部分细节如下&#xff1a; 每个移动关节&#xff0c;Ji可以这样计算&#xff1a; 每个旋转关节&#xff0c;Ji这样计算&#xff1a; 有时候要求按照末端执行器坐标系{n}来执行一些位移旋转之类的…

C# Queryable类

文章目录 前言一、Queryable二、Queryable类中的方法大致分类三、与Lambda表达式结合使用四 、Queryable 与java的Stream 相比较基本概念查询语法QueryableStream 性能和延迟执行实际项目选择考虑因素 总结 前言 C# 学习入门系列&#xff0c;C# 中的 Queryable类 一、Queryabl…

uniapp中vue2项目导入高德地图

1、看官网新手入门链接导入原生高德地图&#xff1a; JS API 结合 Vue 使用-基础-进阶教程-地图 JS API 2.0|高德地图API (amap.com) 具体步骤&#xff1a; 第一步&#xff0c;安装插件 npm i amap/amap-jsapi-loader --save 第二步&#xff0c;在vue组件中写代码显示地图…

[数据结构]顺序表

1、顺序表的概念及结构 1.1 线性表 线性表&#xff08; linear list &#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#…

调用一个第三方api,但是它返回是异步回调的,如何把这个异步回调做成同步

如果你需要将一个异步回调的API调用转换为同步调用&#xff0c;有几种常见的方法可以实现&#xff1a; 1. 使用Future和Promise&#xff1a;在调用异步API时&#xff0c;可以创建一个Future对象并返回给调用方。在异步回调执行完成后&#xff0c;使用Promise对象来设置Future的…

从0开始学C++ 第二十七课 数据结构入门 - 数组与链表

第二十七课&#xff1a;数据结构入门 - 数组与链表 学习目标&#xff1a; 理解数组的基本概念和操作。掌握链表的基本结构与特点。学会在C中定义和操作数组和链表。了解数组和链表的基本使用场景。 学习内容&#xff1a; 数组&#xff08;Array&#xff09; 概念&#xff1a…