首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux释疑:物理内存占用80%以上,正常吗?

Linux 系统(比如 CentOS/RadHat、Debian/Ubuntu)上配置 lnmp环境,通过探针查看物理内存使用率: 当然,也可以使用 top 命令查看: 从上面的图片可以看出 物理内存...Linux 特性: 充分利用物理内存,加快数据访问 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。...主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。...而Windows 是只在需要内存时,才为应用程序分配内存,并不能充分利用容量的内存空间。...Linux 的这一特性,主要是利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。 页高速缓存(cache)是 Linux内核实现的一种主要磁盘缓存。

4.9K10

Linux-Memory小记

——————————————-1.参数含义———————————————————————– Mem:表示物理内存统计 total: 表示系统总物理内存5993156kb(约5852M) used...与cache和未被分配的内存之和,这就是系统当前实际可能内存(所以一般linux机器看可用内存就看此值) Swap: 表示硬盘上交换分区的使用情况。...只有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap。...需要内存时为什么cache里面的没能释放? cache 中有程序在占用就无法释放了。 3.有时候free太小,cached特别时启动mysql会报错,这个是什么原因?...这说明内存确实不够,cached并不是全部可以释放的,有程序占用就不能释放了 4.我的Linux上cache占满RAM时系统非常慢,系统也不自动释放cache。

51720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文解释Linux内存Swap、Cache、Buffer

    通过free命令看Linux内存total:总内存大小。used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。free:空闲的内存大小。...设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。...常见症状症状一:在Linux中频繁存取文件,物理内存很快用光,而cached一直在增长。...解释:Linux会对每次请求过的数据缓存在cache里,好处就是CPU的处理速度远远高于内存,所以在CPU和内存通讯的时候可以快速从cache中命中结果返回。症状二:Swap占用。...;echo 0 >/proc/sys/vm/drop_caches --> 改回默认值总结通过上面的分析可以知道,当空闲物理内存不多时,不一定表示系统运行状态很差,因为内存的cache及buffer部分可以随时被重用

    2K20

    谁再说搞不懂 Linux内存Swap、Cache、Buffer,就把这个给他扔过去!

    通过free命令看Linux内存 total:总内存大小。 used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。 free:空闲的内存大小。...设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。...常见症状 症状一:在Linux中频繁存取文件,物理内存很快用光,而cached一直在增长。...解释:Linux会对每次请求过的数据缓存在cache里,好处就是CPU的处理速度远远高于内存,所以在CPU和内存通讯的时候可以快速从cache中命中结果返回。 症状二:Swap占用。...; echo 0 >/proc/sys/vm/drop_caches --> 改回默认值 总结 通过上面的分析可以知道,当空闲物理内存不多时,不一定表示系统运行状态很差,因为内存的cache及buffer

    54530

    Linux内存Swap、Cache、Buffer详细解析

    1、通过free命令看Linux内存 ? total:总内存大小。 used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。 free:空闲的内存大小。...设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。...3、常见症状 症状一:在Linux中频繁存取文件,物理内存很快用光,而cached一直在增长。...解释:Linux会对每次请求过的数据缓存在cache里,好处就是CPU的处理速度远远高于内存,所以在CPU和内存通讯的时候可以快速从cache中命中结果返回。 症状二:Swap占用。...执行echo 1、2、3 至 /proc/sys/vm/drop_caches, 达到不同的清理目的. 5、总结 通过上面的分析可以知道,当空闲物理内存不多时,不一定表示系统运行状态很差,因为内存的cache

    3.3K20

    虚拟内存详解

    当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。 当用户提交程序,然后产生进程在机器上运行。...内存swap之间是按照内存页为单位来交换数据的,一般Linux中页的大小设置为4Kb。而内存与磁盘则是按照块来交换数据的。...当物理内存使用完或者达到一定比例之后,我们可以使用swap做临时的内存使用。当物理内存swap都被使用完那么就会出错,如:out of memory。...具体可以查看为什么linux下多线程程序如此消耗虚拟内存。 而真实占用物理内存要看RES(resident)列,这一列的值才是真正被映射到物理内存的大小。...在Linux系统中,启动一个程序,他占用内存假设是1G,但是运行一段时间后,使用top查看进行信息,你会发现它的内存只剩几十M了,这是因为内存不足,他的内存swap走了。

    3.7K10

    LMDB笔记_pdf怎么做笔记

    物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到Swap中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到Swap。...swap清理:swapoff -a && swapon -a 注意:这样清理有个前提条件,空闲的内存必须比已经使用的swap空间。...虚拟内存swap分区的关系 首先,这两个概念分别对应windows和linux,即: windows:虚拟内存 linuxswap分区 windows即使物理内存没有用完也会去用到虚拟内存,而Linux...不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区) swap类似于windows的虚拟内存,不同之处在于,Windows可以设置在windows的任何盘符下面,默认是在C盘,...而linux则是独立占用一个分区,方便由于内存需求不够的情况下,把一部分内容放在swap分区里,待内存有空余的情况下再继续执行,也称之为交换分区,交换空间是其中的部分 windows的虚拟内存是电脑自动设置的

    69030

    谈谈 Linux 假死现象

    你可以尝试 Fork 很多进程,系统会变得很慢,但是 SSH 通常还是能连上去的;你可以尝试分配很多内存,但是内存多到一定程度 Linux 的 OOM 机制的 Killer 进程就会杀掉你的进程,来保证其它服务能正常工作...也就是说,当主进程不停 Fork 的时候,很快会把系统的物理内存用完。当物理内存不足时候,系统会开始使用 Swap。那么当 Swap 不足时会触发 OOM 机制的 Killer 进程来杀掉多余进程。...当 OOM 机制的 Killer 进程杀掉了子进程,主进程会立刻 Fork 新的子进程,并再次导致内存用完并再次触发 OOM 机制的 Killer 进程杀掉子进程,于是就进入死循环。...这是由于 Ping 是在 Linux 系统底层 ( Kernel )处理的,并没有参与进程调度。而 SSHD 是要参与进程调度,但是优先级 OOM 机制的 Killer 进程高。...Linux 出现假死现象,我们应该怎么办为什么要费那么的力气把服务器搞死呢?我们知道假死是怎么产生的即可,这样可以针对假死的原因进行预防。

    7.3K20

    性能测试必备知识(10)- Linux 是怎么管理内存的?

    为什么会有内存映射 既然每个进程都有一个这么的地址空间,那么所有进程的虚拟内存加起来,自然要比实际的物理内存大得多 所以,并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存...页表实际上存储在 CPU 的内存管理单元 MMU 中 正常情况下,处理器就可以直接通过硬件,找出要访问的内存 在页表的映射下,进程就可以通过虚拟地址来访问物理内存了 灵魂拷问 么具体到 一个 Linux...,在应用程序用完内存后,还需要调用 或 unmap() ,来释放这些不用的内存 free() 回收 系统不会任由某个进程用完所有内存,在发现内存紧张时,系统就会通过一系列机制来回收内存 回收缓存:比如使用...Memory),直接杀掉占用大量内存的进程 回收不常访问的内存 会用到交换分区(以下简称 SwapSwap 其实就是把一块磁盘空间当成内存来用 它可以把进程暂时不用的数据存储到磁盘中(这个过程称为换出...),当进程访问这些内存时,再从磁盘读取这些数据到内存中(这个过程称为换入) 通常只在内存不足时, 才会发生 Swap 交换 优点:Swap 把系统的可用内存变大了 缺点:由于磁盘读写的速度远比内存慢,所以

    1.9K30

    Linux内存buffer和cache的区别

    Linux内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快...在Linux内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快...有关linux内存机制参考: (adsbygoogle = window.adsbygoogle || []).push({}); Linux 内存机制 Mem:表示物理内存统计。...-/+ buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap。...在Free命令中显示的buffer和cache,它们都是占用内存: buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。

    4K30

    开发应该知道的Linux系统分析-内存

    Mem:表示物理内存统计 buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的使用情况.只有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到...swap Mem 行(第一行)数据说明: Total:单位kb 表示物理内存总大小....在linux内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用内存用来做缓存使用,对于开启过的程序、或是读取刚存取过的数据会比较快...swap空间被利用恰恰说明了Linux内存使用的合理性,并不能表示内存出现了瓶颈对Swap空间的换入换出的速率是表征内存出现瓶颈的重要标志。...很少的swap且这时如果空闲物理内存很少是一个很好的信号;说明充分利用了内存缓存,虽然内存现在不是很贵,当然能用加机器解决的问题也不是什么问题,但是“能省则省”,不要加“无用的”内存

    1.1K20

    全志V853芯片swap功能简介与tina上swap分区使用方法

    系统没有swap分区的时候,依旧会进行swap操作,swap操作不一定会操作到swap分区。 2、swap分区介绍 linux系统支持各种块设备、文件作为swap分区,且容量可以叠加。...小知识 1、swap分区没有被用完,为什么依旧会oom 内核触发kswapd进行内存回收时,会对匿名页和文件页进行回收(有更多仲裁方法,不展开叙述),其中文件页的回收方法是清除缓存的文件内容,并不需要回写...所以当你内存临界,且在系统仲裁下已经没有可以回收的匿名页时,尽管swap分区没有用完,依旧会触发oom。...2、CPU占用率和内存的取舍 /proc/sys/vm/swappiness节点描述系统对swap分区的使用原则,0表示最大限度使用物理内存,100表示最大限度使用swap分区。...在内存紧张的情况下,可以使用swap分区,但是频繁使用swap分区必然导致CPU占用率的升高,此时可以通过调节swappiness节点来对CPU占用率和内存进行平衡。

    12510

    一文看懂 | 内存交换机制

    本文基于 Linux-2.4.16 内核版本 由于计算机的物理内存是有限的, 而进程对内存的使用是不确定的, 所以物理内存总有用完的可能性....那么当系统的物理内存不足时, Linux内核使用什么方案来避免申请不到物理内存这个问题呢?...相对于内存来说, 磁盘的容量是非常的, 所以Linux内核实现了一个叫 内存交换 的功能 -- 把某些进程的一些暂时用不到的内存页保存到磁盘中, 然后把物理内存页分配给更紧急的用户使用, 当进程用到时再从磁盘读回到内存中即可...LRU算法 内存交换 过程首先是找到一个合适的用户进程内存管理结构,然后把进程占用内存页交换到磁盘中,并断开虚拟内存物理内存的映射,最后释放进程占用内存页。...这是因为Linux希望内存页交换过程慢慢进行, Linux内核有个内核线程 kswapd 会定时检查系统的空闲内存页是否紧缺, 如果系统的空闲内存页紧缺时时, 就会选择一些用户进程把其占用内存页添加到活跃链表中并断开进程与此内存页的映射关系

    1.1K30

    主动GC,需要吗

    %vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比 SWAP 可以看到大量的pgin,这儿就不得不再普及一下linuxswap Linux divides...这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。...这样,系统总是在物理内存不够时,才进行Swap交换。...swap vs 虚拟内存 windows:虚拟内存 linuxswap分区 windows即使物理内存没有用完也会去用到虚拟内存,而Linux不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存...而linux则是独立占用一个分区,方便由于内存需求不够的情况下,把一部分内容放在swap分区里,待内存有空余的情况下再继续执行,也称之为交换分区,交换空间是其中的部分 windows的虚拟内存是电脑自动设置的

    51420

    Centos7中添加、删除Swap交换分区的方法

    Swap介绍: Linux物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。...物理内存和交换空间的总大小是可用的虚拟内存的总量。 Swap即:交换分区,类似于Windows的虚拟内存,但物理内存不足时,把部分硬盘空间当成虚拟内存使用,从而解决了物理内存容量不足。...例如,Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。...因此Swap空间的分配是很重要的,通常Swap空间的大小应是物理内存的2-2.5倍....现在再用free -m命令查看一下内存swap分区大小,就发现增加了512M的空间了。 ? 注意当计算机重启了以后,发现swap还是原来那么,新的swap没有自动启动,还要手动启动。

    8.5K44

    Linux之《荒岛余生》(三)内存

    排查内存的一些命令 内存分两部分,物理内存swap物理内存问题主要是内存泄漏,而swap的问题主要是用了swap~,我们先上一点命令。...sar -r #显示内存每个区的详情 cat /proc/meminfo #查看slab区使用情况 slabtop 通常,通过查看物理内存占用,你发现不了多少问题,顶多发现那个进程占用内存高(比如vim...内存特别的时候,会涉及到hugepage,在某些时候,是进行性能优化的杀手锏,比如优化redis (THP,注意理解透彻前不要妄动) 物理内存的可用空间是有限的,所以逻辑内存映射一部分地址到硬盘上,以便获取更大的物理内存地址...swap是很多性能场景的万恶之源,建议禁用 像top展示的字段,RES才是真正的物理内存占用(不包括swap,ps命令里叫RSS)。在java中,代表了堆内+堆外内存的总和。...为了能看到发生的时间,我们习惯性加上参数T dmesg -T 由于linux系统采用的是虚拟内存,进程的代码,库,堆和栈的使用都会消耗内存,但是申请出来的内存,只要真正access过,是不算的,因为没有真正为之分配物理页面

    1.2K20

    kswapd0进程占用大量cpu

    vim /proc/sys/vm/swappiness # 修改vm.swappiness 值 越小使用swap越小尽量会使用物理内存默认值60根据需求修改即可 # 重新启用所有已定义的交换空间 # 也可以说是清理...(Tip:相信我,我不是故意忘记截图的) 缓存机制介绍 Linux 中的缓存机制是指操作系统使用物理内存的一部分来存储最近访问的数据的一种机制。...Swap 缓存​: Swap 缓存是指将内存中不常用的数据移动到交换空间(硬盘)中的一种机制。虽然不严格属于缓存,但它是 Linux 系统用来扩展虚拟内存的一种方式。...当物理内存不足时,内核会试图释放缓存区(buffers/cache)里长时间不用的程序,并将其放入 Swap 空间中。...swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

    50510

    Linux内存机制以及手动释放swap内存

    其实,这并不奇怪,例如,一个占用很大内存的进程运行时,需 要耗费很多内存资源,此时就会有一些不常用页面文件被交换到虚拟内存中,但后来这个占用很多内存资源的进程结束并释放了很多内存时,刚才被交换出去的页面...二、linux什么时候开始使用虚拟内存swap)? A....通常情况下: swap分区设置建议是内存的两倍 (内存小于等于4G时),如果内存大于4G,swap只要比内存就行。另外尽量的将swappiness调低,这样系统的性能会更好。...设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。...这里你可以这么理解,当我将这个buffer_pool_size设置得过大,跟操作系统内存一样的时候,我使用mysql,会在一段时间内调用大量的数据进内存,由于linux内存机制,再根据最近最优的原则

    7K41

    MySQL如何避免使用swap

    Linux有很多很好的内存、IO调度机制,但是并不会适用于所有场景。 对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上。...首先我们要了解点基础的东西,比如说为什么会产生swap。假设我们的物理内存是16G,swap是4G。...如果MySQL本身已经占用了12G物理内存,而同时其他程序或者系统模块又需要6G内存,这时候操作系统就可能把MySQL所拥有的一部分地址空间映射到swap上去。...在内存紧张的情况下,数值越低越倾向于释放文件系统cache。 当然,这个参数只能减少使用swap的概率,并不能避免Linux使用swap。...还有一个比较复杂的方法,指定MySQL使用内存(Large Page)。Linux上的内存是不会被换出物理内存的,和memlock有异曲同工之妙。

    2.2K40

    在C中,如何知道动态分配是否成功

    执行“malloc(x)”与占用 x 字节的物理内存不同。因此,依靠 malloc 确定分配是否成功是一个困难的问题。只有在写入和读取新分配的内存时才能发现。...即使在程序开始时分配了所有内容,仍然可能会耗尽内存......这是不可预测的。 ---- Linux的OOM 程序很可能在 Linux 上被 OOM 杀死了。...这就是为什么您要确保有足够的Swap分区来应对最坏的情况。使用Swap分区不是因为实际使用它,而是为了能够保证在最坏的情况发生时有足够的内存可用。在正常情况下,永远不应该真正使用Swap分区。...对于使用它们的每个进程,共享库可能会同时计入实内存和虚拟内存中,即使它们占用相同页面的只读或写时复制内存,并且内存映射文件可能会被全部计入在虚拟内存中,即使只有一小部分文件被读取,并且在 Linux 上...没有Swap意味着只能使用驱动磁盘文件支持的页面。在内存争用期间,这可能会导致抖动。在“正常”操作期间,它会降低性能。仅在内存用完时才使用Swap分区,是一个非常普遍的误解。

    2.7K20
    领券