SAP内存架构分析-优化配置

合集下载

SAP性能优化的培训V2

SAP性能优化的培训V2

© SPRO 2018/ Page 10
SAP性能监控工具
Workload Monitor
ST03 or ST03N
Work Process Overview
Transaction SM50 / SM66
Database
Setup
Monitor
Transaction ST04
Buffers
Transaction ST02
Extended Memory该行的值应该足够大。值e应该小于In memory的值,如果二者 相等就需要增加扩展内存的容量
SAP内存区域
内存区域 1 2 3 4 5 6 7 8 9
© SPRO 2018/ Page 21
作用 SAP Buffer (Program, Screen, Data Dictionary), Extended Memory, Roll Buffer, Paging Buffer Local Roll, Local Page, Heap Memory 主要存储user context,比如程序指针,set/get parameters,权限,内表,报表 主要存储程序相关数据。比方说 extract,Import and Export,call transction之类 对应Roll area,roll-in过程表示从roll buffer中 copy user context到rollArea roll 相反
© SPRO 2018/ Page 13
监控工具--工作进程监控 SM50
© SPRO 2018/ Page 14
监控工具--工作进程监控 SM66
© SPRO 2018/ Page 15
监控工具—数据库监控 ST04

SAP系统配置参数详解

SAP系统配置参数详解

SAP系统配置参数详解SAP系统配置参数详解1.查看所有的参数及当前设定,可使⽤T-CODE SA38 执⾏程序 RSPARAMT-CODE sa38SAP 系统参数设置设置SAPGUI⾃动LogOut功能当客户端长时间没有使⽤时,为了不占⽤SAP服务器的资源,我们可以设置当客户端在⼀段时间没有进⾏操作时⾃动退出SAP系统。

设置步骤如下:⽤Tcode rz10打开参数配置窗⼝,选择你当前的实例参数⽂件,再选扩展编辑,按修改按钮进⼊扩展参数编辑窗⼝中。

按参数创建按钮,创建⼀个名为“rdisp/gui_auto_logout”的参数,参数值输⼊“800”,代表如果客户10分种(600秒)没有进⾏操作,则会⾃动退出SAP 系统。

按退出保存设置。

在rz10窗⼝按保存把参数传送到系统的参数⽂件中。

重启SAP实例,使配置参数⽣效。

我们还可⽤rz11来设置当前正在运⾏的实例的⼀些参数,但⽤这种⽅法设置的参数只会影响当前运⾏的实例,⼀旦重启实例,参数就会失效。

path: /usr/sap/PRD/SYS/profileprofile: PRD_DVEBMGS00_sapappT-CODE:RZ10进⾏SAP系统参数的设置,设置后需激活参数并重启SAP实例,配置参数才会⽣效login/system_client 登录时默认的Client号login/password_expiration_time 密码有效期login/fails_to_user_lock 密码输错多少次后锁定login/failed_user_auto_unlock ⽤户失效后多长时间解锁rdisp/mshost 状态栏中显⽰的系统名称rdisp/rfc_use_quotas 是否激活配额资源分配,0是关闭,1是启⽤.以下相关限制必须这个为1时才⽣效.rdisp/gui_auto_logout 表⽰如果客户在指定时间内没有进⾏任何操作,则会⾃动退出SAP系统。

内存管理(SAP和ABAP内存)缓存设定以及程序memory管理等

内存管理(SAP和ABAP内存)缓存设定以及程序memory管理等

内存管理(SAP和ABAP内存)缓存设定以及程序memory管理等内存有两种,一种是SAP内存,一种是ABAP内存:(这两种内存都是针对同一个用户,如果要针对不用用户就要使用共享object,请参考后面内容)他们两者的关系如下图:还有一个概念需要理解的:用户登陆后,最多一个系统可以开6个窗口,这在SAP中称为External Mode。

而同一个窗口中,运行某程序后,可以通过CALLTRANSACTION/SUBMIT或其他代码跳转到其他程序,这个称为Internal Mode。

Internal Mode的调用栈最多为9层。

那么ABAP Memory,它是属于Internal Mode间可以共享的数据,而External Mode间无法共享。

SAP Memory就可以调用不同session的。

1、ABAP内存:通过EXPORT,IMPORT实现。

同一个session(一个窗口)才可以。

如果是不同session,必须在另外一个程序通过submit,call transaction调用,然后才可以实现内存传输。

实现方法如下:例子. 创建程序A,输入:DATA matnr TYPE matnr.IMPORT matnr FROM MEMORY ID 'YTEST_MATNR'.WRITE matnr.创建程序B,输入:DATA matnr TYPE matnr.matnr = '000000000000001234'.EXPORT matnr TO MEMORY ID 'YTEST_MATNR'.SUBMIT y_program_a. '调用程序A直接运行B,发现程序A从ABAP Memory读到了值并输出到LIST.说明:(1)调试运行B到EXPORT语句后面,Goto-System Area-ABAP Memory,可以查看到名为YTEST_MATNR的一片内存。

sap组织架构设置 -回复

sap组织架构设置 -回复

sap组织架构设置-回复SAP组织架构设置:提高企业效能的关键引言:在当今竞争激烈的市场环境中,组织架构的设置对企业的成功至关重要。

SAP(Systems, Applications, and Products in Data Processing)作为全球领先的企业应用解决方案提供商,其组织架构的设置对于公司的运作和绩效发挥着至关重要的作用。

本文将向您阐述SAP组织架构设置的重要性,并逐步解释如何设计和实施一个高效的SAP组织架构。

第一部分:SAP组织架构的重要性1. 提高协同合作能力SAP组织架构的设计可以促进不同部门和团队之间的协同合作。

通过明确的职责和角色定位,SAP组织架构能够建立一个有效的沟通和合作网络,有助于各个团队共同努力实现公司的目标。

2. 简化决策流程一个清晰的SAP组织架构可以简化决策流程,提高决策的效率和准确性。

通过明确的层级结构和责任分工,决策者可以更轻松地了解和管理组织的各个方面,从而更快地做出正确的决策。

3. 优化资源利用通过合理的SAP组织架构,企业可以更好地优化资源的利用。

通过合理地配置人员和分配任务,可以确保人力、物力和财力的合理分配,提高资源利用效率,降低成本,提升整体绩效。

第二部分:设计一个高效的SAP组织架构1. 分析和了解业务需求首先,为了设计一个高效的SAP组织架构,企业需要充分了解其业务需求。

这可以通过与各部门和团队的沟通和合作来实现。

通过与不同利益相关方的交流,我们可以了解他们的需求,确定在SAP系统中需要考虑的功能和流程。

2. 定义SAP组织架构的目标和原则在设计SAP组织架构之前,企业需要明确制定目标和原则。

这些目标和原则将成为设计过程中的指导和依据。

目标可以包括提高协同合作能力、简化决策流程、优化资源利用等;原则可以包括确保适当的授权和责任分工、合理的层级结构、明确的职责和角色等。

3. 制定组织结构图基于对业务需求的了解和目标的设定,企业可以开始制定SAP组织结构图。

SAP_ABAP性能优化

SAP_ABAP性能优化

第 3 页
二. 程序性能效率优化的重点
降低CPU负载(减少循环次数) 降低数据库负载(减少IO操作) 内存使用的优化(减少内表大小)
SAP系统三层架构
第 4 页
三. 怎样降低CPU负载
侧重于程序语句处理逻辑:减少循环次数
1.使用WHERE条件减少循环次数; 2.尽量避免使用MOVE-CORRESPONDING 和 INTO CORRESPONDING FIELDS OF; 3.使用SORTED TABLE 和 HASHED TABLE表类型; 4.使用 BINARY SEARCH 二分查找算法; 5.使用较高效的 DELETE ADJACENT DUPLICATES FROM 删除内表邻近重复记录; 6.使用较高效的COLLECT语句对记录进行聚集加总; 7.嵌套loop语句,可以用先read在loop at from。
不推荐
SELECT ebeln AS ekknebeln INTO TABLE it_ebeln FROM ekko WHERE ebeln = p_ebeln .
推荐
第 14 页
降低数据库负载-2
避免使用SELECT *.
第 15 页
降低数据库负载-3.1
使用FOR ALL ENTRIES IN 语句联接数据表和内表.
ABAP程序性能优化
目录
一. 前言 二. 程序性能优化的重点 三. 怎样降低CPU负载 四. 怎样降低DB负载
五. 怎样降低程序内存使用
六. 怎样检查程序性能
第 2 页
一.前言
本文提供一些常用的方法,用以提高ABAP程序运行速度、 降低系统荷载、节省内存开销。但这些方法不是孤立的, 我们的最终的目的是在三者之间达到一种平衡。

SAP程序性能优化解析

SAP程序性能优化解析

SAP程序性能优化解析For all entriesThe for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger thanrsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause. The plus Large amount of dataMixing processing and reading of dataFast internal reprocessing of dataFastThe MinusDifficult to program/understandMemory could be critical (use FREE or PACKAGE sizeSome steps that might make FOR ALL ENTRIES more efficient: Removing duplicates from the driver tableSorting the driver tableIf possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:FOR ALL ENTRIES IN i_tabWHERE mykey >= i_tab-low and mykey <=i_tab-high.Nested selectsThe plus:o Small amount of datao Mixing processing and reading of datao Easy to code - and understandThe minus:o Large amount of datao when mixed processing isn’t neededo Performance killer no. 1Select using JOINSThe pluso Very large amount of datao Similar to Nested selects - when the accesses are planned by the programmer o In some cases the fastesto Not so memory criticalThe minuso Very difficult to program/understando Mixing processing and reading of data not possibleUse the selection criteriaSELECT * FROM SBOOK.CHECK: SBOOK-CARRID = 'LH' AND SBOOK-CONNID = '0400'.ENDSELECT.SELECT * FROM SBOOKWHERE CARRID = 'LH' ANDCONNID = '0400'.ENDSELECT.Use the aggregated functionsC4A = '000'.SELECT * FROM T100WHERE SPRSL = 'D' ANDARBGB = '00'.CHECK: T100-MSGNR > C4A.C4A = T100-MSGNR.ENDSELECT.SELECT MAX( MSGNR FROM T100 INTO C4A WHERE SPRSL = 'D' ANDARBGB = '00'.Select with viewSELECT * FROM DD01LWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'. SELECT SINGLE * FROM DD01T WHERE DOMNAME = DD01L-DOMNAME AND AS4LOCAL = 'A' AND AS4VERS = DD01L-AS4VERS AND DDLANGUAGE = SY-LANGU. ENDSELECT.SELECT * FROM DD01V WHERE DOMNAME LIKE 'CHAR%' AND DDLANGUAGE = SY-LANGU. ENDSELECT.Select with index supportSELECT * FROM T100WHERE ARBGB = '00'AND MSGNR = '999'. ENDSELECT.SELECT * FROM T002.SELECT * FROM T100WHERE SPRSL = T002-SPRASAND ARBGB = '00'AND MSGNR = '999'.ENDSELECT. ENDSELECT.Select … Into tableREFRESH X006.SELECT * FROM T006 INTO X006.APPEND X006. ENDSELECTSELECT * FROM T006 INTO TABLE X006. Select with selection list SELECT * FROM DD01LWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'. ENDSELECTSELECT DOMNAME FROM DD01LINTO DD01L-DOMNAMEWHERE DOMNAME LIKE 'CHAR%'AND AS4LOCAL = 'A'.ENDSELECTKey access to multiple linesLOOP AT TAB.CHECK TAB-K = KVAL." ...ENDLOOP.LOOP AT TAB WHERE K = KVAL." ... ENDLOOP.Copying internal tablesREFRESH TAB_DEST.LOOP AT TAB_SRC INTO TAB_DEST. APPEND TAB_DEST. ENDLOOP.TAB_DEST[] = TAB_SRC[].Modifying a set of linesLOOP AT TAB.IF TAB-FLAG IS INITIAL.TAB-FLAG = 'X'.ENDIF.MODIFY TAB.ENDLOOP.TAB-FLAG = 'X'.MODIFY TAB TRANSPORTING FLAG WHERE FLAG IS INITIAL.Deleting a sequence of linesDO 101 TIMES.DELETE TAB_DEST INDEX 450. ENDDO.DELETE TAB_DEST FROM 450 TO 550.Linear search vs. binaryREAD TABLE TAB WITH KEY K = 'X'.READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH. Comparison of internal tablesDESCRIBE TABLE: TAB1 LINES L1,TAB2 LINES L2.IF L1 <> L2.TAB_DIFFERENT = 'X'.ELSE.TAB_DIFFERENT = SPACE.LOOP AT TAB1.READ TABLE TAB2 INDEX SY-TABIX.IF TAB1 <> TAB2.TAB_DIFFERENT = 'X'. EXIT.ENDIF.ENDLOOP.ENDIF.IF TAB_DIFFERENT = SPACE." ...ENDIF.IF TAB1[] = TAB2[]." ...ENDIF.Modify selected components LOOP AT TAB. TAB-DATE = SY-DATUM. MODIFY TAB. ENDLOOP. WA-DATE = SY-DATUM. LOOP AT TAB. MODIFY TAB FROM WA TRANSPORTING DATE. ENDLOOP. Appending two internal tables LOOP AT TAB_SRC. APPEND TAB_SRC TO TAB_DEST. ENDLOOP APPEND LINES OF TAB_SRC TO TAB_DEST. Deleting a set of lines LOOP AT TAB_DEST WHERE K = KVAL. DELETE TAB_DEST. ENDLOOP DELETE TAB_DEST WHERE K = KVAL. Tools available in SAP to pin-point a performance problem The runtime analysis (SE30 SQL Trace (ST05 Tips andTricks tool The performance databaseOptimizing the load of the database Using table buffering Using buffered tables improves the performance considerably. Note that in some cases a statement can not be used with a buffered table, so when using these statements the buffer will be bypassed. These statements are: o o o o o Select DISTINCT ORDER BY / GROUP BY / HAVING clause Any WHERE clause that contains a sub query or IS NULL expression JOIN s A SELECT... FOR UPDATE If you wan t to explicitly bypass the buffer, use the BYPASS BUFFER addition to the SELECT clause. Use the ABAP SORT Clause Instead of ORDER BY The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The database server will usually be the bottleneck, so sometimes it is better to move the sort from the database server to the application server. If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement but are sorting by another key, it could be better to use the ABAP SORT statement to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the databaseserver sort it. Avoid the SELECT DISTINCT Statement As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplicate rows.。

SAP内存管理

cess
– – – – – Dialog:前台操作 Update:异步数据更新 Background:后台任务 Enqueue:用于加锁与同步 Spool:用于打印
汉得信息技术有限公司®
内存使用
• User Context
– user-specific area: user and authorization data – session context: 每个前台用户可以有6个Session
汉得信息技术有限公司®
Private Memory-进程重起
• abap/heaplimit
汉得信息技术有限公司®
Dialog进程如何分配内存
汉得信息技术有限公司®
非Dialog进程如何分配内存
汉得信息技术有限公司®
最佳优化实践-要解决的问题
• Dialog进程应该设多少个? • Extended Memory(em/initial_size_MB)应该 设多大? • Roll Area(ztta/roll_first, ztta/roll_area)应该设 多大? • 数据库应该被分配多大内存?
– 所以,Dialog进程需要在处理每个Transaction Step前后切 换User Context
汉得信息技术有限公司®
内存使用分类
• Roll Area: • Extended Memory • Private Memory
汉得信息技术有限公司®
SAP 内存架构
汉得信息技术有限公司®
Roll Area
• Variables • Internal Tables All user contexts are contained in a common resource (SAP Extended Memory, SAP Roll Area), which enables a fast context change

SAP系统架构研究与优化设计

无 法 忍 受 的 程 度 方法 2的实现技术 比较成熟 . 在一定时间 内可 以满足新开发程序
2 . S A P 系统 优 、 缺 点 分 析
2 . 1 S AP系统性能特点 S A P以模块 化的形式提供 了一整套业 务措施. 其 中的模块几乎 囊 括 了全 部所需要 的业 务功能并 把用户与技术 性应用 软件相联而形 成 个总括 的系统 . 用 于企业 或企业 战略上 和运用上 的管 理 2 . 2软件产品的成熟度高 经过 近 3 0年与全球 大企业用户 的合作 . S A P 系 统积累 了大量先 进企业的业务管理流程 对于用户来说 . 只需根据在 系统中挑选适 当 的业务流程 . 在软件 中进行配置 。 而对软件 的二次开发工作量较少 , 从 而用户能够把主要的精力都花在企业业务流程的优化上 以上介绍 了 S A P 系统相对其 他同类产 品的优点 .下文介 绍其存 在的问题 。 2 . 3开发技术相对滞后 A P P l v 获取变化增量的结果 . 并根据复制映射关系进行转换 . 按照一定 S A P 软件 的主体部 分还 是完全用其私有 的 A B A P 语 言编写的 . 学 量 ; 标数据: Mo n i t o r 监控复制过程 . 并给出监控 息 习和 使 用都 很 困难 且 与 I N T E R N E T或 网络应 用 WE B技术 不 兼 容 的时间规划作用于目 ( J A VA目前已经成为全球 I N T E R N E T应用系统 的应用开发标准 .而懂 5 . 系统架构优化设计 当前 . S A P系统并发用户人数 约为 1 5 0 人. 使用应用 负载均衡 服 A B A P 语言的开发人员非常少 ) . 虽然 S A P也在试 图转向 J A V A标准 . 但 提高 了服务器 响应用户 需求 的 由于其 目 前 的系统过于复杂和庞大. 完全的转型几乎不可能 这将给这 务有效的分解了用户并 发访 问的压力 . 些选用该 C / S系统 的企业带来 巨大的系统投资费用 和系统维护成本 能力 . 由于 E R P系统 为企业 核心系统 . 而数据库只存在 于一 台计算机 系统中 . 当发生数据库 或者操作 系统宕 机时 . 对企业数 据安全将是极 2 . 4 软件 的开放性和集成性能差 如何保 障数据库数据安全需要深入的探讨 和研究 S A P的软件各模块 在搭建上采用的是传统应用 软件 的模式 . 即在 大的挑 战. 经过优化设计存在 的优点如下 : 程序中用包含头 函数以及子程序等模式 . 这种模式在 与第 三方软件交 ( 1 ) 在新报表开发完毕后 . 需要对报表进行测 试 , 要求测试 的数据 换 数据时 . 只能通过编写接 口程序来实现 具有实时性 . 可 以在备用系统中进行 . 这样 . 可以减少 生产机的工作负 3 . S A P 系统 实践 担. 若报表存在逻辑错误 . 对生产机的影响则是致命 的 . 这将大大降低 本公司通过需 求调研分析 . 建议实施 S A P的以下几个模块 : 财务会计模块( F D 、 管 理会 计模块( C O ) 、 销售 与分销模块f s D 1 、 物料 因测试 引起生产机宕机风险 ( 2 ) 通过 S Q L数据复制 方式 . 实现数据 同步 . 与备 份相 比数据 同 管理 模块 f M M ) 、 生产计 划模块( P P 1 、 质量 管理模块( Q M ) 、 工厂维修模 块 生 高, 数据可用性强 . 备份数 据所耗 费时间短 。 ( P M ) 、 人力资源模块 ( H R ) 、 项目 管理模块 ( P S ) 、 预算管理模块( B P S ) 等。 步实时 I ( 3 ) 业务人员查询报表数据 时 . 可以通过备用 系统查看 . 可以降低 S A P 系统软件提供 了一种策略性解决方案 企业必 须运用 动态 战 减 轻生产机 服务器压力 略对瞬息万变 的挑 战做 出反应 . 迅速适应客 户新 需求和市场新商机 的 系统运行成本 . ( 4 ) 可 以将备 份 D B 2 数 据库放置 在异地 , 实 现异地数 据同步 . 有 能力 , 是赢得竞争胜利 的决定性 因素 , 此种适应力需 要一个功能强大 、 效的防止天灾人祸 引起 的数据安全 问题 . 提高数据安全性 开放式 的基础结构 , 它可针对 目前 的企业流程 提供 最佳支援 . 并能灵

SAP服务器配置建议_国通

架构图:
硬件建议
数据库服务器–建议配置:
CPU 2 x Intel Xeon 2.8 GHz(4核以上)
内存12 GB
硬盘 3 x 300 G, RAID 5
网络500 MB
磁带机(可选) 12/24 GB
远程服务器–建议配置:
CPU Intel Xeon 1 GHz
内存32 GB
硬盘 1 x 100 G
网络1000 MB
注:若服务器决定放于香港,则建议使用两强远程服务器,如果分开,则每台内存可以减半,以提高使用效率
客户端–要求:
CPU P 4 2.0 GHz
内存1G
硬盘 1 GB 空余磁盘空间
网卡100 MB
显示器1024 x 768 分辨率
网络需求–建议:
远程服务器 4 M 独享带宽
远程客户端1M
远程接入方式–有第三种方法:
方式一:VPN 专线VPN或通过VPN软件
方式二:远程桌面微软远程桌面
方式三:远程接入软件Citrix(国外,较贵)或瑞友天翼或RAS等等软件建议
服务器:
操作系统Windows 2008 企业版64-bit
数据库MS-SQL 2008企业版(可向微软购买许可或购买SAP绑定许可)防病毒软件必选
办公软件Office 2003或以上
客户端:
操作系统: MS Windows XP / Win7
防病毒软件可选
MS Office MS Office 2003或以上。

SAPABAP程序性能优化

SAPABAP程序性能优化SAPABAP是一种高级商务应用编程语言,用于在SAP系统中开发和定制程序。

在开发ABAP程序时,程序的性能是一个重要的考虑因素。

优化ABAP程序的性能可以提高系统的响应速度和吞吐量,提高用户体验,减少系统负载,延长硬件使用寿命并节省资源。

下面将介绍一些常见的优化技术和最佳实践。

1.使用合适的数据库访问方法:SAPABAP程序通常需要与数据库进行交互。

在数据库访问方面,使用合适的方法可以大大提高性能。

例如,使用SELECT语句并带有合理的WHERE条件可以减少检索的数据量。

使用内部表进行数据操作,而不是使用数据库表,可以避免不必要的数据库访问。

2.避免在循环中执行数据库访问操作:在循环中执行数据库访问是一个常见的性能瓶颈。

如果可能的话,尽量避免在循环中执行数据库访问操作。

可以将数据库操作放在循环外部,并使用适当的数据结构来处理数据,以减少数据库访问的次数。

3.使用合适的索引:索引是一种用于加速数据库查询操作的数据结构。

为数据库表添加适当的索引,可以减少查询操作的时间复杂度,提高查询性能。

在ABAP程序中,可以使用数据库表的维护事务码(SE14)来添加或删除索引。

4.使用合适的缓存技术:缓存是一种将频繁访问的数据存储在存储介质中的技术。

在ABAP程序中,可以使用SAP提供的缓存技术,如共享内存和工作区缓存,来提高数据访问的性能。

使用缓存可以减少数据库访问的次数,从而显著提高程序的性能。

5.避免冗余的计算:在ABAP程序中,可以通过避免重复计算来提高性能。

如果一些计算结果在程序中多次使用,可以将结果存储在一个变量中,并在需要时使用该变量,而不是每次都重新计算。

6.使用合适的数据类型:选择合适的数据类型可以提高程序的性能。

例如,使用整数类型(INTEGER)而不是字符类型(CHAR)来存储整数数据,可以减少内存占用和计算时间。

在ABAP程序中,可以使用合适的数据类型以及相应的类型转换操作,来提高程序的性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

▫ 所以,Dialog进程需要在处理每个Transaction Step前后 切换User Context
内存使用分类
• Roll Area • Extended Memory • Private Memory
SAP 内存架构
Roll Area
• 进程的私有内存 • SAP使用复制保存的方法来维护User Context • 含有2个部分:ztta/roll_first, ztta/roll_area
SAP内存架构分析
----优化配置
Ver1.0 2015年3月27日 Aaron
主要内容
• 概述 • SAP 内存架构 • 最佳优化实践
概述
• SAP应用系统构成
▫ SAP GUI:客户端 ▫ SAP Application Server:本篇重点 ▫ SAP DB Server:根据DB种类进行参数调整
▫ PRIV模式进程个数超过 Max(rdisp/wppriv_max_no-5, 1) ▫ 进入PRIV模式时间超过 rdisp/max_priv_time(default=600s) ▫ 非Dialog进程不受影响
Private Memory-进程重起
• abap/heaplimit
Dialog进程如何分配内存
最佳优化实践-左右为难
• 多分配一些内存给数据库可以提高数据访问速度, 但是过多也会造成操作系统Page in/out过多,而 降低性能 • Roll Area过大,内存复制的开销会很大,过小则 容易使非Dialog进程进入PRIV模式 • Extended Memory应设得大一些,以避免Dialog 进程进入PRIV模式,但太大了容易造成过多的操 作系统Page in/out • Dialog进程设得多一些可以提高前台响应速度, 但过多又太浪费内存
SAP Application Server架构
• Dispatcher • Work Process
▫ ▫ ▫ ▫ ▫ Dialog:前台操作 Update:异步数据更新 Background:后台任务 Enqueue:用于加锁与同步 Spool:用于打印
内存使用
• User Context
▫ user-specific area: user and authorization data ▫ session context: 每个前台用户可以有6个Session
每一个前台操作,是由一系列Transaction Step组成 每个Transaction Step是SAP ABAP程序独立运行的最小单位 每个Transaction Step作为一个Dialog运行请求被提交给 Dispatcher Dispacher将任务指派给某个Dialog进程去处理
最佳优化实践-优化方法
• 数据库访问通常不会成为瓶颈,因此可以少分配内存给它; 而且,当我们合理地设置了操作系统Cache时,与数据库 本身Cache的性能区别不大 • ztta/roll_first应该设得小一些,以使得Dialog进程尽量使 用Extended Memory, ztta/roll_area也无需太大,以节 省每个进程所占用的内存 • Extended Memory应该设得较大,以避免进入PRIV模式, 但又保证系统使用内存总量(扣除OS Cache)不超过物 理内存太多 • Dialog进程数量应经过一个阶段的试用而定,主要是保证 最大队列长度不太大 • abap/heaplimit设为一个大小适中的值,可以少占内存 • abap/buffersize无需设得过大,只要没有明显受到影响即 可
Variables Internal Tables
SAP的内存使用
内存切换
• 什么是内存切换? • 为什么要进行内存切换?
ห้องสมุดไป่ตู้
内存切换
• 所有的前台操作都是由一批有限数量的后台Dialog 进程进行服务的 • 一个Dialog进程可能需要同时服务多个前台进程
▫ 一个Dialog进程是如何为多个前台会话服务的?
Extended Memory
• • • • 所有SAP进程间的共享内存 不需要复制,只需要重定向指针 em/initial_size_MB 用unnamed mapped file实现
Private Memory
• 进入PRIV模式:直到当前的Transaction结束 • 进入PRIV模式的进程的自动终结
非Dialog进程如何分配内存
最佳优化实践-优化目标
• 最佳的前台响应时间
最佳优化实践-要解决的问题
• Dialog进程应该设多少个? • Extended Memory(em/initial_size_MB)应该设 多大? • Roll Area(ztta/roll_first, ztta/roll_area)应该设 多大? • 数据库应该被分配多大内存?
相关文档
最新文档