SAP内存配置优化经验谈

http://jingyan.baidu.com/article/215817f7e112bb1eda142394.html
?SAP应用系统构成


–SAP GUI:客户端


–SAP Application Server:本篇重点


–SAP DB Server:根据DB种类进行参数调整

工具/原料

  • ?概述

  • ?SAP 内存架构

  • ?最佳优化实践

方法/步骤

  1. SAP Application Server架构


    ?Dispatcher


    ?Work Process


    –Dialog:前台操作


    –Update:异步数据更新


    –Background:后台任务


    –Enqueue:用于加锁与同步


    –Spool:用于打印

  2. 内存使用


    ?User Context


    –user-specific area: user and authorization data


    –session context: 每个前台用户可以有6个Session


    ?Variables


    ?Internal Tables

    SAP内存配置优化经验谈
  3. ?什么是内存切换?


    ?为什么要进行内存切换?

    ?所有的前台操作都是由一批有限数量的后台Dialog进程进行服务的


    ?一个Dialog进程可能需要同时服务多个前台进程


    –一个Dialog进程是如何为多个前台会话服务的?


    ?每一个前台操作,是由一系列Transaction Step组成


    ?每个Transaction Step是SAP ABAP程序独立运行的最小单位


    ?每个Transaction Step作为一个Dialog运行请求被提交给Dispatcher


    ?Dispacher将任务指派给某个Dialog进程去处理


    –所以,Dialog进程需要在处理每个Transaction Step前后切换User Context

    SAP内存配置优化经验谈
  4. ?进入PRIV模式:直到当前的Transaction结束


    ?进入PRIV模式的进程的自动终结


    –PRIV模式进程个数超过Max(rdisp/wppriv_max_no-5, 1)


    –进入PRIV模式时间超过rdisp/max_priv_time(default=600s)


    –非Dialog进程不受影响

    Dialog进程如何分配内存

    SAP内存配置优化经验谈
    SAP内存配置优化经验谈
  5. 最佳优化实践-左右为难

    ?多分配一些内存给数据库可以提高数据访问速度,但是过多也会造成操作系统Page in/out过多,而降低性能


    ?Roll Area过大,内存复制的开销会很大,过小则容易使非Dialog进程进入PRIV模式


    ?Extended Memory应设得大一些,以避免Dialog进程进入PRIV模式,但太大了容易造成过多的操作系统Page in/out


    ?Dialog进程设得多一些可以提高前台响应速度,但过多又太浪费内存

  6. 最佳优化实践-优化方法

    ?数据库访问通常不会成为瓶颈,因此可以少分配内存给它;而且,当我们合理地设置了操作系统Cache时,与数据库本身Cache的性能区别不大


    ?ztta/roll_first应该设得小一些,以使得Dialog进程尽量使用Extended Memory, ztta/roll_area也无需太大,以节省每个进程所占用的内存


    ?Extended Memory应该设得较大,以避免进入PRIV模式,但又保证系统使用内存总量(扣除OS Cache)不超过物理内存太多


    ?Dialog进程数量应经过一个阶段的试用而定,主要是保证最大队列长度不太大


    ?abap/heaplimit设为一个大小适中的值,可以少占内存


    ?abap/buffersize无需设得过大,只要没有明显受到影响即可

    END

注意事项

  • 最佳优化实践-左右为难

  • 最佳优化实践-优化方法

请使用浏览器的分享功能分享到微信等