SAP内存配置优化方法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Baidu Nhomakorabea
• Dispatcher • Work Process
• Dialog:前台操作 • Update:异步数据更新 • Background:后台任务 • Enqueue:用于加锁与同步 • Spool:用于打印
内存使用
• User Context
• user-specific area: user and authorization data • session context: 每个前台用户可以有6个Session
• Dialog进程设得多一些可以提高前台响应速度,但过多 又太浪费内存
最佳优化实践-优化方法
• 数据库访问通常不会成为瓶颈,因此可以少分配内存给它;而 且,当我们合理地设置了操作系统Cache时,与数据库本身 Cache的性能区别不大
• ztta/roll_first应该设得小一些,以使得Dialog进程尽量使用 Extended Memory, ztta/roll_area也无需太大,以节省每个进 程所占用的内存
• PRIV模式进程个数超过Max(rdisp/wppriv_max_no-5, 1) • 进入PRIV模式时间超过rdisp/max_priv_time(default=600s) • 非Dialog进程不受影响
Private Memory-进程重起
• abap/heaplimit
Dialog进程如何分配内存
• 每一个前台操作,是由一系列Transaction Step组成 • 每个Transaction Step是SAP ABAP程序独立运行的最小单位 • 每个Transaction Step作为一个Dialog运行请求被提交给Dispatcher • Dispacher将任务指派给某个Dialog进程去处理
Extended Memory
• 所有SAP进程间的共享内存 • 不需要复制,只需要重定向指针 • em/initial_size_MB • 用unnamed mapped file实现
Private Memory
• 进入PRIV模式:直到当前的Transaction结束 • 进入PRIV模式的进程的自动终结
• 所以,Dialog进程需要在处理每个Transaction Step前后切换User Context
内存使用分类
• Roll Area • Extended Memory • Private Memory
SAP 内存架构
Roll Area
• 进程的私有内存 • SAP使用复制保存的方法来维护User Context • 含有2个部分:ztta/roll_first, ztta/roll_area
非Dialog进程如何分配内存
最佳优化实践-优化目标
• 最佳的前台响应时间
最佳优化实践-要解决的问题
• Dialog进程应该设多少个? • Extended Memory(em/initial_size_MB)应该设多大? • Roll Area(ztta/roll_first, ztta/roll_area)应该设多大? • 数据库应该被分配多大内存?
最佳优化实践-左右为难
• 多分配一些内存给数据库可以提高数据访问速度,但 是过多也会造成操作系统Page in/out过多,而降低性 能
• Roll Area过大,内存复制的开销会很大,过小则容易 使非Dialog进程进入PRIV模式
• Extended Memory应设得大一些,以避免Dialog进程进 入PRIV模式,但太大了容易造成过多的操作系统Page in/out
• Extended Memory应该设得较大,以避免进入PRIV模式,但又 保证系统使用内存总量(扣除OS Cache)不超过物理内存太多
• Dialog进程数量应经过一个阶段的试用而定,主要是保证最大 队列长度不太大
• abap/heaplimit设为一个大小适中的值,可以少占内存 • abap/buffersize无需设得过大,只要没有明显受到影响即可
SAP内存配置优化方法
汉得信息技术有限公司 石伟民
主要内容
• 概述 • SAP 内存架构 • 最佳优化实践
概述
• SAP应用系统构成
• SAP GUI:客户端 • SAP Application Server:本篇重点 • SAP DB Server:根据DB种类进行参数调整
SAP Application Server架构
• Variables • Internal Tables
SAP的内存使用
内存切换
• 什么是内存切换? • 为什么要进行内存切换?
内存切换
• 所有的前台操作都是由一批有限数量的后台Dialog进程进 行服务的
• 一个Dialog进程可能需要同时服务多个前台进程
• 一个Dialog进程是如何为多个前台会话服务的?
相关文档
最新文档