详细分析Linux内存知识并释放内存

news2024/9/24 11:30:14

目录

  • 前言
  • 1. 基本知识
    • 1.1 free
    • 1.2 cat /proc/meminfo
    • 1.3 slabtop
  • 2. 清空内存

前言

本篇文章主要分析内存
如果是磁盘空间,推荐阅读:服务器出现根目录磁盘满了解决方法

1. 基本知识

在Linux系统中,查看内存的基本知识包括以下几个方面:

  • 总内存和可用内存free来查看系统的内存使用情况
    free命令会显示系统的总内存、已用内存、空闲内存以及缓冲区和缓存等信息
# 更易读的方式显示内存信息,包括单位为 MB 或 GB
free -h
  • 详细的内存信息cat /proc/meminfo命令来查看更详细的内存信息
# 关于内存的各种统计数据,如内存总量、空闲内存、已使用内存、缓冲区和缓存等。
cat /proc/meminfo
  • 进程内存使用情况tophtop命令来实时监视系统的进程和其内存使用情况
# 每个进程的内存占用情况以及系统总体的内存使用情况。
top

htop
  • 内存交换分区(Swap):除了物理内存外,Linux系统还可以使用交换分区来扩展内存空间。使用swaponswapoff命令来启用或禁用交换分区,以及swapon -s命令来查看当前系统中启用的交换分区情况
# 列出当前系统中启用的交换分区及其使用情况
swapon -s

使用如上命令,了解系统的整体内存使用情况,以及各个进程的内存占用情况,从而更好地管理和优化系统的内存资源

1.1 free

  • free 命令默认以 KB 为单位显示内存使用情况
  • free -m 命令以 MB 为单位显示内存使用情况
  • free -h 命令以更易读的方式显示内存使用情况,同时自动将内存单位调整为适当的大小(GB、MB 或 KB),使输出更加易读

在这里插入图片描述

输出的参数如下:

  • total: 总内存量
  • used: 已使用的内存量
  • free: 空闲的内存量
  • shared: 用于共享内存的内存量
  • buff/cache: 用于缓冲和缓存的内存量,这包括了Linux系统的文件系统缓存和页缓存等
  • available: 可用内存量,这是系统中实际可以立即分配给进程使用的内存量。它取决于系统内核对内存的管理策略,包括了剩余的空闲内存和缓冲、缓存等可被清理的内存

而对于Swap部分:

  • Swap total: 交换分区总量
  • Swap used: 已使用的交换分区量
  • Swap free: 空闲的交换分区量

可用内存 (available) 是最关键的一项,反映了系统当前可以被应用程序使用的实际内存量

1.2 cat /proc/meminfo

显示系统中内存的详细信息,包括各种内存统计数据

以下是输出的一些常见字段及其含义:

  • MemTotal: 总内存量,表示系统中物理内存的总量

  • MemFree: 空闲内存量,表示系统中当前未被使用的内存量

  • MemAvailable: 可用内存量,表示系统中实际可以立即分配给进程使用的内存量,包括了剩余的空闲内存和缓冲、缓存等可被清理的内存

  • Buffers: 缓冲区使用量,表示用于缓存块设备数据的内存量

  • Cached: 缓存使用量,表示用于缓存文件系统的内存量

  • SwapTotal: 交换分区总量,表示系统中交换分区的总大小

  • SwapFree: 空闲的交换分区量,表示系统中当前未被使用的交换分区大小

  • Dirty: 脏页的数量,表示已被修改但尚未被写入磁盘的内存页数量

  • Writeback: 等待写回磁盘的内存页数量

  • Inactive(anon): 非活跃的匿名内存页数量

  • Inactive(file): 非活跃的文件缓存页数量

  • Unevictable: 无法被移除的内存页数量

  • Mlocked: 被锁定的内存页数量

  • AnonPages: 匿名内存页数量,表示被进程使用但没有对应文件的内存页数量

  • Shmem: 共享内存的大小,表示已被共享的内存页数量

  • HugePages_Total: 总的大页(HugePage)数量

  • HugePages_Free: 空闲的大页数量

  • Hugepagesize: 大页的大小

在这里插入图片描述

1.3 slabtop

显示内核 SLAB 内存分配器统计信息的工具

以下是 slabtop 的一些重要信息以及它们的含义:

  • OBJS: 此处显示的是缓存中对象的数量。
  • CACHE SIZE: 缓存中对象的总大小。
  • OVH: 超额的缓存(overhead)大小,这是用于管理缓存的额外开销。
  • P: 缓存对象的页数。
  • NALLOC: 尚未被分配的对象的数量。
  • ALLOC: 分配的对象的数量。
  • %ALLOC: 分配的对象占总数的百分比。
  • %MEM: 此缓存的内存使用量占总内存的百分比。
  • NAME: 缓存的名称

通过观察 slabtop 的输出,您可以了解系统中各种缓存的使用情况,以及这些缓存所占用的内存量。这对于诊断系统性能问题和了解系统内存使用情况非常有帮助。
在这里插入图片描述

2. 清空内存

在Linux系统中,清空内存通常用于释放系统中的缓存以及未使用的内存页,以便提高系统的性能

这种操作在某些情况下可能很有用,例如在进行性能测试或者遇到系统资源不足的情况下

以下是与清空内存相关的知识点以及相关命令的解释:

  1. sync命令:
    sync 命令用于将缓冲数据写入磁盘,并且等待写入完成。它确保所有未写入的数据都被刷新到磁盘中,从而避免数据丢失或损坏

  2. echo 3 > /proc/sys/vm/drop_caches
    用于通过写入特定的值到 /proc/sys/vm/drop_caches 文件来清空系统中的页缓存、目录项缓存以及索引节点缓存

具体来说,这个命令通过向 /proc/sys/vm/drop_caches 文件中写入以下数字来执行不同的操作:

  • 0:清除页面缓存(page cache)
  • 1:清除目录项和索引节点缓存
  • 2:清除页面缓存以及目录项和索引节点缓存
  • 3:在上述所有内容的基础上执行清空操作

这个命令通常需要 root 权限才能执行。清空缓存可以帮助释放系统中的内存并提高性能,但在生产环境中应谨慎使用,因为这可能会导致性能下降,尤其是在大量磁盘 I/O 操作期间

在这里插入图片描述

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

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

相关文章

解决手机连接校园网同一设备老是需要重复认证的问题(+解决原理)

相信大家平时在使用校园网的时候总会遇到同一设备隔三岔五就要重复认证绑定的问题,这里直接附上解决方案。 打开手机的wifi-->连接校园网然后进入设置-->在隐私选项选择“使用设备MAC” 如下图,问题解决了!如果想知道原理的可以继续往…

RN开发搬砖经验之-Android平台下处理后退按钮事件

基本接口 利用RN 针对Android平台提供的接口 BackHandler BackHandler需要区分类组件跟函数组件的场景,主要是两个组件一个基于组件生命周期的,一个是基于hook的,即注册BackHandler的事件监听与移除时机写法不同。 类组件 示例代码 impor…

24/03/05总结

easyx: #include "iostream" #include "easyx.h" #include "cstdio" using namespace std; int main() {initgraph(800, 600);setorigin(400, 300);setaspectratio(1, -1);//绘制多边形:polygon(const POINT *points,int num);//points 是一个P…

Python从0到100(二):Python语言介绍及第一个Pyhon程序

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

输出X^N对233333取模的结果。

对任意正整数N&#xff0c;求XN%233333的值。 要求运算的时间复杂度为O(logN)。 例如X30 X15*X15X15X7*X7*XX7X3*X3*XX3X*X*X共7次乘法运算完毕。输入输出格式 输入描述: 输入两个整数X和N&#xff0c;用空格隔开&#xff0c;其中X,N<10^9。 输出描述: 输出X^N对233333取模…

【排序】详解选择排序

一、思想 选择排序的原理与思想非常直观和简单&#xff0c;它通过不断地选择未排序部分的最小&#xff08;或最大&#xff09;元素&#xff0c;并将其放到已排序部分的末尾来实现排序。 具体来说&#xff0c;选择排序的过程可以分解为以下几个步骤&#xff1a; 寻找最小&…

Android m/mm/mmm/make编译模块

一.编译成模块的前置条件 Android编译环境初始化完成后&#xff0c;我们就可以用m/mm/mmm/make命令编译源代码了。lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样&#xff0c;m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数…

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 &#xff08;一&#xff09;安全技术 &#xff08;二&#xff09;防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 &#xff08;一&#xff09;Netfilter &#xff08;二&#xff09;防火墙工具…

OSPF 完全stub区域实验简述

1、OSPF 完全stub区域配置 为解决末端区域维护过大LSDB带来的问题&#xff0c;通过配置stub no-summary 完全stub,仅支持1类、2类LSA&#xff0c;ABR产生1条3类默认路由。 实验拓扑图 r1: sys sysname r1 undo info enable int loopb 0 ip add 1.1.1.1 32 quit int e0/0/0 ip …

Java ElasticSearch面试题

Java ES-ElasticSearch面试题 前言1、ElasticSearch是什么&#xff1f;2. 说说你们公司ES的集群架构&#xff0c;索引数据大小&#xff0c;分片有多少 &#xff1f;3. ES的倒排索引是什么&#xff1f;4. ES是如何实现 master 选举的?5. 描述一下 ES索引文档的过程&#xff1a;…

Spring Bean装配精解:探索自动化与显式配置之道

作为一名对技术充满热情的学习者&#xff0c;我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代&#xff0c;我远非专家&#xff0c;而是一位不断追求进步的旅行者。通过这篇博客&#xff0c;我想分享我在某个领域的学习经验&#xff0c;与大家共同探讨、共…

GEE入门篇|图像分类(一):监督分类

在遥感中&#xff0c;图像分类是尝试将图像中的所有像素分类为有限数量的标记土地覆盖和/或土地利用类别。 生成的分类图像是从原始图像导出的简化专题图&#xff08;图 1&#xff09;&#xff0c; 土地覆盖和土地利用信息对于许多环境和社会经济应用至关重要&#xff0c;包括自…

boss app sig及sp参数,魔改base64(下)

本章所有样本及资料均上传123云盘,需要复刻的自行下载. boss官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 boss app sig及sp参数,魔改base64(上)_app 魔改base64-CSDN博客 上篇boss分析sig的地址在上面了,把这个sp分析完后再把响应解密分析完就可以对boss的招聘数据…

雷卯推荐电磁兼容保护器件-MOV压敏电阻

一&#xff0e;雷卯MOV产品表格部分展示 一&#xff0e;雷卯MOV产品表格部分展示 三、MOV概述 MOV是金属氧化物压敏电阻器&#xff08;Metal Oxide Varistor&#xff09;的缩写。它是一种电子元器件&#xff0c;通常用于保护电路中的电子设备不受过电压的损害。当电路中电压超…

SwiftUI中的边框、圆角、阴影与渐变色的应用

在SwiftUI中&#xff0c;可以使用边框、圆角、阴影和渐变色来增强视图的外观和风格。 边框&#xff1a; 可以通过在视图上应用边框样式来创建边框效果。使用border()修饰符&#xff0c;并指定边框的颜色、线条宽度和圆角半径&#xff0c;例如&#xff1a; Text("Hello, …

【中国算力大会主办】2024算法、高性能计算与人工智能国际学术会议(AHPCAI 2024)

【中国算力大会主办】2024算法、高性能计算与人工智能国际学术会议&#xff08;AHPCAI 2024&#xff09; 2024 International Conference on Algorithms, High Performance Computing and Artificial Intelligence 2024算法、高性能计算与人工智能国际学术会议&#xff08;AH…

【千字总结】爬虫学习指南-2024最新版

介绍 如何自学爬虫&#xff1f;今天有一个兄弟这样问我&#xff0c;可以看到打了很多字&#xff0c;诚意肯定是很足的&#xff0c;也是对我的内容给予了肯定&#xff0c;让我非常的开心。既然难得有人问我&#xff0c;那我一定要好好做一个回答。 我下面将要说的内容没有任何话…

Unity 刚体组件的碰撞与触发器

添加刚体组件 给球体添加刚体组件&#xff0c;将脚本挂载到上面。 以下效果为&#xff1a;当球体落到平面上会消失。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {void Start(){}void Update(){}// 开…

基于遗传优化的协同过滤推荐算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 最后得到推荐的商品ID号&#xff1a; 推荐商品的ID号&#xff1a;ans 9838175822191114902149021235224732230712349911790154716550165501655011…

游泳耳机品牌排行榜前十名:10大口碑产品力荐!

在现代快节奏的生活中&#xff0c;游泳已经成为许多人放松身心、保持健康的重要方式。而伴随着游泳&#xff0c;一款优秀的游泳耳机则成为了许多游泳爱好者不可或缺的装备之一。它不仅能让你在游泳时享受音乐、广播或是专注训练&#xff0c;还能让整个游泳过程更加愉悦、充满动…