`
275553385
  • 浏览: 736642 次
  • 性别: 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目录是一个虚拟文件系统,提供了对系统硬件和软件的信息。在这个目录中,我们可以找到关于系统的各种信息,如...

    go读取Linux下cpu占用率、cpu温度、内存占用率及磁盘占用率

    在Go语言中,读取Linux系统的CPU占用率、CPU温度、内存占用率以及磁盘占用率涉及到了系统监控和性能分析。以下将详细介绍如何利用Go实现这些功能。 1. **CPU占用率** CPU占用率是指CPU在单位时间内用于执行用户...

    基于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 等文件中的内容进行计算

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

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

    linux cpu利用率和使用情况

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

    自定义cpu 内存利用率

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

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

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

    Linux内存管理详解.ppt

    为了解决这个问题,Linux引入了SLAB、SLUB和SLOB分配器,它们能够在同一页面内独立分配小块内存,从而减少了内部碎片,提高了内存利用率。 Linux内存管理层次关系图进一步揭示了内存管理的复杂性。伙伴系统是基础,...

    linux下内存数据库

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

    Linux计算CPU利用率

    在Linux环境下,CPU的利用率主要分为以下几个状态:用户态(User)、系统态(System)、空闲态(Idle)。这些状态可以帮助我们理解CPU是如何被利用的,以及系统性能的瓶颈可能出现在哪里。 - **用户时间(User time...

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

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

    嵌入式Linux内存与性能详解

    嵌入式Linux系统在各种设备和应用中广泛使用,其...通过学习《嵌入式Linux内存与性能详解》,开发者可以更好地理解和掌握嵌入式Linux环境下的内存管理技术,从而提升系统效率和稳定性,满足各类嵌入式设备的严格要求。

    linux内存管理.pdf

    前者专注于物理内存的高效利用,后者则侧重于线性地址到物理地址的精确转换,充分利用了Intel x86架构的分页特性。 #### 物理页面管理的关键函数 在物理页面管理领域,实验中需实现以下关键函数: - `boot_alloc...

    linux获取cpu、磁盘、内存占用率代码

    linux获取cpu、磁盘、内存占用率代码

    深入理解Linux虚拟内存管理.rar

    Linux虚拟内存管理是操作系统核心的重要组成部分,它负责为应用程序提供比物理内存更大的地址空间,并有效地管理物理内存资源。本资料“深入理解Linux虚拟内存管理”旨在帮助读者深入了解这一复杂的系统机制,包括...

    qt 获取磁盘空间大小,cpu利用率,内存使用率

    1:封装成一个类,直接调用即可。...3:linux下CPU占用率的计算非常准确,支持多核。 4:硬盘容量计算极速。进度条显示占用比例。 5:多彩数码管实时显示当前时间。 6:自定义颜色下拉框,选择即可看到效果。

Global site tag (gtag.js) - Google Analytics