针对Oracle用户的Linux高级命令详解之资源管理篇
Oracle数据库中的I/O瓶颈可能会造成严重的问题,与性能问题不同,慢速I/O可能导致控制文件写入速度缓慢,这会导致等待获取控制文
⑴ 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查看应用程序施加的内存负载
例如,启动备份应用程序之前检查可用内存,启动之后立即检查可用内存
两者之差就是备份应用程序消耗的内存