• 1. Oracle数据库性能优化实务 第三讲:操作系统诊断与优化主讲人:白鳝华章培训网、[www.hztraining.com]华章培训网版权所有
  • 2. 操作系统诊断的目的第2页了解系统资源使用情况 建立操作系统性能基线 为制定优化方案提供依据
  • 3. 操作系统诊断的内容第3页CPU使用情况 内存使用情况 IO性能 网络情况
  • 4. CPU使用情况第4页主要工具vmstat , sar -u ,top/topas vmstat::CPU使用总体情况,注意r队列的长度 sar -u:专门针对SU情况 top/topas:查找最消耗cpu资源的进程 HP-UX glance osw/nmon等监控工具
  • 5. CPU监控的案例HP-UX hpux-01 B.11.11 U 9000/800 07/25/05 12:47:04 %usr %sys %wio %idle 12:47:09 31 69 0 0 12:47:14 20 80 0 0 12:47:19 11 89 0 0 12:47:24 22 78 0 0 12:47:29 23 77 0 0 12:47:34 14 86 0 0 12:47:39 7 93 0 0 12:47:44 10 90 0 0定位原因:闩锁争用
  • 6. 内存使用情况查看内存的使用情况 查看交换区的活动情况 确定系统中可用内存的数量 vmstat ps -aux|head 查看SWAP:swap -s/lsps/swapinfo AIX:vmstat -v ,svmon LINUX: free/meminfo HP-UX:glance
  • 7. 内存诊断的例子-AIX 12058624 memory pages 11538561 lruable pages 887195 free pages 6 memory pools 2032204 pinned pages 80.0 maxpin percentage 5.0 minperm percentage 30.0 maxperm percentage 29.7 numperm percentage 3428779 file pages 0.0 compressed percentage 0 compressed pages 29.7 numclient percentage 30.0 maxclient percentage 3428774 client pages 0 remote pageouts scheduled 11155 pending disk I/Os blocked with no pbuf 4533799 paging space I/Os blocked with no psbuf 2484 filesystem I/Os blocked with no fsbuf 1390 client filesystem I/Os blocked with no fsbuf 1203421 external pager filesystem I/Os blocked with no fsbuf 0 Virtualized Partition Memory Page Faults 0.00 Time resolving virtualized partition memory page faults
  • 8. 内存诊断的例子-LINUXMemTotal: 16412244 kB MemFree: 14616 kB ----空闲内存不足15M Buffers: 7400 kB Cached: 6054032 kB SwapCached: 5696 kB Active: 9638480 kB Inactive: 58608 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 16412244 kB LowFree: 14616 kB SwapTotal: 12289716 kB SwapFree: 12085356 kB Dirty: 12 kB Writeback: 0 kB Mapped: 9623404 kB Slab: 400756 kB CommitLimit: 20495836 kB Committed_AS: 19278624 kB PageTables: 2457724 kB VmallocTotal: 536870911 kB VmallocUsed: 268872 kB VmallocChunk: 536601783 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB
  • 9. 使用svmon分析AIX内存# svmon -G size inuse free pin virtual memory 8192000 3356775 4835225 521403 3219786 pg space 4194304 8721 work pers clnt pin 521163 0 240 in use 3219786 48974 88015 PageSize PoolSize inuse pgsp pin virtual s 4 KB - 3272583 8721 472491 3135594 m 64 KB - 5262 0 3057 5262
  • 10. 使用svmon分析内存svmon -U oracle User Inuse Pin Pgsp Virtual LPageCap oracle 1897660 3007 1210399 1459736 N
  • 11. IO情况分析监控IO负载 监控HDISK的响应时间 vmstat、iostat、sar -d 等工具 wio超过40%说明IO可能存在性能问题 检查是否存在热点 关注队列的长度、平均服务时间、繁忙程度等指标
  • 12. IO性能诊断的案例hpux-01:/ # sar -d 2 10 device %busy avque r+w/s blks/s avwait avserv Average c4t0d3 99.80 27.77 166 8392 168.28 51.97 Average c4t0d5 99.90 7.57 180 9291 40.65 42.71 Average c4t0d7 100.00 23.41 184 9835 146.59 44.84 Average c4t1d1 99.90 33.33 155 8537 249.13 50.14 Average c19t0d5 28.62 0.50 94 1496 0.00 3.74 Average c19t1d1 31.57 0.50 95 1537 0.00 4.18 Average c12t0d4 95.15 0.69 178 4273 1.33 16.63 Average c12t0d6 98.10 0.61 179 4366 1.07 22.05 Average c12t1d0 98.80 0.66 183 4392 1.39 19.47 Average c12t1d2 95.65 0.92 185 4466 3.33 22.09
  • 13. 网络监控监控网卡上的丢包和BUFFER OVERFLOW 监控网络流量 netstat AIX:topas HP-UX:glance 其他工具:mrtg等
  • 14. OS监控工具-OSWOSW(OSWATCH)是Oracle官方发布的小工具 可以在METALINK上下载(参考461054.1) 轻量级工具,解包就能用 可自行定制和扩展 系统开销极小 可以采集到细节 适合日常监控和故障分析时使用 无平台限制
  • 15. OS监控工具-nmon支持AIX和LINUX平台 通过execl来生成图形化报告 展示相当直观 不足是平台支持有限
  • 16. OS监控工具-glanceHP-UX平台 十分强大的监控与分析工具 支持下钻分析 支持后台模式 缺点 只支持HP-UX 收费产品
  • 17. 换页与VM参数设置换页可能导致严重的系统性能问题 操作系统VM参数设置对换页影响较大
  • 18. LINUX下VM参数与换页LINUX下缺省的VM设置不适合ORACLE数据库 缺省VM策略让文件缓冲占用了过多的物理内存 相关参数 VFS_CACHE_PRESSURE:越低越倾向于使用FILE CACHE MIN_FREE_KBYTES:物理内存少于该值,强行释放 SWAPPINESS:缺省60,越高SWAP使用率越高
  • 19. AIX下的虚拟内存管理策略(1)相关参数: minperm% maxperm% strict_maxperm% maxclient% strict_maxclient%(5.2 ML4) lru_file_repage(5.2 ML4,5.3 ML1)
  • 20. AIX下的虚拟内存管理策略(2)5.3以前的典型设置: minperm%=5 maxperm%=20 maxclient%=20
  • 21. AIX下的虚拟内存管理策略(3)5.3以后IBM的建议设置: minperm%=5 maxperm%=90 lru_file_repage=0
  • 22. AIX下的虚拟内存管理策略(4)截然不同的观点: MAXPERM%尽可能设小一些 设置了LRU_FILE_REPAGE=0,MAXPERM%可以设大一些
  • 23. HP-UX下的虚拟内存管理策略11.31:FILECACHE_MAX/FILECACHE_MIN pre 11.31:DBC_MAX_PCT
  • 24. Oracle solaris下的虚拟内存管理策略segmap_percent:缺省12,满足Oracle服务器需要
  • 25. 异步IO与数据库性能对于IO性能敏感的系统异步IO可以起到很好的作用 异步IO对于提升整体系统性能有帮助 异步IO不一定会对平均事务响应时间产生较大影响
  • 26. AIX下的异步IO目前主流版本中异步IO是缺省使用的 对于裸设备的异步IO,内核就支持 对于文件系统的异步IO需要调整AIO参数 lsattr -El aio0 MAXSERVERS MAXREQS
  • 27. HP-UX下的AIOHP-UX的异步IO不是缺省安装的,需要手工配置 fuser /dev/async 检查异步IO是否正常使用 配置/etc/privgroup :dba MLOCK 相关参数需要手工调整 max_async_ports aio_max_ops(缺省2048,是否需要加大可以通过glance监控) 注意,在文件系统下最好不启用异步IO写 fs_async
  • 28. SOLARIS下的KAIO通过truss查看是否使用KAIO28476/1: open("/dev/rdsk/c0t3d0s1", O_RDONLY) = 3 28476/1: kaio(5, 0xFFFFFFE8, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x000000 00, 0xEF7F4298) = 0 28476/1: kaio(AIOREAD, 3, 0x00020FF0, 1024, 0, 0xEFFFF9F4) = 0 28476/1: kaio(AIOWAIT, 0x00000000) = -268437004 28476/1: kaio(AIOREAD, 3, 0x00020FF0, 1024, 1024, 0xEFFFF9F4) = 0 28476/1: kaio(AIOWAIT, 0x00000000) = -268437004 28476/1: kaio(AIOREAD, 3, 0x00020FF0, 1024, 2048, 0xEFFFF9F4) = 0 28476/1: kaio(AIOWAIT, 0x00000000) = -26843700428463/1: open("/etc/passwd", O_RDONLY) = 3 28463/1: kaio(5, 0xFFFFFFE8, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x000000 00, 0xEF7F4298) = 0 28463/1: kaio(AIOREAD, 3, 0x00020FF0, 1024, 0, 0xEFFFF9FC) Err#48 28463/1: lwp_create(0xEFFFF628, 0, 0xEF781F44) = 3 28463/3: lwp_create(0x00000000, 0, 0x00000000) = -277341360 28463/3: lwp_self() = 3 28463/1: lwp_create(0xEFFFF628, 0, 0xEF778F44) = 4 28463/4: lwp_create(0x00000000, 0, 0x00000000) = -277378224 28463/4: lwp_self() = 4
  • 29. 下节预告:闩锁分析什么是闩锁 闩锁导致性能问题的原因 闩锁分析的方法 举例说明如何解决闩锁相关问题
  • 30. 感谢您对华章培训网的支持!http://www. hztraining.com