本帖主要适用的工具有hcache和lsof。
1、hcache的下载 https://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcache
2、 hcache的使用 下载hcache后,此文件是一个可直接执行的,但在执行前需要给予执行权限。为了能直接调用,可以将hcache文件移动到“/usr/local/bin”目录中。 [root @oracle ~]# chmod 755 /root/hcache [root@oracle ~]# mv /root/hcache /usr/local/bin/ [root@oracle ~]# hcache -h
3、hcache常用命令:显示前10个最大的被缓存文件 [root@oracle ~]# hcache --top 10
4、hcache常用命令:查询进程ID所使用的buffer/cache 的使用情况 [root@oracle ~]# ps -ef | grep smon [root@oracle ~]# hcache -pid 48119
5、lsof常用命令:获取哪些进程打开某文件 通过上述所获取到的被缓存最大的文件名称后,可以直接通过 lsof file_name 得到当前所开启该文件的所有进程信息; 显示使用 “/u01/app/oracle/product/11.2/db_1/bin/oracle” 的进程信息 lsof /u01/app/oracle/product/11.2/db_1/bin/oracle
6、lsof常用命令:获取当前进程号所打开的所有文件信息 [root@oracle ~]# lsof -p 48119
由以上简单的查询步骤可以确定是Oracle占用了较多cache,oracle进程打开了哪些文件。 |