




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
性能问题的关注点 文档标识标识 comtop std tuning guid 深圳市康拓普信息技术有限公司 Shenzhen Comtop Information Technology Co Ltd 系统部署流程 深圳市康拓普信息技术有限公司 修订记录 版本版本修订说明修订说明作者作者审核审核审核日期审核日期 1 0性能问题关注点 所有权声明 深圳市康拓普信息技术有限公司 版权所有 不得复制 Copyright by Shenzhen Comtop Information Technology Co Ltd 系统部署流程 I 目目 录录 1 概述概述 3 2 操作系统优化操作系统优化 3 2 1 内核问题 4 2 1 1 案例 udp sendspace 4 2 2 资源问题 4 2 2 1 案例 nofiles 4 3 网络优化网络优化 5 3 1 响应时间 5 3 1 1 案例 DNS 解析造成服务启动慢 5 3 2 吞吐量 5 3 2 1 案例 交换机传输模式影响网速 5 4 数据库优化数据库优化 5 4 1 软件版本 5 4 1 1 案例 64 位机器上安装 32 位 oracle 的性能问题 6 4 2 内存优化 6 4 2 1 案例 内存设置太小造成性能问题 6 4 3 CPU 优化 6 4 3 1 案例 Processes 设置太小造成性能问题 6 4 4 IO 6 4 4 1 案例 每个用户使用自己单独的临时表空间 7 4 4 2 案例 尽量关闭数据表空间的自动扩展功能 7 4 5 数据库对象争用 7 4 5 1 案例 表被关联的外键太多 7 4 5 2 案例 表上的索引太多 7 4 5 3 案例 实时表的数据太多 7 4 6 SQL 8 4 6 1 案例 绑定变量 8 4 6 2 案例 索引 8 4 6 3 案例 临时表 8 4 6 4 案例 hint 8 5 中间件优化中间件优化 8 5 1 WEBLOGIC建域模式 8 5 1 1 案例 Weblogic 产品模式提升性能 8 系统部署流程 II 5 2 WEBLOGIC内存设置 8 5 2 1 案例 IBM 的 JVM 普通堆的最小值和最大值不同 8 5 3 WEBLOGIC参数调整 9 5 3 1 案例 Execute Queue and Threads Count 9 5 3 2 案例 Accept Backlog 9 5 3 3 案例 JDBC 10 5 3 4 案例 JTA 10 5 3 5 案例 Native IO 10 系统部署流程 3 1 概述概述 我们的系统部署方式虽然多种多样的 但是从整个系统架构来说 不外乎下图所示的 结构 操作系统 数据库 中间件 应用系统 一 层 三 层 四 层 五 层 网 络二 层 我们优化也主要从这五个层次考虑 2 操作系统优化操作系统优化 目前我司应用系统的部署到的操作系统有 AIX HP UX Solaris Linux Windows 2003 操作系统引起问题的地方主要有两个方面 内核问题和资源问题 系统部署流程 4 2 1 内核问题内核问题 内核问题主要是内核参数的设置方面 这个参数主要是分为两部分 内存相关的和网络相关的 比如 我们在安装 Oracle 时未按照官方说明 修改内存相关的内核参数 就会导致无法使用 大的共享内存块 再比如 一些网络参数会影响 weblogic 的吞吐量 2 1 1 案例 案例 udp sendspace 网络参数 udp sendspace 是 UDP 的发送缓存 默认值为 8K 为减少 I O 异常 需调整 为 32k 2 2 资源问题资源问题 Unix 和 Linux 对每一个用户都有一个资源限制 这些限制可能包括能创建的文件大小 能同时打开的文件数量 能同时启动的进程数 能使用的最大内存等 UNIX 环境中可以 使用 ulimit 查看 2 2 1 案例 案例 nofiles 在东莞和南海都遇到了以下错误 这个错误主要就是因为应用系统打开了太多的文件句柄 因为在 Unix 下 默认一个用 户只能打开 2000 个文件句柄 一旦出现这个错误 weblogic 将无法对外提供响应 这个可以通过增加资源限制中的 nofiles 的值来解决 系统部署流程 5 3 网络优化网络优化 网络的问题主要是两个方面 响应时间和吞吐量 3 1 响应时间响应时间 这里的响应时间主要是查找和连接网络的时间 响应时间过长的常见原因是 DNS 的解 析造成的 3 1 1 案例 案例 DNS 解析造成服务启动慢解析造成服务启动慢 海南 EIP 在项目实施中 遇到服务启动很慢的问题 一个服务的启动时间需要 20 多分 钟 后来发现系统走了 DNS 解析 没有走本地解析 修改为本地解析后 启动时间缩短为 4 分钟左右 3 2 吞吐量吞吐量 吞吐量主要是指网络的传输速度 这里只讨论网络设备的设置问题 3 2 1 案例 交换机传输模式影响网速案例 交换机传输模式影响网速 由于惠州供电局交换机传输模式是 半双工自适应 造成网速很慢 表现为我们的系 统响应很慢 后改成 全双工 模式 系统响应速度明显提高 输电部 计量部 变电部 登录系统时间 及不同设备界面切换时间响应在 2 秒以内 4 数据库优化数据库优化 目前我司系统使用的数据库主要是 Oracle Oracle 优化主要从 5 个方面来考虑 软件版 本 内存 CPU IO 数据库对象争用和 SQL 4 1 软件版本软件版本 软件版本可以从两个方面考虑 与操作系统响应的版本 与版本相关的补丁 如果版本与操作系统不一致 即便能跑起来 也会产生系统问题 另外 有些版本本身有 bug 这些 bug 可能会造成性能问题 所以需要打上补丁 一 般 2 4 以上的版本被视为稳定版本 系统部署流程 6 4 1 1 案例 案例 64 位机器上安装位机器上安装 32 位位 oracle 的性能问题的性能问题 惠州供电局原来的数据库服务器 cpu 是 64 位 但是为了图方便 安装了 32 位 windows 2003 和 32 位的 oracle 10g 造成只能使用 1 7g 左右的内存 对于 8g 内存的机器 来说 很浪费 后来按照 oracle 给出的扩大内存的方法进行调整 依然无效 原因就是该 机器 cpu 是 64 位的 后来改装 64 位 windows 2003 和 64 位 oracle 10g 性能提高了几倍 4 2 内存优化内存优化 一般 Oracle 建议将操作系统物理内存的 70 分配给它 比如 物理内存是 8G 则分配给 Oracle 的内存就是 5 6G Oracle 的内存主要分两块 SGA 和 PGA 按照 70 的物理内存来划分 则是 SGA 为 60 PGA 为 10 4 2 1 案例 内存设置太小造成性能问题案例 内存设置太小造成性能问题 有人反映 他的系统很慢 感觉主要是数据库慢 连上去看他的数据库 发现 SGA 只 有 300M PGA 只有几十 M 按照 70 的比例进行调整后 发现数据库性能明显提高 相 应的系统吞吐量也大幅提高 4 3 CPU 优化优化 这里把 Oracle 中的 Processes 归为 CPU 方面 其实也不准确 主要是考虑到它们和 CPU 的利用率有关 Processes 参数表明允许同时运行的最大服务器进程数 在独占式连接模式下 一个 Session 就启动一个 Process 你也可以认为建立一个 JDBC 连接就启动一个 Process 4 3 1 案例 案例 Processes 设置太小造成性能问题设置太小造成性能问题 如果 Weblogic 中 JDBC 连接池需要建立的连接数大于 Processes 的值时 则会出现连 接失败而等待 这时候增大 Processes 的值就会消除这种等待而提高性能 4 4 IO IO 主要是两个方面 每个用户使用自己单独的临时表空间 尽量关闭数据表空间的自 动扩展功能 系统部署流程 7 4 4 1 案例 每个用户使用自己单独的临时表空间案例 每个用户使用自己单独的临时表空间 如果没有给用户设置单独的临时表空间 那么用户就会使用系统临时表空间 从而引 起资源竞争 上次东莞供电局邀请第三方做性能诊断时 看到我们的用户没有建立单独的 临时表空间 对于这种尝试性的错误 被别人揪出来会让人怀疑我们的专业性的 4 4 2 案例 尽量关闭数据表空间的自动扩展功能案例 尽量关闭数据表空间的自动扩展功能 在建表空间时就应该估算到表空间的大小 至少是未来一段时间的空间大小 而不要 使用自动扩展 因为自动扩展在实时系统上也是很影响性能的 4 5 数据库对象争用数据库对象争用 数据库对象的争用 主要是指表 索引 序列等的争用 争用这个意思也很好理解 一个对象被引用的多了自然就存在争用 争用就会产生等 待 等待就会影响性能 4 5 1 案例 表被关联的外键太多案例 表被关联的外键太多 如果表被关联的外健太多 当多个关联表同时发生数据变更时 就可能产生等待 所 以在设计上 是不是非要坚持范式设计 也是需要我们自己取舍一下 4 5 2 案例 表上的索引太多案例 表上的索引太多 如果表上的索引很多 那么在更新表的数据时 这些索引都需要被更新 所以对于没 有使用过的索引可以删除 可以通过 dba indexes 视图来查询哪些索引没有使用过 4 5 3 案例 实时表的数据太多案例 实时表的数据太多 原则上来说 实时表的数据应该保持在一个比较小的规模 随着数据的增长 应该考 虑历史表和实时表并存 但是很多时候 我们为了查询的方便 所有数据保存在一个表中 造成效率的低下 这种情况下 可以采取的措施有 1 分表 根据时间 比如 年 月或日为单位 把历史数据分成多个表 2 分区表 根据时间或其他条件字段 对该表分区 3 绑定到内存 将整个表绑定到内存 对数据的检索会有一定的提高 但是对于内存要求太高 系统部署流程 8 4 6 SQL SQL 语句对性能的影响是显而易见的 这里根据以往优化的经验 列举一些案例 4 6 1 案例 绑定变量案例 绑定变量 绑定变量可以减少我们相同 SQL 语句的解析时间 从而提高执行效率 但是通过东莞 的那次性能诊断 还是看到系统中有不少地方没有使用绑定变量 4 6 2 案例 索引案例 索引 索引对于在大表中检索少量数据 其效率是非常高的 但是很多时候我们对索引的使 用不正确而造成效率低下 主要有以下几个方面 1 没有建立索引 数据量小的时候无所谓 大了就看到效率低下了 2 索引使用不上 建了和查询条件不匹配的索引 根本用不上 要知道 数据库不是有索引就一定 会用 而且对于一张表来说 一次查询只能使用一个索引 3 索引统计信息没有更新 还有些情况下 由于索引的统计信息没有更新 导致数据库选择不使用索引 这 时候就需要更新索引状态 Oracle 10g 以后默认自动更新 4 6 3 案例 临时表案例 临时表 正确的使用临时表也会大幅提高系统的性能 因为临时表是和会话绑定的 一个会话 一个临时表 所以它不存在锁的问题 而且临时表的数据都是在内存中 有时候当查询很 复杂的时候 我们可以把查询分解 把一下中间过程数据放到临时表中 然后对临时表查 询 这样会大大提高性能 4 6 4 案例 案例 hint Hint 主要用来告诉数据库按照我们设定的执行计划来抽取数据 比如 尽管索引的统 计信息没有更新 我们也可以通过 Hint 来使用索引 但是如果数据量变少了 可能使用索引的效率还不如全表扫描 但是你使用了 Hint 它还是会走索引 所以说 Hint 是一把双刃剑 需要谨慎使用 4 6 5 视图与索引视图与索引 视图使用索引 实际上是使用视图中原始表的索引 但是如果在视图定义中对原始表 系统部署流程 9 的索引字段定义了别名 则不会用到原始表的索引 这一点要注意 5 中间件优化中间件优化 目前我司系统使用的中间件主要是 Weblogic 中间件优化包括内存设置和参数调整 5 1 Weblogic 建域模式建域模式 Weblogic 的建域模式分为开发模式和产品模式 两者有些参数的设置是不同的 5 1 1 案例 案例 Weblogic 产品模式提升性能产品模式提升性能 我在进行南海 EIP 测试时 使用产品模式的性能要比开发模式的性能高 5 2 Weblogic 内存设置内存设置 Weblogic 的内存调整就是调整 Java 虚拟机的内存 32 位系统上 JVM 的可配置的最大 内存在 1 5G 左右 64 位则不受此限制 通常情况在设置普通堆的大小时 为了避免扩展 带来的性能问题 建议普通堆的最小值和最大值相同 但是一个非常重要的例外是 IBM 的 JVM 则要求两个不能相同 否则会出现垃圾回收 方面的性能问题 5 2 1 案例 案例 IBM 的的 JVM 普通堆的最小值和最大值不同普通堆的最小值和最大值不同 海南局的 EIP 是基于 IBM 的 JVM 开始的时候基于以前的习惯将普通堆的最小值和 最大值设置相同 Xms4096m Xmx4096m 后来根据网上同行的意见设置为 Xms1024m Xmx4096m 5 3 Weblogic 参数调整参数调整 5 3 1 案例 案例 Execute Queue and Threads Count 执行队列可以理解为一个排队的任务群 每当客户端发出一个任务请求 就会被放到 执行队列中 执行队列的线程数的意思是同时启动多少个线程来执行队列中的任务 如果队列中的 任务数大于线程数 那就表明有的任务需要等待 所以线程数的最大值应该和系统的最大 并发数一致 相应的 最小值应该和系统的最小并发量一致 系统部署流程 10 如果是 WebLogic 9 以上版本 线程数由系统自己分配 无须配置 5 3 2 案例 案例 Accept Backlog Accept Backlog 参数表明 Weblogic 向操作系统请求的队列大小 当客户端连接 weblogic 服务器时 在服务器上就监听到一个客户端的连接请求 但是管理客户端连接请求的任务是由操作系统来完成的 而非 Weblogic 操作系统把 这些连接请求存储在一个先进先出的队列中 当队列中的连接请求达到了队列的最大数时 Weblogic 服务器所在的主机操作系统会 拒绝新的连接请求 只有当队列中的连接请求和 Weblogic 成功建立连接后 才会使队列腾 出空位 这时队列才能继续加入新的连接请求 所以 当客户端收到类似 connection refused 的信息 就表明队列已经满了 这时候可 以调大 Acc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营养师考试备考 2025年实操技能冲刺模拟试卷
- 2025年春季英语四六级专项训练:冲刺押题模拟试卷
- 2025年公务员考试行测言语理解专项试卷:逻辑判断与推理能力冲刺押题
- 2025年CPA考试 会计科目全真模拟试卷及解题技巧
- 2026届佛山市普通高中化学高三第一学期期末质量检测模拟试题含解析
- 安徽省示范中学培优联盟2026届高二化学第一学期期末经典试题含答案
- 王牌交易平台拆分课件
- 2026届安徽省部分高中化学高一上期中质量检测模拟试题含解析
- 言情小说竞赛题目及答案
- 第十三讲蛋白质分子设计
- EN1112标准(中文版)
- 产学研合作管理制度
- 卫生部《病历书写基本规范》解读(73页)
- 生物必修一课程纲要
- 南方332全站仪简易使用手册
- 人民调解员培训讲稿村级人民调解员培训.doc
- 高低压配电安装工程-技术标部分(共41页)
- 监理规划编制案例
- 图画捉迷藏-A4打印版
- 受限空间作业票
- 盘扣式外脚手架施工方案
评论
0/150
提交评论