登录 注册
当前位置:主页 > 资源下载 > 9 > Oracle DBA的UNIX便携式参考指南:服务器监控篇

Oracle DBA的UNIX便携式参考指南:服务器监控篇

  • 更新:2024-11-06 09:33:50
  • 大小:8KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Oracle - 数据库
  • 格式:TXT

资源介绍

10 服务器监控 使用命令来显示 Unix 服务器的高 CPU 资源占用会话。top 显示每个 CPU 的使用情况。 top 的输出分两部分。第一部分显示每个处理器的负载情况,第二部分显示使用 CPU 最多的会话信息。 # top load averages: 0.23, 0.53, 0.49 64 processes: 1 running, 21 sleeping, 42 idle CPU states: 7.5% user, 0.0% nice, 2.9% system, 89.4% idle Memory: Real: 772M/991M act/tot Virtual: 1965M use/tot Free: 15M PID USERNAME PRI NICE SIZE RES STATE TIME CPU COMMAND 837 afis 42 0 34M 29M sleep 128:39 11.70% unixsvr 824 afis 44 0 10M 1826K sleep 26:40 0.70% dtterm 5121 oracle 42 0 435M 15M sleep 0:01 0.60% oracle 717 root 44 0 10M 4358K sleep 13:43 0.30% Xdec 5120 root 44 0 5832K 3203K run 0:00 0.10% top 558 root 44 0 3640K 180K sleep 34:13 0.00% os_mibs 715 root 42 0 18M 11M sleep 0:02 0.00% smsd 775 afis 44 0 11M 1843K sleep 0:01 0.00% dtsession 5117 afis 54 10 8248K 565K sleep 0:00 0.00% dtscreen 5097 oracle 44 0 423M 3465K sleep 0:00 0.00% oracle 5101 oracle 44 0 427M 2793K sleep 0:00 0.00% oracle 5105 oracle 44 0 421M 2621K sleep 0:00 0.00% oracle 5103 oracle 44 0 421M 2138K sleep 0:00 0.00% oracle 562 root 44 0 2960K 851K sleep 0:00 0.00% cpq_mibs 5055 root 44 0 1936K 303K sleep 0:00 0.00% telnetd 作为一个 DBA 应该关心的内容有: Load averages:平均负载。如果大于 1 说明服务器负荷过重。 CPU states:CPU 信息概要。7.5% user 的意思是 CPU 有 7.5%是用户占用,其他 可按字面类推。 Memory:Free 表明可用的内存数量。本例子中可用内存是 15M。 IDLE:CPU 空闲百分比 2. 使用 sar sar 在 SVR4 环境中,例如 HP-UX、Solaris 中很普及,在 aix 中也可以用。Sar 命 令可以查看整体 CPU 消耗情况,磁盘、内存、JFS buffer 使用情况等。常见的 sar 使用 例子: sar -u 显示 CPU 活动情况。例如: # sar -u 2 5 AIX TSXJ 2 5 0052E51D4C00 10/09/06 System Configuration: lcpu=2 16:12:10 %usr %sys %wio %idle 16:12:12 100 0 0 0 16:12:14 99 1 0 0 16:12:16 99 0 0 0 16:12:18 41 1 26 31 16:12:20 46 1 0 53 Average 77 1 5 17 上面的命令每 2 秒显示一次 cpu 情况,显示 5 次。 sar -w 显示交换(swapping)活动。例如 5 秒钟显示一次,显示 5 次: # sar -w 5 5 HP-UX corp-hp1 B.11.00 U 9000/800 08/09/00 19:37:57 swpin/s bswin/s swpot/s bswot/s pswch/s 19:38:02 0.00 0.0 0.00 19:38:07 0.00 0.0 0.00 … 0.0 222 0.0 314 Average 0.00 0.0 0.00 0.0 294 上面的输出列的含义: swpin/s 每秒钟交换进(sawp-in)的进程数量 swpot/s 每秒钟交换出(sawp-out)的进程数量 bswin/s 每秒钟交换进的块数(每块512字节) bswot/s 每秒钟交换出的块数(每块512字节) pswch/s 每秒钟上下文交换数量 sar -b 显示 buffer 活动情况 # sar -b 1 6 HP-UX corp-hp1 B.11.00 U 9000/800 08/09/00 19:44:53 lread/s %rcache bwrit/s lwrit/s... 19:44:54 91 100 9 19... 19:44:55 0 0 0 5... 19:44:56 6 100 9 8... 19:44:57 30 100 9 20... 19:44:58 1 100 0 3... 19:44:59 1 100 9 4... Average 22 100 6 10... %wcache pread/s pwrit/s... 53 0 0... 100 0 0... 0 0 0... 55 0 0... 100 0 0... 0 0 0... 39 0 0... 各个列的含义: lread/s Number of reads per second from the Unix JFS buffer cache %rcache Buffer cache hit ratio (for the Unix JFS buffer cache) for read requests bwrit/s Number of physical writes to disk per second lwrit/s Number of writes per second to the Unix JFS buffer cache %wcache Buffer cache hit ratio (for the Unix JFS buffer cache) for write requests pread/s Number of reads per second from disk pwrit/s Number of writes per second to disk 3. 使用 vmstat vmstat 是通用的 UNIX 监控工具,vmstat 在 IRIX 操作系统中是 osview。vmstat 的 第一个参数是间隔的秒数,也可以带第二个参数,表明显示多少次。vmstat 不同操 作系统输出结果不一样,含义也可能有区别,具体要看 man 帮助。 # vmstat 3 kthr memory cpu ---- ... --------------- ... -------------- r b ... fre re pi sr ... cs us sy id wa 0 0 ... 207 0 1 0 ... 142 18 4 75 4 0 0 ... 187 0 4 0 ... 70 2 1 91 6 0 0 ... 184 0 0 0 ... 99 5 2 89 4 0 0 ... 165 0 0 0 ... 98 1 8 52 40 0 0 ... 150 0 3 0 ... 136 4 2 87 6 0 0 ... 141 0 1 0 ... 192 5 0 91 4 在 HP-UX 或 AIX 下 vmstat 输出中一些重要的信息: r 运行队列。当这个值超过CPU数量的时候,服务器就有CPU瓶颈(可以通 过lsdev -C|grep Process|wc -l 来获取CPU数量) pi page-in数量。这个参数非0暗示着系统缺少内存,内存被交换到磁盘。然而 当程序刚使用的时候也可能导致page-in非0。为了找到真正原因,则检查sr 列。如果sr也是非0,那么的确意味着缺少内存。 sr 扫描速率。如果扫描速率持续增加,那么页交换后台程序忙于分配内存页。 下面是CPU的一些信息: us 用户占用CPU的百分比 sy 系统占用CPU的百分比 id 空闲CPU百分比 wa 等待CPU的百分比 用户和系统百分比之和(us+sy)接近 100 时,说明 CPU 繁忙,但并不意味着 CPU 过载。sr 超过 CPU 数量的时候意味着 CPU 过载。当 CPU 等待(wa)超过 20 的时候,那么 20%或者更多的处理 时间在等待资源,通常是 I/O。通常在备份或者导出等 I/O 操作的时候这个百分比比较大;但如 果正常的时候这个值一直挺高则也可能有 I/O 瓶颈。 4. AIX 下显示交换区(Swap)使用情况 lsps -a 可用来显示交换使用情况。之前我们讨论过,Oracle 数据库在消耗过多的 服务器内存的时候有可能产生很多交换,而 PGA 的内存需求引起内存移动到交换盘 的操作。 # lsps -a Page Space Physical Volume Volume Group Size %Used Active Auto Type hd6 hdisk0 rootvg 512MB 1 yes yes lv 上面%Used 是 1,说明有 1%的交换。 5. 显示 HP-UX 下的交换区使用情况 # swapinfo -tam Mb Mb Mb... TYPE AVAIL USED FREE... dev 1024 25 999... reserve – 999 -999... memory 3966 3547 419... total 4990 4571 419... ... PCT Mb ... USED RESERVE PRI NAME ... 2% 1 /dev/vg00/lvol2 ... ... 89% ... 92% 0 - 6. 显示服务器平均负载情况(w 命令)。 Unix 的 w 命令用来显示高资源会话简单的信息。大多数的有经验的 Oracle DBA 都会 首先用这个命令来快速查看一下服务器负载情况,因为 w 命令在几乎所有的 Unix 下 都可以用。 # w 10:02AM up 60 days, 18:46, 3 users, load average: 0.32, 0.39, 0.43 User tty login@ idle JCPU PCPU what Oracle pts/0 08:17AM 0 80:18 80:16 w oracle pts/1 09:15AM 5 2 0 ftp miltonrv pts/2 01May 009days 0 0 -ksh 上面的输出中的 load average 分别是过去 1 分钟、5 分钟、15 分钟的负载情况。如 果大于 1 说明 CPU 紧张。 7. 使用 iostat iostat 显示物理磁盘 I/O 情况。下面的 3 表明 3 秒钟显示一次。 # iostat 3 System configuration: lcpu=2 disk=5 tty: tin tout avg-cpu: % user % sys % idle % iowait 0.0 1302.0 1.8 0.6 89.3 8.3 Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk0 0.4 2.8 0.7 15919 15112048 dac0 0.0 0.8 0.2 643384 3730076 dac0-utm 0.0 0.0 0.0 0 0 hdisk1 0.0 0.8 0.2 643384 3730076 cd0 0.0 0.0 0.0 0 0 tty: tin tout avg-cpu: % user % sys % idle % iowait 0.3 3176.3 0.7 1.8 64.3 33.2 Disks: % tm_act Kbps tps Kb_read Kb_wrtn hdisk0 71.0 501.3 123.7 0 1504 dac0 0.0 0.0 0.0 0 0 dac0-utm 0.0 0.0 0.0 0 0 hdisk1 0.0 0.0 0.0 0 0 cd0 0.0 0.0 0.0 0 0 上面比较重要的列: Kb_read:过去的时间区间内读取得 K 字节数。(第一个显示的是历史总计,因此要看变 化情况,应该看其它的时间区间。) Kb_wrtn: 过去的时间区间内写入得 K 字节数。