`
275553385
  • 浏览: 721684 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
文章分类
社区版块
存档分类
最新评论

转载 linux内存利用率很高的原因

阅读更多
转载 http://yinqiongjie.blog.163.com/blog/static/56197620098510402233/

linux 机子新装内存used偏高...
往往给出这样的结果,怀疑内存用了90%:
Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached

这样怀疑很普遍,因为很多人用惯了Windows。Windows下,可以使用任务管理器查看当前进程对于内存的消耗情况。在我看来,Windows物理内存总是留下一定的空间,就算此时物理内存有空闲时,也会让某些程序去使用虚拟内存,目的是在Windows下启动新程序时,直接分配空闲的物理内存,这样子新程序启动速度就较快,而Linux则不然。

而在Linux下,使用top命令看到内存占用情况:

Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffers
Swap: 2650684k total, 80k used, 2650604k free, 3006404k cached


这里的结果显示使用了3.8G的used,占用率达到90%。看看free的结果你还可以对比一下:
$ free -m
total used free shared buffers cached
Mem: 4049 3784 265 0 208 2939
-/+ buffers/cache: 636 3413
Swap: 2588 0 2588

虽然MEM显示了3.7G左右的used,但是(-/+ buffers/cache)减去buffers和cache的结果可以看到,当前进程实际占用内存是636M,而可用空闲(free)内存为3.4G。


可以这么理解:在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。

如上面的例子:使用了4G的内存,3.7G被占用,但是buuffer和cached部分作为缓存,可以使用命中率的方式提高使用效率,而且这部分缓存是根据指令随时可以释放的,我们可以认为这部分内存没有实际被使用,也可以认为它是空闲的。

因此查看目前进程正在实际被使用的内存,是used-(buffers+cache),也可以认为如果swap没有大量使用,mem还是够用的,只有mem被当前进程实际占用完(没有了buffers和cache),才会使用到swap的。
分享到:
评论

相关推荐

    php监控linux流量,cpu利用率,磁盘利用率,内存利用率

    本项目专注于监控Linux系统的四个关键指标:流量、CPU利用率、磁盘利用率和内存利用率。下面将详细介绍如何实现这一目标,并提供相关知识点。 首先,我们要理解这四个指标的重要性: 1. **Linux流量**:网络流量...

    linux下内存池实现

    3. 提高内存利用率:通过预先分配和重复使用内存,减少了内存碎片和内存浪费。 然而,内存池也有其局限性,比如不适合大块内存的分配,且内存池一旦创建,大小就固定了,不便于动态扩展。因此,在实际应用中,需要...

    Linux下获得CPU利用率和内存使用情况

    "Linux系统中获得CPU利用率和内存使用情况" 知识点: 1.Linux系统中的/proc目录:Linux系统中的/proc目录是一个虚拟文件系统,提供了对系统硬件和软件的信息。在这个目录中,我们可以找到关于系统的各种信息,如...

    基于CPU和内存利用率的负载均衡算法的研究.pdf

    "基于CPU和内存利用率的负载均衡算法的研究" 基于CPU和内存利用率的负载均衡算法的研究.pdf文章旨在解决当前采用的最少连接数算法无法解决因不同业务请求消耗资源差异大而导致的平均响应时间长的问题。作者提出了CM...

    linux c程序获取cpu使用率及内存使用情况

    linux c程序获取cpu使用率及内存使用情况

    linux cpu使用率,内存使用率 api

    linux下c/c++ 实现cpu使用率查询,内存使用率查询,当个程序使用查询 主要应用/proc/stat /proc/meminfo /proc/pid/stat /proc/pid/status 等文件中的内容进行计算

    提高内存使用率的shell脚本

    提高内存使用率的脚本

    Linux下CPU利用率-参考top命令.htm

    Linux下CPU利用率-参考top命令.htm

    linux cpu利用率和使用情况

    总的来说,理解Linux下的CPU利用率和使用情况,以及如何通过`mytop`等工具进行监控,对于系统管理员和开发者来说是至关重要的技能。这不仅可以确保系统的稳定运行,还能提高资源效率,优化应用程序性能。在实际操作...

    提高cpu和内存的使用率的资源文件

    描述中提到的“用来占用CPU内存使用率的脚本”可能包含了若干用于模拟高负载场景的脚本,这些脚本对于测试系统的极限性能、调试内存泄漏问题或者验证系统在压力下的响应能力非常有用。下面我们将深入探讨相关的Linux...

    自定义cpu 内存利用率

    内存利用率则是指系统当前使用的内存与总内存的比率,过高可能导致系统响应变慢,过低则可能意味着资源浪费。 要手动控制CPU利用率,可以通过以下几种方式: 1. **调整进程优先级**:操作系统通常允许用户调整进程...

    如何查看 Linux 下内存占用率、 CPU 的占用率.docx

    ### 如何查看 Linux 下内存占用率 #### 方法-1:使用 `free` 和 `awk` 为了查看Linux系统中的内存占用情况,一种常用的方法是结合使用`free`和`awk`这两个强大的命令。具体步骤如下: 1. **运行 `free -t` 命令**...

    linux下内存数据库

    总结来说,Linux下的内存数据库利用哈希表提供高效的数据操作,而哈希表的设计和优化是提高性能的关键。Linux内核中的哈希表实现包括了哈希函数的选择、碰撞处理策略以及内存管理机制,这些都是理解和优化内存数据库...

    Linux下内存管理技术.pdf

    Linux操作系统中的内存管理是系统开发的关键部分,对于优化性能和资源利用率至关重要。本文主要探讨了在Linux环境下管理和监控内存的一些工具和技术。 首先,`free`命令是Linux中用于查看内存使用情况的基本工具。...

    SNMP查看CPU及内存使用率

    本文将详细探讨如何通过SNMP协议读取远程计算机的实时性能参数,特别是CPU利用率和内存使用情况。 #### SNMP基础知识 SNMP的核心组件包括网络管理系统(NMS,Network Management System)、代理(Agent)和管理...

    cpu利用率过高,内存溢出分析

    在IT领域,CPU利用率过高和内存溢出是两个常见的性能问题,它们可能严重影响系统的稳定性和效率。本篇文章将深入探讨这两个问题,同时提及一个名为"ProblemDiagnosticsLabToolkit.ear"的工具,它可能用于诊断和解决...

    Linux内存管理--Linux物理内存三级架构.pdf

    Linux内存管理是操作系统管理计算机内存资源的重要组成部分,它涉及到内存的分配、回收以及效率优化等多方面的技术。Linux内存管理采用的是一种三级架构模型,包括内存节点(node)、内存区域(zone)和物理页框(page)。...

    解决 linux 下 buffcache 占用过高的问题.docx

    在标题和描述中提到的问题,即"Linux下buff/cache占用过高",这是一个常见的系统性能优化问题,尤其是对于运行Java应用或者其他资源密集型服务的云服务器而言。这里我们将深入探讨buff/cache的作用、为何会占用过多...

Global site tag (gtag.js) - Google Analytics