前言:
眼前大家对“查看oracle的io”都比较注意,小伙伴们都需要剖析一些“查看oracle的io”的相关内容。那么小编在网络上收集了一些对于“查看oracle的io””的相关文章,希望看官们能喜欢,你们一起来了解一下吧!记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。
1. CPU使用情况:
top命令
top命令通常是关注CPU和IO等待情况,top -p pid ,后在按H,可以查看该进程ID的线程情况或说子进程情况,如
2.内存使用情况:
命令:free-m
# free -m total used free shared buff/cache availableMem: 32010 13470 1040 19 17500 18012Swap: 2047 124 1923
total:内存总数
used:已经使用的内存数
free:空闲的内存数
shared:共享内存大小,主要用于进程间通信
buffers:主要用于块设备数据缓冲
cached:主要用于文件内容缓冲
- buffers/cached = used(第一行)- buffers - cached程序当前"真实使用"的"物理内存"的大小。
+ buffers/cached = buffers + cached实际缓存大小
实际剩余内存=free+buffers+cached
3.系统IO情况:iostat,vmstat
yum install sysstat -y //iostat 命令安装 yum -y install procps-ng //vmstat 命令安装
# vmstat 3 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 127744 1083724 445540 17475104 0 0 1 27 0 1 1 0 98 0 0 0 0 127744 1083616 445540 17475136 0 0 0 193 1459 2203 0 0 100 0 0 0 0 127744 1085536 445540 17475148 0 0 0 1367 3085 4635 2 0 98 0 0 0 0 127744 1085304 445540 17475172 0 0 0 297 1506 2111 0 0 99 0 0 0 0 127744 1085368 445540 17475192 0 0 0 291 1407 2030 1 0 99 0 0
# iostat -k 1 3Linux 3.10.0-957.el7.x86_64 (qpl-fanwei-oa) 05/26/2022 _x86_64_ (16 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 1.32 0.00 0.33 0.03 0.00 98.32Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 2.06 0.95 15.69 3266129 54081900sdb 28.79 8.79 414.45 30289153 1428115592scd0 0.00 0.00 0.00 1028 0dm-0 2.07 0.91 15.65 3119290 53911376dm-1 0.01 0.01 0.05 21240 166196avg-cpu: %user %nice %system %iowait %steal %idle 8.02 0.00 1.13 0.00 0.00 90.86Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 5.00 0.00 20.00 0 20sdb 45.00 0.00 440.00 0 440scd0 0.00 0.00 0.00 0 0dm-0 5.00 0.00 20.00 0 20dm-1 0.00 0.00 0.00 0 0avg-cpu: %user %nice %system %iowait %steal %idle 2.19 0.00 0.44 0.00 0.00 97.37Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 1.00 0.00 4.00 0 4sdb 18.00 0.00 248.00 0 248scd0 0.00 0.00 0.00 0 0dm-0 1.00 0.00 4.00 0 4dm-1 0.00 0.00 0.00 0 0
4.系统负载情况
# uptime 12:38:02 up 39 days, 21:14, 2 users, load average: 0.04, 0.03, 0.05
uptime 命令可以用来查看服务器已经运行了多久,当前登录的用户有多少,以及服务器在过去的1分钟、5分钟、15分钟的系统平均负载值。
那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
5.查看是否有僵死进程
select spid from v$process where addr not in (select paddr from v$session);
6.检查缓冲区命中率
SELECT a.VALUE + b.VALUE logical_reads, c.VALUE phys_reads, round(100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio FROM v$sysstat a, v$sysstat b, v$sysstat c WHERE a.NAME = 'db block gets' AND b.NAME = 'consistent gets' AND c.NAME = 'physical reads';
如果命中率低于90%则需加大数据库参数db_cache_size。
7.检查共享池命中率
select sum(pinhits) / sum(pins) * 100 from v$librarycache;
如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小。
8.检查排序区
select name,value from v$sysstat where name like '%sort%';
如果disk/(memoty+row)的比例过高,则需要调整sort_area_size(workarea_size_policy=false)或pga_aggregate_target(workarea_size_policy=true)。
9.检查日志缓冲区
select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');
如果redo buffer allocation retries/redo entries超过1%,则需要增大log_buffer。
标签: #查看oracle的io