针对Oracle用户的Linux高级命令详解之资源管理篇

⑴ free

一个常见的问题是:

我的应用程序,服务器,用户以及系统进程等正在使用多少内存? 或者

现在多少内存可用?如果正在运行的进程使用的内存大于可用RAM,则需要将这些进程移到交换区

因此,一个补充的问题是:

正在使用多少交换区空间?

free命令将回答所有这些问题。而且,一个非常有用的选项-m可以显示可用内存(以MB为单位)

[root@Think ~]# free -m
            total      used      free    shared    buffers    cached
Mem:          1011        991        19          0        59        661
-/+ buffers/cache:        270        740
Swap:            0          0          0

以上输出显示系统具有1011MB的RAM,已使用991MB,还有19MB内存可用

第二行显示在物理内存中缓冲区和缓存大小的更改

第三行显示交换分区利用情况

要以KB或GB为单位显示以上内容,请将-m选项分别替换为-k或-g。使用-b选项将以字节为单位

[root@Think ~]# free -b
            total      used      free    shared    buffers    cached
Mem:    1060110336 1039556608  20553728          0  62877696  692731904
-/+ buffers/cache:  283947008  776163328
Swap:            0          0          0

-t选项在输出底部显示总数(物理内存和交换分区的总和):

[root@Think ~]# free -m -t
            total      used      free    shared    buffers    cached
Mem:          1011        991        19          0        60        660
-/+ buffers/cache:        270        740
Swap:            0          0          0
Total:        1011        991        19

尽管free不显示百分比,但是我们可以提取并格式化输出的特定部分

例如:已用内存占总数的百分比

[root@Think ~]# free -m | grep Mem | awk '{print ($3 / $2)*100}'
97.9228

这个值非常重要,您可能希望在可用内存的百分比低于特定阀值时触发一个警报

同样,要发现已使用交换分区空间的百分比,您可以:

[root@Think ~]# free -m | grep -i Swap | awk '{print ($3 / $2)*100}'

可以使用free查看应用程序施加的内存负载

例如,启动备份应用程序之前检查可用内存,启动之后立即检查可用内存

两者之差就是备份应用程序消耗的内存

相关推荐