因为过两天就放假回家过年了,现在没什么心思去做其他的事,就把服务器的参数检查了一下,执行 free -m命令时发现当前可用内存很小,如下图:
然而我的服务器只装了一个oracle,只是作为数据库服务器,没有其他应用,内存使用率这么高不科学啊,于是到网上查看了相关的文章,这才知道我一直被linux“欺骗”了,原来linux的内存管理机制与windows的有所不同。linux的内存管理机制的思想为了保证内存利用率最大化,内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。
直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。
实际上linux可用内存=free+cached+buffers ,而不仅仅是free那一部分!
相关推荐
本文将介绍Linux内存管理的基本概念,特别是关于缓存的使用以及如何简单计算内存使用情况。 首先,Linux的核心理念是充分利用内存资源,即使在没有活跃进程时,也会将内存用于缓存文件系统数据,包括缓冲区...
在实际的Linux内核代码中,这些定义通常位于asm/page.h头文件中,它们是虚拟内存管理的基础,被内核广泛使用。 内存管理涉及的知识点非常广泛,包括但不限于内存分配策略、内存回收机制、交换空间(swap)的使用以及...
Linux操作系统的内存管理机制旨在解决进程需要使用的代码和数据都放在内存中,比放在外存中要快很多的问题。为了解决这个问题,Linux操作系统提出了虚拟内存的概念,使得每个进程用于3GB的独立用户内存空间和共享的...
在Qt中,同样可以使用QFile和QTextStream来读取,然后提取出如总内存(MemTotal)、可用内存(MemAvailable)等字段,计算出内存使用率。 3. 网络收发速度: 网络收发速度可以通过查询/proc/net/dev文件获取。该...
"Linux内存性能测试工具stream"是一个专门用于评估计算机内存(RAM)性能的工具。本文将深入探讨STREAM的作用、工作原理以及如何在Linux环境中使用它。 STREAM,全称是“Simple Triad Memory Benchmark”,是由John...
2. 优化:避免不必要的全局变量,合理使用内存分配和释放,减少内存碎片。 总结,Linux虚拟内存管理是系统高效运行的关键,涉及地址映射、页面置换、内存分配等多个方面。理解和掌握这些知识点对于Linux系统管理员...
### 查看Linux系统内存使用情况 #### 一、Free 命令详解 在Linux操作系统中,`free` 命令是一个非常重要的工具,用于查看系统的内存使用情况。通过这个命令,我们可以了解到系统内存的总体使用状况,包括总内存、...
### Linux内核内存屏障知识点详解 #### 一、内存访问抽象模型 在现代计算机系统中,内存访问操作可能会出现乱序...通过正确地使用内存屏障,可以有效地解决内存访问乱序带来的问题,从而确保系统的稳定性和可靠性。
Linux 查看内存使用率详解 在 Linux 系统中,查看内存使用率是非常重要的,了解系统中的内存使用情况可以帮助我们更好地对系统进行优化和配置。下面我们将详细介绍如何使用 top 和 free 命令来查看系统中的内存使用...
Linux 内存管理源代码导读 Linux 内存管理是操作系统中最重要的组件之一,它负责管理计算机的内存资源,确保系统的正确运行。在 Linux 操作系统中,内存管理是通过页框管理、Slab 算法和动态存储器管理来实现的。 ...
针对“嵌入式Linux 内存使用与优化”这一主题,我们可以深入探讨以下几个关键知识点: 1. **内存类型**: - **RAM(随机访问存储器)**:包括DRAM和SRAM,用于临时存储运行中的数据和程序,是系统运行速度的关键...
7. 内存压缩:为了进一步优化内存使用,Linux内核可以将内存页进行压缩,当需要时再解压。这种方法在物理内存紧张时能有效保存更多数据。 8. OOM(Out-Of-Memory)杀手:当系统内存耗尽时,Linux会启动OOM killer,...
- **内存池**:为避免频繁的malloc/free操作,可以使用内存池预先分配一大块内存,按需分配小块内存,提高效率并减少碎片。 - **内存对齐**:为了满足处理器访问效率和数据结构完整性,内存分配时需要考虑对齐要求...
虚拟内存是Linux为了扩展可用内存而创建的一个抽象概念,它包括物理内存和交换空间的总和。 在Linux中,你可以通过以下命令来查看内存使用情况: 1. `free -h`:显示内存的总量、已用、空闲、缓存和共享内存的大小...
- 交换空间:当物理内存不足时,Linux会将部分内存内容写入磁盘的交换分区,腾出空间给其他进程使用。 - 虚拟内存使得每个进程都感觉拥有独占的内存,实际上它们共享物理内存。 3. **SLAB内存管理** - SLAB...
Linux内存管理笔记详细介绍了Linux操作系统内核中内存管理机制的关键知识点,下面将依次对这些知识点进行详细说明: 存储器的层次结构:计算机系统采用分层的存储子系统以在存储容量、访问速度、成本效益之间取得...
本文将详细介绍如何在Linux环境下使用共享内存,并解释相关的API函数及其使用方法。 #### 创建共享内存 为了使用共享内存,通常需要经历以下几个步骤: 1. **开辟共享内存**:通过`shmget()`函数来创建或获取共享...
- **表示启动内存图(Representing the Boot Map)**:使用位图或其他数据结构来表示可用内存区域。 - **初始化启动内存分配器(Initialising the Boot Memory Allocator)**:在系统启动早期阶段,初始化内存分配器...
linux下c/c++ 实现cpu使用率查询,内存使用率查询,当个程序使用查询 主要应用/proc/stat /proc/meminfo /proc/pid/stat /proc/pid/status 等文件中的内容进行计算