1.linux下free命令如何使用
2.linux free命令
3.linux free命令详解
4.Linux之free命令
5.Linux系统中的命码l命令内存清理和释放命令归纳
6.linux free命令
linux下free命令如何使用
首先我们介绍命令的格式为 free [参数]。
介绍第一条命令"free"显示内存的令源使用信息。默认按照M的命码l命令计数单位统计。
显示各个参数说明:
total表示 总计物理内存的令源大小。
used表示 已使用多少。命码l命令
free表示 可用内存多少。令源酷q 定时 源码
Shared表示 多个进程共享的命码l命令内存总额。
Buffers/cached表示 磁盘缓存的令源大小。
第三行(-/+ buffers/cached)解释
used:已使用多大。命码l命令
free:可用有多少。令源
第四行是命码l命令交换分区SWAP的,也就是令源我们通常所说的虚拟内存。
我们按照系统应用程序来说:系统可用内存= 系统free+buffers+cached。命码l命令
下一条命令"free -g",令源按照g的计数方式来显示内存信息。
下一条命令"free -m",命码l命令按照M的计数方式来显示内存信息。
下一条命令"free -k",按照K的计数方式来显示内存信息。
下一条命令"free -t",按照总和的形式显示内存的使用信息。
下一条命令"free -s 2 -c 4"。表示为周期性展示统计内存信息。本篇实例为每隔2秒统计一次,统计4次。
下一条命令"free -s 5",表示周期性展示内存使用情况,意思为每隔5秒统计展示,直到我们按下ctrl +c 键取消统计为止。
如果需要查看版本信息,我们执行命令"free -V",进行查看。
linux free命令
Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况,
第1行 Mem:
total:表示物理内存总量。币圈游戏源码
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
total = used + free
第2行 -/+ buffers/cached:
used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
linux free命令详解
free命令用于显示内存状态。free 命令能够显示系统上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。
语法:free [-bkmotV][-s <间隔秒数>]
参考例子:
显示内存使用情况:
[root@linux ~]# free
参数:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s 持续显示内存
-t 显示内存使用总合
Linux之free命令
free命令在Linux系统中扮演着显示内存使用情况的关键角色,它能显示出物理内存、swap内存以及内核使用的buffer。此命令是系统监控工具中频繁使用的。
free命令的格式是free[参数]。
其主要功能是展示系统内存的使用与空闲状态,包括物理内存、swap内存和内核缓冲区内存,而共享内存则被忽略。
关于buffers和cached的区别,我们需要了解buffer和cache的源码社区亲测定义。buffer指的是buffer cache,通常翻译为“缓冲区”,它是针对磁盘块的读写操作。而cache指的是page cache,翻译为“页高速缓存”,它主要是内核实现的磁盘缓存,用来减少对磁盘的I/O操作。buffer cache没有文件概念,只是将磁盘上的块直接搬到内存中。而page cache缓存的是内存页面,它可以缓存普通文件、块设备文件和内存映射文件的读写操作。
在free命令的输出中,free列代表真正未被使用的物理内存数量,而available列则是从应用程序的角度看的可用内存数量。Linux内核会将一部分内存用于缓存磁盘数据,当应用程序需要内存时,内核会从buffer和cache中回收内存来满足需求。所以,从应用程序的角度来看,available等于free加上buffer和cache。
swap space是磁盘上的一块区域,可以是分区也可以是文件。当系统物理内存不足时,Linux会将其中的不常用数据保存到swap空间上,这样可以释放更多的物理内存为进程服务。交换空间可以在一定程度上缓解内存不足的情况,但其读写磁盘数据的快递发货源码性能并不高。内核提供了swappiness参数来配置内存数据移到swap的紧迫程度,其取值范围是0到。
Linux系统中的内存清理和释放命令归纳
# 清理步骤
# 清理前内存使用情况
代码如下:
free -m
# 开始清理
代码如下:
echo 1 /proc/sys/vm/drop_caches
# 清理后内存使用情况
代码如下:
free -m
完成!
# 查看内存条数命令:
复制代码
代码如下:
dmidecode | grep -A "Memory Device$"
To free pagecache:
echo 1 /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 /proc/sys/vm/drop_caches
sync
# 释放前最好sync一下,防止丢数据。因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。
# 先说下free命令怎么看内存
代码如下:
$free
total used free shared buffers cached
Mem: 0
-/+ buffers/cache:
Swap: 0 0 0
# 第一行用全局角度描述系统使用的内存状况:
total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件
total = used + free
used = buffers+cached (maybe add shared also)
第二行描述应用程序的内存使用:
前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值
后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值
-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached
第三行表示swap的使用:
used——已使用
free——未使用
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
echo 3 /proc/sys/vm/drop_caches
cat /proc/sys/vm/drop_caches
3
!将/proc/sys/vm/drop_caches值设为3
# 有关/proc/sys/vm/drop_caches的用法在下面进行了说明
代码如下:
/proc/sys/vm/drop_caches (since Linux 2.6.)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
free.
To free pagecache, use echo 1 /proc/sys/vm/drop_caches; to
free dentries and inodes, use echo 2 /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3
/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects
# 原文链接:http://levi.cg.am/?p=
linux free命令
Linux系统中的free命令提供了一种直观的方式来查看内存和交换分区的使用情况。它主要关注物理内存(Mem)和硬盘交换分区(Swap)的统计信息。
首先,free命令显示的Mem部分,total列代表物理内存的总量,used则是已分配给缓存(包括buffers和cache)的内存,尽管有些可能并未实际使用。free列是未分配的内存,这部分内存可供系统即时使用。shared内存通常较少见,源码本地配置这里不做讨论。buffers是系统预留但未被使用的内存,而cached则是系统已分配但未被使用的缓存。
在第二行的-/+ buffers/cached中,used列显示的是第一行中used减去buffers和cached,即实际被系统占用的内存总量。free列则是未使用的buffers和cache,加上未被分配的内存,构成了系统当前的实际可用内存。
linuxfreeå½ä»¤è¯¦è§£linuxfreeå½ä»¤
Linuxä¸cat/etc/issueålsb_releaseå½ä»¤æ¾ç¤ºçç»æä¼ä¸åä¹ï¼æ¯ä¸åçã
1ã/etc/issueå/etc/redhat-releaseé½æ¯ç³»ç»å®è£ æ¶é»è®¤çåè¡çæ¬ä¿¡æ¯ï¼é常å®è£ 好系ç»åæ件å 容ä¸ä¼åçååã
2ãlsb_release-aï¼FSGï¼FreeStandardsGroupï¼ç»ç»å¼åçLSB(LinuxStandardBase)æ åçä¸ä¸ªå½ä»¤ï¼ç¨æ¥æ¥çlinuxå ¼å®¹æ§çåè¡çä¿¡æ¯ã
3ã/proc/versionåuname-aæ¾ç¤ºçå 容ç¸åï¼æ¾ç¤ºlinuxå æ ¸çæ¬å·ãlsb_releaseåæ°ï¼
freeæ¯ä»ä¹æ件ï¼
RAMï¼çµèä¸å·²ç»ä½¿ç¨çå åï¼Freeï¼å°±æ¯ç©ºé²çå åã
free
linuxå½ä»¤ï¼æ¥çå½åç³»ç»å åç使ç¨æ åµï¼å®æ¾ç¤ºç³»ç»ä¸å©ä½åå·²ç¨çç©çå åå交æ¢å åï¼ä»¥åå ±äº«å ååè¢«æ ¸å¿ä½¿ç¨çç¼å²åºã
æ ¼å¼ï¼free
å½ä»¤ä¸å个é项çå«ä¹ï¼
-bï¼ä»¥åè为åä½æ¾ç¤ºã
-kï¼ä»¥Kåè为åä½æ¾ç¤ºã
-mï¼ä»¥å åè为åä½æ¾ç¤ºã
linuxç³»ç»ç©ºé´æä¹æ¥çï¼
linuxæ¥çå ç¨ç©ºé´
1ãæå¼linuxç³»ç»ï¼å¨linuxçæ¡é¢ç空ç½å¤å³å»ã
2ãå¨å¼¹åºçä¸æé项éï¼ç¹å»æå¼ç»ç«¯ã
3ãå¨ç»ç«¯çªå£ä¸è¾å ¥freeå½ä»¤ï¼å车åå³å¯æ¥çå°ç³»ç»èµæºç使ç¨æ åµã
total:æ»è®¡ç©çå åç大å°
used:已使ç¨å¤å¤§
free:å¯ç¨æå¤å°
Shared:å¤ä¸ªè¿ç¨å ±äº«çå åæ»é¢
Buffers/cached:ç£çç¼åç大å°
linux常ç¨å½ä»¤æåªäºï¼
Linuxæ¯æ们å¼å人åå¿ ä¸å¯å°çç³»ç»ï¼ä¹æ¯ç»å¸¸æ¥è§¦å°çãç¶èï¼Linuxå½ä»¤æ¯è¾å¤ï¼æäºä¸å¸¸ç¨ä¹é¾è®°ä½ãé£ä¹ï¼æ们å¦ä½æ´é«æç使ç¨Linuxå½ä»¤ï¼èåä¸å¿ å ¨é¢å°å¦ä¹ å¢ï¼ä»å¤©å°±ç»å¤§å®¶å享ä¸ä¸æå¨å¼åè¿ç¨ä¸ï¼æ¯è¾å¸¸ç¨ãä¹æ¯è¾å®ç¨çLinuxå½ä»¤ã
æ¥çæ件ææ¥å¿
æ¥çæ件å 容ææ¥å¿æ件ï¼ç¸ä¿¡å ä¹ææ人é½ä¼æ¥è§¦å°ãå ¶ä¸ï¼ç¨å¾æå¤çå°±æ¯headãtailåcatå½ä»¤ã
1ãhead
表示头é¨ï¼æ¥çæåé¢å è¡æ°æ®ã
headtest.logï¼test.logæ件åå è¡æ¥å¿å 容
head-ntest.logï¼æ¥çtest.logæ件åè¡æ¥å¿å 容
head-n-test.logï¼æ¥çtest.logé¤äºæåè¡æ¥å¿å 容
2ãtail
表示尾é¨ï¼æ¥çæåå è¡æå®æ¶æ¥å¿ã
tail-ftest.logï¼å®æ¶æ¥çtest.logæ件æåå è¡æ¥å¿å 容
tail-f-ntest.logï¼å®æ¶æ¥çtest.logæ件æåè¡æ¥å¿å 容
tail-ntest.logï¼æ¥çtest.logæ件æåè¡æ¥å¿å 容
tail-n+test.logï¼æ¥çtest.logæ件è¡åçæææ¥å¿å 容
3ãcat
ç¨äºæ¥çæ件å 容ã
cattest.logï¼æ¥çtest.logæ件ææå 容
æ¬å°å¤å¶
åä¸å°æå¡å¨ä¸åç®å½ä¹é´å¤å¶æ件æç®å½ä¹æ¯ç»å¸¸ç¨å°çã
1ãå¤å¶æ件
cptest.log/home/geshan/logsï¼å¤å¶test.logæ件å°/home/geshan/logs/ç®å½ä¸
cptest.log/home/geshan/logs/cptest.logï¼å¤å¶test.logæ件å°/home/geshan/logs/ç®å½ä¸å¹¶éæ°å½å为cptest.log
2ãå¤å¶æ件夹
cp-rlogs//home/geshan/ï¼å¤å¶logsç®å½åç®å½ä¸æææ件å°/home/geshan/ç®å½ä¸ï¼æ¤æ¶è¯¥ç®å½ä¼ælogsç®å½
cp-rlogs//home/geshan/testlogs/ï¼å¤å¶logsç®å½åç®å½ä¸æææ件å°/home/geshan/testlogs/ç®å½ä¸ï¼å¹¶ælogsç®å½éæ°å½å为testlogsï¼åææ¯/home/geshan/ç®å½æ²¡ætestlogsç®å½
注ï¼-ræ-R表示循ç¯ï¼å¾ªç¯ç®å½ä¸æææ件åç®å½ãä¸é¢ææå½ä»¤ä¹æ¯å¦æ¤ã
è¿ç¨å¤å¶
å½æ们éè¦ä»è¿ç¨æå¡å¨å¤å¶æ个æ件æç®å½å°æ¬å°ç»å½çæå¡å¨æ¶ï¼å¤§é¨å人æ³å°å ç»å½è¿ç¨æå¡å¨ä¸è½½è¯¥æ件ï¼ç¶ååç»å½æ¬å°æå¡å¨åä¸ä¼ æ件ãè¿æ ·æ¯æ¯è¾éº»ç¦ï¼æçä¹ä¸é«ã
1ãæ¬å°æå¡å¨å¤å¶å°è¿ç¨æå¡å¨
(1)å¤å¶æ件
å½ä»¤1ï¼
scplocal_fileremote_username@remote_ip:remote_folder
å½ä»¤2ï¼
scplocal_fileremote_username@remote_ip:remote_file
å½ä»¤3ï¼
scplocal_fileremote_ip:remote_folder
å½ä»¤4ï¼
scplocal_fileremote_ip:remote_file
第1,2个æå®äºç¨æ·åï¼å½ä»¤æ§è¡åéè¦è¾å ¥ç¨æ·å¯ç ï¼ç¬¬1ä¸ªä» æå®äºè¿ç¨çç®å½ï¼æ件ååä¸åï¼ç¬¬2个æå®äºæ件åï¼ç¬¬3,4个没ææå®ç¨æ·åï¼å½ä»¤æ§è¡åé»è®¤ä¸å½åæå¡å¨ç¨æ·å并éè¦è¾å ¥ç¨æ·å¯ç ï¼ç¬¬3ä¸ªä» æå®äºè¿ç¨çç®å½ï¼æ件ååä¸åï¼ç¬¬4个æå®äºæ件åã
å®ä¾1ï¼ä»æ¬å°æå¡å¨å¤å¶test.logè³...æå¡å¨ç/home/geshan/ç®å½ï¼å¹¶éæ°å½å为
.log
å½ä»¤ï¼
å®ä¾2ï¼ä»æ¬å°æå¡å¨å¤å¶test.logè³...æå¡å¨ç/home/geshan/ç®å½
å½ä»¤ï¼
(2)å¤å¶ç®å½
å½ä»¤1ï¼
scp-rlocal_folderremote_username@remote_ip:remote_folder
å½ä»¤2ï¼
scp-rlocal_folderremote_ip:remote_folder
第1个æå®äºç¨æ·åï¼å½ä»¤æ§è¡åéè¦è¾å ¥ç¨æ·å¯ç ï¼ç¬¬2个没ææå®ç¨æ·åï¼å½ä»¤æ§è¡åéè¦è¾å ¥ç¨æ·ååå¯ç ã
å®ä¾ï¼ä»æ¬å°æå¡å¨/home/appuser/ç®å½ä¸çtomcatç®å½å¤å¶å°...æå¡å¨ç/home/geshan/ç®å½å½ä»¤ï¼
2ãä»è¿ç¨æå¡å¨å¤å¶å°æ¬å°æå¡å¨
ä»è¿ç¨å¤å¶å°æ¬å°çscpå½ä»¤ä¸ä¸é¢çå½ä»¤é·åï¼åªè¦å°ä»æ¬å°å¤å¶å°è¿ç¨çå½ä»¤åé¢2个åæ°äºæ¢é¡ºåºå°±è¡äºã
(1)å¤å¶æ件
å®ä¾ï¼
ä»...è¿ç¨æå¡å¨ç/home/geshan/è·¯å¾ä¸test.logæ件å¤å¶å°æ¬å°æå¡å¨/home/appuser/è·¯å¾
å½ä»¤ï¼
scproot@...:/home/geshan/test.log/home/appuser/
(2)å¤å¶ç®å½
å®ä¾ï¼ä»...è¿ç¨æå¡å¨ç/home/geshan/è·¯å¾ä¸tomcatæ件夹å¤å¶å°æ¬å°æå¡å¨/home/appuser/è·¯å¾
å½ä»¤ï¼
注ï¼ipå°ååè·¯å¾ä¹é´ï¼å³åå·ä¹é´ï¼æ²¡æä»»ä½ç©ºæ ¼ï¼å¦åä¼æ¥éãå½ç¬¬ä¸æ¬¡åå¦å¤ä¸å°æå¡éä¿¡ï¼å¦å¤å¶æ件ï¼ï¼ä¼æ示æ¯å¦ä¿¡ä»»ï¼è¾å ¥yeså³å¯ã
å缩å解å
å缩å解åæ件ä¹æ¯ç»å¸¸éå°çãå¦æä¸è½½ä¸ä¸ªç®å½ä¸çæææ件ï¼å¯ä»¥ç´æ¥ä¸è½½è¿ä¸ªç®å½ï¼ä½æ¯ç´æ¥ä¸è½½ç®å½çè¯ï¼æ件ä¸æ¦å¾å¤ï¼ä¸è½½è¿ç¨ä¸å¾å®¹æ丢失æ件ï¼ä¸è½½é度ä¹æ¯è¾æ ¢ãä¸è¬æ åµä¸æ¯å å缩æ件夹åä¸è½½ãä¸é¢ç»å¤§å®¶ä»ç»åç§å缩å解åå½ä»¤ã
1ãtarå½ä»¤
解åï¼
å缩ï¼
å®ä¾ï¼è§£åä¸ä¸ªlog.taræ件ï¼
å缩logç®å½å¹¶å½å为log.tarï¼
2ãgzå½ä»¤
å缩ï¼
注ï¼å缩为.gzæ件æºæ件ä¼æ¶å¤±å¦ææ³ä¿çæºæ件ï¼ä½¿ç¨ä¸é¢å½ä»¤
解åï¼
.tar.gzå.tgz解åï¼
å缩ï¼
å缩å¤ä¸ªæ件ï¼
å®ä¾ï¼è§£åtomcat.tar.gzæ件
å缩tomcatç®å½ï¼å¹¶å½å为tomcat.tar.gzæ件
3ãzipå½ä»¤
解åï¼unzipfileName.zipå缩ï¼
注ï¼å缩ç®å½æ¶ï¼éå -rï¼è¡¨ç¤ºå¾ªç¯è¯¥ç®å½ä¸æææ件åç®å½ãå缩å¤ä¸ªæ件æç®å½æ¶ï¼æ件æç®å½ä¹é´éè¦ç©ºæ ¼ã
å®ä¾ï¼è§£åä¸ä¸ªlog.zipæ件ï¼
å缩logæ件ç®å½å¹¶å½å为log.zipï¼
å缩log1ålog2ç®å½å¹¶å½å为log.zipï¼
å缩test1.logåtest2.logæ件并å½å为log.zipï¼
4ãrarå½ä»¤
åçï¼åzipå½ä»¤ç±»ä¼¼ï¼åªéæzipæ¹ä¸ºrarå³å¯ã
ä¿®æ¹æé
Linuxç³»ç»ä¸æ件åç®å½è®¿é®æéæ¯ä¸åçï¼éè¿äºæ¹å¼å¯ä»¥ç¡®å®è°å¯ä»¥å¯¹è¯¥æ件åç®å½è¿è¡ç¸åºçæä½ã
å ¶ä¸ï¼æ件æç®å½ç访é®æéå为åªè¯»ï¼åªååå¯æ§è¡ä¸ç§ï¼åå«ä»£è¡¨å¯è¯»ãå¯ååå¯æ§è¡ã
1ãchgrpå½ä»¤
æ¹åæ件æç®å½æå±çç»ãå½ä»¤ï¼
å®ä¾ï¼ætest.logæ件æå±çç»ä¿®æ¹ä¸ºgeshanç»
ælogsç®å½å该ç®å½ä¸æææ件æå±çç»ä¿®æ¹ä¸ºgeshanç»
2ãchownå½ä»¤
æ´æ¹æ个æ件æç®å½æå±çç¨æ·ãå½ä»¤ï¼
å®ä¾ï¼ætest.logæ件æå±ç¨æ·ä¿®æ¹ä¸ºgeshanç¨æ·
ælogsç®å½å该ç®å½ä¸æææ件æå±ç¨æ·ä¿®æ¹ä¸ºgeshanç¨æ·
3ãchmodå½ä»¤
ç¨äºæ¹åæ件æç®å½ç访é®æéãç¨æ·ç¨å®æ§å¶æ件æç®å½ç访é®æéãå½ä»¤ï¼
å ¶ä¸ï¼modeæå¾å¤ç§è¡¨ç¤ºå«ä¹ï¼ä¸é¢åªå¯¹æ°å说æã大é¨å人çå°modeææçæéï¼è¿äºè¡¨ç¤ºä»ä¹å¢ï¼
为äºæ¹ä¾¿ï¼æmodeæ¹ä¸ºabcï¼å ¶ä¸a,b,cå为ä¸ä¸ªæ°åï¼åå«è¡¨ç¤ºuserãgroupåotherçæéãr=4ï¼w=2ï¼x=1ï¼r表示Read读ï¼w表示Writeåï¼x表示eXecuteã
è¥è¦rwxå±æ§å4+2+1=7ï¼
è¥è¦rw-å±æ§å4+2=6ï¼
è¥è¦r-xå±æ§å4+1=5ã
å®ä¾ï¼ætest.logæ件修æ¹å¯è¯»åæ§è¡ï¼å³ï¼æä½ã
ælogsç®å½åç®å½ä¸æææ件修æ¹ä¸ºè¯»åï¼ï¼æä½ã
å¨Linuxç³»ç»ä¸è¾å ¥ll(两个å°åLL)ï¼å¦ææ件æç®å½ä¸ºï¼è¯»åæ§è¡ï¼æéï¼å¯çå°æåé¢ä¸º-rwxrwxrwxãå¦æ为ï¼è¯»åï¼æéï¼å¯çå°æåé¢ä¸º-rw-rw-rwã
注ï¼ä¸è¬ä¿®æ¹æ件æç®å½æééè¦è¶ 级ç¨æ·ï¼rootï¼è¿è¡ä¿®æ¹ï¼å¦åå¯è½ä¼æ¥æéä¸è¶³ã
è¿äºLinuxå½ä»¤æ¯æ¯è¾å¸¸ç¨å®ç¨çå½ä»¤ï¼è¯å®ä¼æç¨å¾å°çæ¶åï¼å¦æå¯¹ä½ ææ帮å©ï¼è®°å¾ç¹èµæ¶è转åå¦ï¼
linuxææ ·çå åçæ¶åæ¢åä½ï¼
Linuxæ¥çå©ä½å¯ç¨å åç¨free-må½ä»¤ï¼-mé项表示ç¨MB为åä½æ¾ç¤ºå®¹éï¼å¦ææ¯ä»¥GB为åä½å°±æ¢æ-gé项ï¼ï¼æ¾ç¤ºçç»æéé¢usedé£ä¸åæ¯å·²ç»ä½¿ç¨çéï¼freeé£ä¸åå°±æ¯å©ä½å å大å°äºã
free 命令示例 | Linux 中国
Linux中的free命令能帮助你深入了解系统的内存(RAM)使用情况,以及是否启用了交换。下面将演示如何高效利用这个命令。 要使用free命令,无需复杂的步骤。只需在终端输入命令即可。 free命令的语法如下: 有多个选项可调整命令行为。接下来,分享一些常用的free命令选项。 不带任何选项的free命令输出如下: 这里显示了内存的详细信息,包括总内存、已用内存、可用内存、缓冲区和缓存大小等。如果你希望以更易读的格式显示数据,可以使用-h选项: 此选项将以人类可读的形式(如KB或GB)显示值。 想要连续显示统计数据?可以使用-s选项,以特定时间间隔刷新信息。例如: 此命令将每秒刷新一次统计信息。 若需控制刷新次数,可以使用-c选项: 命令将刷新指定次数的统计信息。 若想自定义输出数据类型,可以使用以下标志: 例如,以MB为单位显示内存统计信息的命令如下: 若要获取物理内存和交换内存的总和,可以使用-t选项: 至此,已详细介绍了free命令的使用方法,包括如何以人类可读形式显示信息、连续刷新统计数据、定义刷新次数、指定输出数据类型及获取内存总和。接下来,请尝试以下练习题: 练习题:以人类可读形式显示内存信息。
每秒刷新一次统计信息。
显示统计数据3次。
以MB为单位显示内存统计信息。
获取物理内存和交换内存的总和。
希望这些练习能帮助你熟练掌握free命令。如果你有任何疑问,欢迎在评论区提问。此外,如果你对接下来的内容有任何建议,请分享你的想法。感谢阅读,期待你的反馈!linux free命令详解和使用实例
1.命令格式:free [参数]
2.命令功能:
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
3.命令参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s间隔秒数 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
4.使用实例:
实例1:显示内存使用情况
命令:
复制代码
代码如下:
free
free -g
free -m
输出:
复制代码
代码如下:
[root@SF service]# free
total used free shared buffers cached
Mem: 0
-/+ buffers/cache:
Swap: /pp
[root@SF service]# free -g
total used free shared buffers cached
Mem: 2 0 4
-/+ buffers/cache:
Swap: 1 /pp
[root@SF service]# free -m
total used free shared buffers cached
Mem: 0
-/+ buffers/cache:
Swap:
free命令输出内容详细说明:
下面是对这些数值的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是KB,已用内存是KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
如本机情况的可用内存为:
=KB+KB+KB
接下来解释什么时候内存会被交换,以及按什么方交换。
当可用内存少于额定值的时候,就会开会进行交换.如何看额定值:
命令:cat /proc/meminfo
输出:
复制代码
代码如下:
[root@SF service]# cat /proc/meminfo
MemTotal: kB
MemFree: kB
Buffers: kB
Cached: kB
SwapCached: kB
Active: kB
Inactive: kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: kB
LowFree: kB
SwapTotal: kB
SwapFree: kB
Dirty: kB
Writeback: 0 kB
AnonPages: kB
Mapped: kB
Slab: kB
PageTables: kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: kB
Committed_AS: kB
VmallocTotal: kB
VmallocUsed: kB
VmallocChunk: kB
HugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0Hugepagesize: kB
交换将通过三个途径来减少系统中使用的物理页面的个数:
1.减少缓冲与页面cache的大小,
2.将系统V类型的内存页面交换出去,
3.换出或者丢弃页面。(Application 占用的内存页,也就是物理内存不足)。
事实上,少量地使用swap是不是影响到系统性能的。
那buffers和cached都是缓存,两者有什么区别呢?
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
实例2:以总和的形式显示内存的使用信息
命令:free -t
输出:
复制代码
代码如下:
[root@SF service]# free -t
total used free shared buffers cached
Mem: 0
-/+ buffers/cache: Swap: Total: [root@SF service]#
说明:
实例3:周期性的查询内存使用信息
命令:free -s
输出:
复制代码
代码如下:
[root@SF service]# free -s
total used free shared buffers cached
Mem: 0
-/+ buffers/cache: Swap:
total used free shared buffers cached
Mem: 0
-/+ buffers/cache: Swap:
说明:
每s 执行一次命令
详细解读Linux内核存储性能观测中的free命令
概要:free命令报告系统内存使用情况,包括实体内存、虚拟交换文件内存、共享内存区段以及系统核心缓冲区信息。这些数据从/proc/meminfo收集。
安装方式:procps软件包包含/proc目录信息以监控和终止系统进程。
参数说明:free命令选项区分大小写。
输出说明:(-/+ buffers/cache)分别表示被程序占用的真实内存和可重用总内存。
观测分析:Linux通过缓存优化磁盘和内存存取效率,包括dentry缓存、Buffer Cache和Page Cache,有效缩短I/O时间。
内存释放:Linux将暂时不用的内存转为缓存,提高运行效率。内存释放通过sync命令确保文件系统完整性。
内存管理:/proc文件系统提供实时内存数据。内存管理策略在/proc/sys/vm/drop_chches文件中表示,内容仅为0-3数字,代表系统含义。
举例:在生产环境中,应优化应用程序内存利用,而非频繁清理内存,重点在程序调优。
英文说明:资料来源于博客文章(链接需审核,若涉及版权问题,请删除)。
往期精彩回顾:包含多个技术文章链接,涉及Linux系统性能分析工具、CPU使用率查看、内核链表、流量控制等主题。