




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 南非蚂蚁2009年6月21日 Linux服务器性能评估与优化 个人简介 高俊峰 网名 南非蚂蚁IXPUB 存储设备与容灾技术 及 Linux与开源世界 版主 喜欢oracle和Unix Linux技术 平时主要活动在ITPUB net IXPUB net ChinaU等大型技术社区 一直致力与oracle数据库 Unix Linux操作系统管理 优化领域 现在主要从事oracle数据库管理和项目规划设计工作 擅长oracle数据库的备份恢复 性能调优 对Unix Linux集群应用也有一定的研究 通过如下方式可以联系到我 MSN gaojf 888 QQ 397824870Email dba gao 2 影响Linux性能的因素系统性能评估标准系统性能分析工具性能评估与优化过程Oracle在Linux下的性能优化 Linux服务器性能管理与优化 CPU内存磁盘I O带宽网络I O带宽 4 一影响Linux服务器性能的因素 操作系统级 程序应用级 二系统性能评估标准 5 5 其中 user 表示CPU处在用户模式下的时间百分比 sys 表示CPU处在系统模式下的时间百分比 iowait 表示CPU等待输入输出完成时间的百分比 swapin 即si 表示虚拟内存的页导入 即从SWAPDISK交换到RAMswapout 即so 表示虚拟内存的页导出 即从RAM交换到SWAPDISK 三系统性能分析工具 Vmstat sar iostat netstat free ps top等 常用系统命令 常用组合方式 用vmstat sar iostat检测是否是CPU瓶颈用free vmstat检测是否是内存瓶颈用iostat检测是否是磁盘I O瓶颈用netstat检测是否是网络带宽瓶颈 7 四Linux性能评估与优化 1 系统整体性能评估 uptime命令 root web1 uptime16 38 00up118days 3 01 5users loadaverage 1 22 1 02 0 91这里需要注意的是 loadaverage这个输出值 这三个值的大小一般不能大于系统CPU的个数 例如 本输出中系统有8个CPU 如果loadaverage的三个值长期大于8时 说明CPU很繁忙 负载很高 可能会影响系统性能 但是偶尔大于8时 倒不用担心 一般不会影响系统性能 相反 如果loadaverage的输出值小于CPU的个数 则表示CPU还有空闲的时间片 比如本例中的输出 CPU是非常空闲的 1 利用vmstat命令监控系统CPU该命令可以显示关于系统各种资源之间相关性能的简要信息 这里我们主要用它来看CPU一个负载情况 下面是vmstat命令在某个系统的输出结果 root node1 vmstat23procs memory swap io system cpu rbswpdfreebuffcachesisobiboincsussyidwast000162240830467032001321100723019800000162240830467032001010102001100000001622408304670320011100918019900Procsr列表示运行和等待cpu时间片的进程数 这个值如果长期大于系统CPU的个数 说明CPU不足 需要增加CPU b列表示在等待资源的进程数 比如正在等待I O 或者内存交换等 Cpuus列显示了用户进程消耗的CPU时间百分比 us的值比较高时 说明用户进程消耗的cpu时间多 但是如果长期大于50 就需要考虑优化程序或算法 sy列显示了内核进程消耗的CPU时间百分比 Sy的值较高时 说明内核消耗的CPU资源很多 根据经验 us sy的参考值为80 如果us sy大于80 说明可能存在CPU资源不足 2 cpu性能评估 2 利用sar命令监控系统CPU sar功能很强大 可以对系统的每个方面进行单独的统计 但是使用sar命令会增加系统开销 不过这些开销是可以评估的 对系统的统计结果不会有很大影响 下面是sar命令对某个系统的CPU统计输出 root webserver sar u35Linux2 6 9 42 ELsmp webserver 11 28 2008 i686 8CPU 11 41 24AMCPU user nice system iowait steal idle11 41 27AMall0 880 000 290 000 0098 8311 41 30AMall0 130 000 170 210 0099 5011 41 33AMall0 040 000 040 000 0099 9211 41 36AMall90 080 000 130 160 009 6311 41 39AMall0 380 000 170 040 0099 41Average all0 340 000 160 050 0099 45对上面每项的输出解释如下 user列显示了用户进程消耗的CPU时间百分比 nice列显示了运行正常进程所消耗的CPU时间百分比 system列显示了系统进程消耗的CPU时间百分比 iowait列显示了IO等待所占用的CPU时间百分比 steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作 idle列显示了CPU处在空闲状态的时间百分比 你是否遇到过系统CPU整体利用率不高 而应用缓慢的现象 在一个多CPU的系统中 如果程序使用了单线程 会出现这么一个现象 CPU的整体使用率不高 但是系统应用却响应缓慢 这可能是由于程序使用单线程的原因 单线程只使用一个CPU 导致这个CPU占用率为100 无法处理其它请求 而其它的CPU却闲置 这就导致了整体CPU使用率不高 而应用缓慢现象的发生 问题 1 利用free指令监控内存free是监控linux内存使用状况最常用的指令 看下面的一个输出 root webserver free mtotalusedfreesharedbufferscachedMem 8111718592602436299 buffers cache 6437468Swap 818908189一般有这样一个经验公式 应用程序可用内存 系统物理内存 70 时 表示系统内存资源非常充足 不影响系统性能 应用程序可用内存 系统物理内存 20 时 表示系统内存资源紧缺 需要增加系统内存 20 应用程序可用内存 系统物理内存 70 时 表示系统内存资源基本能满足应用需求 暂时不影响系统性能 3 内存性能评估 2 利用vmstat命令监控内存 root node1 vmstat23procs memory swap io system cpu rbswpdfreebuffcachesisobiboincsussyidwast000162240830467032001321100723019800000162240830467032001010102001100000001622408304670320011100918019900memoryswpd列表示切换到内存交换区的内存数量 以k为单位 如果swpd的值不为0 或者比较大 只要si so的值长期为0 这种情况下一般不用担心 不会影响系统性能 free列表示当前空闲的物理内存数量 以k为单位 buff列表示bufferscache的内存数量 一般对块设备的读写才需要缓冲 cache列表示pagecached的内存数量 一般作为文件系统cached 频繁访问的文件都会被cached 如果cache值较大 说明cached的文件数较多 如果此时IO中bi比较小 说明文件系统效率比较好 swapsi列表示由磁盘调入内存 也就是内存进入内存交换区的数量 so列表示由内存调入磁盘 也就是内存交换区进入内存的数量 一般情况下 si so的值都为0 如果si so的值长期不为0 则表示系统内存不足 需要增加系统内存 1 磁盘存储基础熟悉RAID存储方式 可以根据应用的不同 选择不同的RAID方式 尽可能用内存的读写代替直接磁盘I O 使频繁访问的文件或数据放入内存中进行操作处理 因为内存读写操作比直接磁盘读写的效率要高千倍 将经常进行读写的文件与长期不变的文件独立出来 分别放置到不同的磁盘设备上 对于写操作频繁的数据 可以考虑使用裸设备代替文件系统 使用裸设备的优点有 数据可以直接读写 不需要经过操作系统级的缓存 节省了内存资源 避免了内存资源争用 避免了文件系统级的维护开销 比如文件系统需要维护超级块 I node等 避免了操作系统的cache预读功能 减少了I O请求 使用裸设备的缺点是 数据管理 空间管理不灵活 需要很专业的人来操作 4 磁盘I O性能评估 14 2 利用iostat评估磁盘性能 root webserver iostat d23Linux2 6 9 42 ELsmp webserver 12 01 2008 i686 8CPU Device tpsBlk read sBlk wrtn sBlk readBlk wrtnsda1 872 58114 126479462286537372Device tpsBlk read sBlk wrtn sBlk readBlk wrtnsda0 000 000 0000Device tpsBlk read sBlk wrtn sBlk readBlk wrtnsda1 000 0012 00024对上面每项的输出解释如下 Blk read s表示每秒读取的数据块数 Blk wrtn s表示每秒写入的数据块数 Blk read表示读取的所有块数 Blk wrtn表示写入的所有块数 可以通过Blk read s和Blk wrtn s的值对磁盘的读写性能有一个基本的了解 如果Blk wrtn s值很大 表示磁盘的写操作很频繁 可以考虑优化磁盘或者优化程序 如果Blk read s值很大 表示磁盘直接读取操作很多 可以将读取的数据放入内存中进行操作 对于这两个选项的值没有一个固定的大小 根据系统应用的不同 会有不同的值 但是有一个规则还是可以遵循的 长期的 超大的数据读写 肯定是不正常的 这种情况一定会影响系统性能 15 3 利用sar评估磁盘性能通过 sar d 组合 可以对系统的磁盘IO做一个基本的统计 请看下面的一个输出 root webserver sar d23Linux2 6 9 42 ELsmp webserver 11 30 2008 i686 8CPU 11 09 33PMDEVtpsrd sec swr sec savgrq szavgqu szawaitsvctm util11 09 35PMdev8 00 000 000 000 000 000 000 000 0011 09 35PMDEVtpsrd sec swr sec savgrq szavgqu szawaitsvctm util11 09 37PMdev8 01 000 0012 0012 000 000 000 000 0011 09 37PMDEVtpsrd sec swr sec savgrq szavgqu szawaitsvctm util11 09 39PMdev8 01 990 0047 7624 000 000 500 250 05Average DEVtpsrd sec swr sec savgrq szavgqu szawaitsvctm utilAverage dev8 01 000 0019 9720 000 000 330 170 02需要关注的几个参数含义 await表示平均每次设备I O操作的等待时间 以毫秒为单位 svctm表示平均每次设备I O操作的服务时间 以毫秒为单位 util表示一秒中有百分之几的时间用于I O操作 16 3 利用sar评估磁盘性能对以磁盘IO性能 一般有如下评判标准 正常情况下svctm应该是小于await值的 而svctm的大小和磁盘性能有关 CPU 内存的负荷也会对svctm值造成影响 过多的请求也会间接的导致svctm值的增加 await值的大小一般取决与svctm的值和I O队列长度以及I O请求模式 如果svctm的值与await很接近 表示几乎没有I O等待 磁盘性能很好 如果await的值远高于svctm的值 则表示I O队列等待太长 系统上运行的应用程序将变慢 此时可以通过更换更快的硬盘来解决问题 util项的值也是衡量磁盘I O的一个重要指标 如果 util接近100 表示磁盘产生的I O请求太多 I O系统已经满负荷的在工作 该磁盘可能存在瓶颈 长期下去 势必影响系统的性能 可以通过优化程序或者通过更换更高 更快的磁盘来解决此问题 5 网络性能评估 1 通过ping命令检测网络的连通性 2 通过netstat i组合检测网络接口状况 3 通过netstat r组合检测系统的路由表信息 4 通过sar n组合显示系统的网络运行状态 五Oracle在Linux下的性能优化 Oracle数据库内存参数的优化与oracle相关的系统内核参数SGA PGA参数设置Oracle下磁盘存储性能优化文件系统的选择 ext2 ext3 xfs ocfs2 OracleASM存储 1 物理内存多大2 操作系统估计需要使用多少内存3 数据库是使用文件系统还是裸设备4 有多少并发连接5 应用是OLTP类型还是OLAP类型 1 优化oracle参数之前需要了解的情况 2 Oracle数据库内存参数的优化 1 系统内核参数修改 etc sysctl conf这个文件 加入以下的语句 kernel shmmax 2147483648kernel shmmni 4096kernel shmall 2097152kernel sem 25032000100128fs file max 65536net ipv4 ip local port range 102465000参数依次为 Kernel shmmax 共享内存段的最大尺寸 以字节为单位 Kernel shmmni 系统中共享内存段的最大数量 Kernel shmall 共享内存总量 以页为单位 fs file max 文件句柄数 表示在Linux系统中可以打开的文件数量 net ipv4 ip local port range 应用程序可使用的IPv4端口范围 需要注意的几个参数 关于Kernel shmmaxOracleSGA由共享内存组成 如果错误设置SHMMAX可能会限制SGA的大小 SHMMAX设置不足可能会导致以下问题 ORA 27123 unabletoattachtosharedmemorysegment 如果该参数设置小于OracleSGA设置 那么SGA就会被分配多个共享内存段 这在繁忙的系统中可能成为性能负担 带来系统问题 Oracle建议Kernel shmmax最好大于sga 以让oracle共享内存区SGA在一个共享内存段中 从而提高性能 关于Kernel shmall表示系统共享内存总大小 以页为单位 一个32位的Linux系统 8G的内存 可以设置kernel shmall 2097152 即为 2097152 4k 1024 1024 8G就是说可用共享内存一共8G 这里的4K是32位操作系统一页的大小 即4096字节 关于Kernel shmmni表示系统中共享内存段的最大数量 系统默认是4096 一般无需修改 在SUNOS下还有Kernel shmmin参数 表示共享内存段最小尺寸 勿要混肴 2 SGA PAG参数设置 Oracle在内存管理方面的改进Oracle9i通过参数PGA AGGREGATE TARGET参数实现PGA自动管理Oracle10g通过参数SGA TARGET参数实现了SGA的自动管理 Oracle11g实现了数据库所有内存块的全自动化管理 使得动态管理SGA和PGA成为现实 自动内存管理的两个参数 MEMORY TARGET 表示整个ORACLE实例所能使用的内存大小 包括PGA和SGA的整体大小 即这个参数是动态的 可以动态控制SGA和PGA的大小 MEMORY MAX TARGET 这个参数定义了MEMORY TARGET最大可以达到而不用重启实例的值 如果没有设置MEMORY MAX TARGET值 默认等于MEMORY TARGET的值 使用动态内存管理时 SGA TARGET和PGA AGGREGATE TARGET代表它们各自内存区域的最小设置 要让Oracle完全控制内存管理 这两个参数应该设置为0 B Oracle五种内存管理方式 自动内存管理 即AMM AutomaticMemoryManagement 自动共享内存管理 即ASMM AutomaticSharedMemoryManagement 手动共享内存管理自动PGA管理手动PGA管理 自动内存管理 AMM 默认安装oracle11g的实例就是AMM方式 通过如下查看 示例如下 SQL showparameterstargetNAMETYPEVALUE archive lag targetinteger0db flashback retention targetinteger1860fast start io targetinteger0fast start mttr targetinteger0memory max targetbiginteger1400Mmemory targetbiginteger1400Mpga aggregate targetbiginteger0sga targetbiginteger0注意 如果初始化参数LOCK SGA true 则AMM是不可用的 自动共享内存管理 自动共享内存管理是oracle10g引进的 如果要使用自动共享内存管理 只需设置MEMORY TARGET 0 然后显式指定SGA TARGET即可 示例如下 SQL altersystemsetmemory target 0scope both Systemal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年(CPA)注册会计师全国统一考试《税法》考前练习题及答案
- 2025年高院遴选面试题及答案
- 2025年国家工作人员学法用法考试题库及答案
- 2025年广东省河源市导游资格全国导游基础知识模拟题(附答案)
- 2025年大学移民管理专业题库-、移民个人信息保护与通信安全
- 2025年初中学业水平考试地理模拟试卷:乡土地理特色试题解析与答案集
- 2025年电工(高级)试题库(含答案)
- 2025年大学社会体育指导与管理专业题库- 城市体育设施规划与管理
- 2025年大学国内安全保卫专业题库- 大学国内安全保卫专业实践教学模式研究
- 2025年大学劳动教育专业题库- 大学生校园劳动文化的建设与传承
- 12.2闭合电路欧姆定律(第一课时)(教学课件+课后练习)高二物理同步备课系列(人教版2019必修第三册)
- 生猪标准化规模养殖场建设项目实施方案
- 广东开心学英语三年级下册Unit3-My-room
- JJG 425-2003水准仪
- 自动驾驶汽车-课件
- 2023年安康市交通建设投资集团有限公司招聘笔试题库及答案解析
- 学生学习力评价量表
- 藏餐培训教学计划5篇
- 技术需求征集表
- 三年级上册美术课件-第1课 五星红旗我为你骄傲|辽海版
- 中职心理健康教育第一课-PPT课件
评论
0/150
提交评论