-
2020-07-29 21:09:52
Swap与Memory区别
对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。除此之外,内存的断电丢失数据也是一个原因说不能把所有数据和程序都保存在内存中。既然不能全部使用内存,那数据还有程序肯定不可能一直霸占在内存中。
当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是:踢到哪里去?这时候swap就出现了。swap全称为swap place,即交换区。当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。
一、Swap介绍
在详细介绍swap之前,我们需要知道的是计算机对内存分为物理内存与虚拟内存(注意虚拟内存和虚拟地址空间的区别)。物理内存就是计算机的实际内存大小,由RAM芯片组成的。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。这里的虚拟内存即所谓的swap。
当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。 内存与swap之间是按照内存页为单位来交换数据的,一般Linux中页的大小设置为4kb。而内存与磁盘则是按照块来交换数据的。二、Swap的设置
从上可以看出,当物理内存使用完或者达到一定比例之后,我们可以使用swap做临时的内存使用。当物理内存和swap都被使用完那么就会出错:“out of memory(内存不足)”。对于使用多大比例内存之后开始使用swap,在系统的配置文件中可以通过调整参数进行修改。
cat /proc/sys/vm/swappiness 60
该参数可以从0-100进行设置。0就是最大限度使用内存,尽量不使用swap;100就是积极使用swap。这个具体的通过系统的算法进行确定。
物理内存我们是无法更改的,所以swap的大小设置将会影响应用能否正常运行。
那么:swap大小如何确定?
根据centos官网介绍可以得出如下公式:
M = Amount of RAM in GB, and S = Amount of swap in GB, then If M < 2, S = M *2 Else S = M + 2。而且其最小不应该小于32M(never less than 32 MB.)。
swap分区的数量对性能也有很大的影响。因为swap毕竟还是以磁盘来伪装成内存,交换的操作是磁盘IO的操作而不是内存的load与store操作。如果有多个swap交换区,每个swap会有一定的优先级,该优先级也可以调整。swap空间的分配会以轮流的方式操作于所有的swap,这样会大大均衡IO的负载,加快swap交换的速度。
三、Swap相关命令
swapon/swapoff swap-disk_name:启动和关闭相应的swap_disk_name
swapon -s :可以查看当期swap的使用情况,也可以通过 cat /proc/swaps命令查看
更多相关内容 -
解析 free -m 命令及 buffer与cache区别与作用
2019-03-28 15:12:05[root@localhost ~]# free -m total used free shared buffers cached Mem: 7870 3974 3896 0 96 2798 -/+ buffers/cache: ...[root@localhost ~]# free -m
total used free shared buffers cached Mem: 7870 3974 3896 0 96 2798 -/+ buffers/cache: 1079 6791 Swap: 8191 30 8161
buffer定义:存储速度不同的设备间传输数据时候,慢的一方临时存放数据的一个缓冲区域----占用的物理内存空间。常用于磁盘跟内存间加载数据
cache定义:位于cpu跟内存之间的高速缓存,用于存储I/O的最小单元—块。
综上可以理解为:所以free -m 返回的结果就很好解释了
[root@localhost ~]# free -m***物理内存*** ***分配的内存*** ***未分配物理内存*** ***未用buffer*** ***未用cache*** total used free shared buffers cached Mem: 7870 3974 3896 0 96 2798 ***使用的缓存*** ***剩余可以使用的内存*** -/+ buffers/cache: 1079 6791 Swap: 8191 30 8161
以上比较重要的是,平时我们查看可用内存为剩余可使用内存=未用buffer + 未用cache +未分配物理内存
分配的内存=未用buffer+未用cache+使用的缓存
-
free -m 命令详解
2020-04-17 17:32:25free -m centos6显示:centos7显示:额外: centos6显示: 第一行: total1:表示物理,内存总量 used1:总计分配给缓存(包含Buffer和cache)使用的数量,但其中可能部分缓存并未实际使用 free1:未被分配的内存 ...free -m
centos6显示:
第一行:- total1:表示物理,内存总量
- used1:总计分配给缓存(包含Buffer和cache)使用的数量,但其中可能部分缓存并未实际使用
- free1:未被分配的内存
- shared1:共享内存,一般系统不会用到,这里也不讨论
- buffers1:系统分配但未被使用的buffers数量
- cached1:系统分配但未被使用的cache数量
第二行:
- used2:实际使用的buffers和cache总量,也是实际使用的内存总量
- free2:未被使用的Buffers和cache和未被分配的内存之和,这就是系统当前实际可用内存。
total=used1+free1
used1=used2+buffers1+cached1
free2=free1+buffers1+cached1
centos7显示:
total = used + free + buff/cache
available = free + buff/cache(部分)额外:
buff: 写 IO 缓存
cache: 读 IO 缓存
更多free相关信息链接:
centos6 free命令+buffer/cache说明
centos7 free命令+buffer/cache说明 -
free命令详解:内存使用与可用情况统计
2019-04-02 13:13:08free命令参数概括 free命令主要用于查看当前系统的物理内存使用情况,包含内存总量,已使用的内存和可使用的内存,如下: [xyz@linux ~]$ free -mh total used free shared buffers cached Mem: 5.7G 5.5G 19...free命令参数概括
-
free命令主要用于查看当前系统的物理内存使用情况,包含内存总量,已使用的内存和可使用的内存,如下:
[xyz@linux ~]$ free -mh total used free shared buffers cached Mem: 5.7G 5.5G 194M 228K 21M 1.5G -/+ buffers/cache: 4.0G 1.7G Swap: 4.0G 50M 4.0G
Mem:系统内存使用情况的全局描述
- total:系统的物理内存总量,total = used + free
- used:已使用的物理内存,used = shared + buffers + cached + (-/+ buffers/cache那栏的used)
- free:空闲的物理内存,即既没有被进程使用,也没有用作操作系统的buffers和cached。
- shared:共享内存用量,如存放共享库。
- buffers:用于缓冲操作系统的目录文件,inode的值,如使用ls命令查看大目录时,这个值会增加
- cached:用于操作系统页缓存,主要用于缓存已打开的文件。操作系统为了避免频繁的磁盘读写操作,会尽可能使用空闲的内存来缓存已打开的文件,即从磁盘读取出来的文件。如果频繁进行文件读写操作,则这个值会增大。
-/+ buffers/cache:进程的内存使用情况
- used:进程所使用的内存大小,由于Mem中的buffers和cached在内存不足时,即无法满足进程的内存使用需求时,可以被操作系统自动回收,所以实际的进程内存使用量为:Mem那栏的:used - buffers - cached,如上面的统计:5.5G - 1.5G - 21M 约等于 4G。
- free:可供进程使用的内存大小,由于buffers和cached均可以被自动回收,故实际进程可用的内存量为:Mem那栏的:free + buffers + cached,如上面统计:194M + 21M + 1.5G 约等于 1.7G。
- 所以在怀疑系统内存不足时,主要关注这里的used和free即可,如果该栏的free较大,则说明目前还有较多的可用内存,而不是关注Mem那栏的free。
Swap:交换分区的使用情况
- used:已使用的交换分区量。如果这个值比较大,一般是某个时刻内存不够用了,将大量内存的数据换出到交换分区。如果之后内存变为可用,将内容重新加载回了内存,这个值也不会马上变小,即该内容并没有被交换分区马上删除。这样做主要是为了在之后如果需要将该内容重新换出,由于交换分区还有,故不需要重新进行将该内容写出的操作,提供系统性能。
- free:可使用的交换分区量
-
-
Linux命令(1) - 查看内存使用情况: free -hm
2017-01-05 11:00:00使用"free -hm"命令查看linux服务器的内存使用状况,其中-h表示人性化显示,-m表示将内存显示为M: -
Linux之free命令
2021-05-14 16:15:34一、介绍free命令用于输出系统中空闲,已用的物理内存和虚拟内存(swap)、内核缓冲区二、使用方法语法:free [选项]选项:-k,-m,-g 以KB、MB、GB为存储单位对当前的内存使用情况输出-h 以人类可读的方式输出,在数字... -
由free命令引发的buff/cache思考
2021-01-14 20:49:321、free命令 free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 1.1 语法格式 Usage: free [options] Options: -b, --bytes show output in bytes -k, --kilo show output in... -
CentOS上free命令详解
2018-12-26 11:34:00转自:http://www.cnblogs.com/wayneiscoming/p/7865068.html 在CentOS6及以前的版本中,free命令输出是这样的: $free -m total used free shared buffers cached Mem: 1002 ... -
linux free 命令下free/available区别
2018-12-11 10:57:59例子 [root@VM_16_17_centos bin]# free total used free shared buff/cache available Mem: 1882892 785272 280428 40496 817192 852060 S... -
Linux free显示高内存使用率但top不显示
2021-05-14 01:17:09在RedHat Linux 6.2上,我正在运行free -m,它显示几乎所有8GB使用的total used free shared buffers cachedMem: 7989 7734 254 0 28 7128-/+ buffers/cache: ... -
Linux 性能调优内存篇:工具命令篇
2021-05-14 12:48:43系统内存freefree -mh第一列,total 是总内存大小;第二列,used 是已使用内存的大小,包含了共享内存;第三列,free 是未使用内存的大小;第四列,shared 是共享内存的大小;第五列,buff/cache 是缓冲区和缓存的... -
Linux中free命令起什么作用呢?
2021-05-14 15:48:03free命令功能:用于返回linux系统的物理内存和物理空闲内存还有交换内存及被内核使用的缓冲和缓存free命令的原理:通过查询/proc/meminfo文件而得到free命令的语法格式:free [参数]-----常用参数说明-------b:以Byte... -
linux/ubuntu下free查看内存占用大的解释
2013-02-26 11:58:04转: 大家看看我的内存占用情况: $ free -m total used free shared buffers cached Mem: 1908 1844 64 0 56 689 -/+ buffers/cache: 1098 ... -
docker启动,重启,关闭命令
2019-04-14 07:46:35docker启动命令,docker重启命令,docker关闭命令 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo servi... -
-bash:fork:Resourse Temporarily Unavailable
2013-03-04 10:01:587539380k free ,空闲内存大小 , 536336k buffers ,用作内核缓存的内存量 6 : Swap :交换区信息 7 : PID :进程 ID 8 : USER :进程所有者的用户名 9 : PR :优先级 10 : NI : nice 值。负值... -
Centos常用命令总结
2020-08-06 15:11:58[root@iZ8vb5ha9qczjmh83yzk6zZ ~]# uptime 11:34:55 up 1 day, 14:50, 1 user, load average: 0.00, 0.01, 0.00 显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息 4、free命令 free 用于... -
Docker无法正常启动的原因及解决办法
2019-03-07 16:22:17Docker 启动至少需要2G内存,首先执行free -mh命令查看剩余内存是否足够 直接查看内存 $free -mh total used free shared buff/cache available Mem: 15G 14G 627M 195M 636M 726M Swap: 0B 0B 0B1234 ... -
OC类的探索(三) - cache_t分析
2021-06-29 10:02:04// 根据oldCapacity回收oldBuckets void collect_free(bucket_t *oldBuckets, mask_t oldCapacity); public: // 开辟的总容量 unsigned capacity() const; // 获取buckets struct bucket_t *buckets() const; // ... -
关于 free 命令显示内存使用情况问题
2013-10-12 09:43:00http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2139751&page=1&authorid=7627362 转载于:https://www.cnblogs.com/dpsincs/p/3364701.html -
详解Linux中free命令,查看系统内存使用情况
2014-04-22 21:25:21点击打开链接 http://www.linuxintheshell.org/2012/06/05/episode-008-free-understanding-linux-memory-usage/ -
free 显示系统内存的使用情况
2021-05-23 14:50:37free命令 -
ECCV-2020- Ocean: Object-aware Anchor-free Tracking 阅读笔记
2021-12-13 09:39:22提出了一个anchor-free,直接回归gt中的每一个像素点位置的方案,这样在推理阶段即使只有很小的overlap,依然可以纠正那些不精确的预测结果。 回归网络的学习是通过四个信道数为256的3×3卷积层,然后是一个信道数... -
Linux基础命令(下)---其他命令du, df, top, free, pstack, su, sudo
2019-05-06 00:14:06例: df -mh (指的是以MB为单位显示当前目录所在的文件系统的磁盘空间使用情况) 输出结果说明: Filesystem:代表该文件系统是哪个分区,所以列出的是设备名称。 1K-blocks:说明下面的数字单位是1... -
Linux的free命令输出详解
2011-02-14 22:38:00[root@Linux /tmp]# free total used free shared buffers cached Mem: 255268 238332 16936 0 85540 126384 -/+ buffers/cache: 26408 228860 Swap: 265000 -
【SLAM】ubuntu16.04及ubuntu20.04编译ORB-SLAM3及运行EuRoC数据集
2020-10-11 23:10:55查看占用内存 $ free -m 若虚拟内存不足,编译提示virtual memory exhausted: Cannot allocate memory,则需增加Swap虚拟内存。 参考:https://blog.csdn.net/zzcchunter/article/details/83587881 三、EuRoC 数据集... -
ATXMEGA16A4U-CUR,ATXMEGA16A4U-CUR pdf中文资料,ATXMEGA16A4U-CUR引脚图,ATXMEGA16A4U-CUR电路-Datasheet-...
2021-05-20 19:16:36ATxmega128A4U-MH ATxmega128A4U-MHR (4) ATxmega64A4U-MH ATxmega64A4U-MHR (4) ATxmega32A4U-MH ATxmega32A4U-MHR (4) ATxmega16A4U-MH ATxmega16A4U-MHR (4) ATxmega128A4U-CU ATxmega128A4U-CUR (4) ATxmega64A... -
HxD - Freeware Hex Editor and Disk Editor
2020-07-02 16:32:00推荐一款免费的软件HxD - Freeware Hex Editor and Disk Editor 用于查看编码很方便 官网: https://mh-nexus.de/en/hxd/ 里面有简体中文版 -
ElasticSearch Kibana X-pack安装
2018-11-23 12:47:51free -mh 7、根据本机内存 修改config文件 elasticsearch.yml文件: # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable ... -
还没学完《深入剖析Kubernetes》
2021-11-27 16:04:41swapoff -a && sed -ri ‘s/.swap./#&/’ /etc/fstab sysctl --system 检查是否关闭swap free -mh 如果swap选项下全是0,这表示禁用了空间交换swap 时间同步(选做,在3台机器上分别运行) yum install ntpdate -y &... -
Ocean/Ocean+: 实时目标跟踪分割算法《Object-aware Anchor-free Tracking》翻译
2020-09-02 15:47:49在过去的几年中,基于anchor的Siamese算法成为了单目标跟踪的主流。但是其本身在训练时...为解决上述问题,他们在论文中提出了基于anchor-free的回归网络,和基于特征对齐的object-aware分类网络。anchor-free回归网