sap memory调优

1:操作系统physical memory 和 swap

# swapinfo
             Kb      Kb      Kb   PCT  START/      Kb
TYPE      AVAIL    USED    FREE  USED   LIMIT RESERVE  PRI  NAME
dev     31719424 7685696 24033728   24%       0       -    1  /dev/vg00/lvol2
reserve       - 6339036 -6339036
memory  7949508 2536248 5413260   32%

(要理解伪交换,首先得清楚交换区的概念和HP-UX的交换机制!
交换区,就是系统物理内存不足时,OS用来临时存放物理内存的的一部分数据,从而腾出更多的物理内存空间!
HP-UX的交换机制:系统每启动一个进程,都会在交换区预留一定的空间(等同于该进程使用物理内存的大小),以防内存不足时,有足够的交换区来临时存放数据,但不一定真正使用。但是交换区预留以后,不管是不是真的被使用,就不能再被其它进程预留(使用),除非该进程运行完毕自然释放。
打个比方,酒店里客人预定了座位,那么这个座位就不能再接受别人的预定,除非客人打电话取消预定。当然,即使客人预定了不代表就一定来吃。
和交换区预留不一样的是:座位预定了通常客人是要来真正使用的,而交换区预留以后通常是不使用的。
这种机制会导致的一个问题是:如果内存很大,可能会导致内存浪费!为什么呢?
假设系统物理内存是8G,那么按照常规的设置,交换区大小是内存的1-2倍,就是8-16G!但是,通常的情况是,购买了大内存,就是为了避免内存不足产生交换,这种状况下,交换区是很少有机会做真正的数据交换的。有些客户会把交换区设为4G或者更少到2G(这完全有可能;节省存储空间啊)!
后果是,随着新进程的不断启动,当交换区被预留完了以后,系统就不能再启动新的进程;而此时其实物理内存可能还有3G或者更多的空余,却什么也不能干了!
为了解决这个矛盾,HP-UX推出“伪交换区”的概念!就是当系统启用伪交换以后,系统会默认为交换区的总数=物理内存的75%+其它交换区的总数。而这个75%的伪交换区其实是不存在的(欺骗):不在内存、不在硬盘或者任何文件系统中。意思就是说,当真正的交换区用光了还要启动新进程时,告诉系统,我的交换区还多着呢,该启动谁尽管启动......
是否启用伪交换,可以通过系统内核参数swapmem_on来设置,1表示启用,0表示不启用。
通常,实际交换区的大小大于或等于物理内存大小时,这个参数启不启用没什么影响;否则建议启用伪交换。
但是,注意有些应用程序(很少),当启用伪交换时,性能可能会下降!)

 

System Page Size: 4Kbytes
Memory: 5031688K (1707228K) real, 14773260K (5220256K) virtual, 174236K free  Pa
e# 1/40   87904  (585640         14783968K (234710            1667932         g

(top 只能看到进程所使用的内存量,所以你看到的 92764K (15880K) real 就是所有进程所使用的内存总和,这个内存是指物理内存,括号前那个值是Total Real Memory,括号内是Active Real Memory, 这两者的区别就在于Active Real Memory的值只是分配给那些已经在run queue或者正在运行的进程的Real Memory,而Total Real Memory 包括所有的进程。  
对于后一项值 65796K (13316K) virtual 的解释也是同样的,不过这个值代表了Virtual Memory(一般为建在Disk上的Swap空间,当然你要问了,我的Swap空间可不止这么些啊 by executing ‘swapinfo‘, 没错,Swap空间是大于这里的Total Vitual Memory的,但我前面说了,这里的值只是计算的分配给进程的),最后一项33684K free  到确确实实是Free 的Memory,它等于Physical Mem - kernel used - user used - buffer cache.)

 

下面是对SAM->;Performance Monitor ->; System Property ->; Memory的显示结果的解释  
Physical Memory          256.2 MB     实际物理内存大小  
Real Memory  
  Active:                21113.5 KB      同 top (当然这里举的例子由于有时间差,所以看上去不大一致)  
  Total:                 97083.5 KB       同 top                           
Virtual Memory:                                                     
  Active:                16247.3 KB       同 top                          
  Total:                 68390.7 KB        同 top                              
Free Memory Pages:       6738 at 4 KB/page    6738 * 4 就是 top 显示出来的结果                     
Swap Space:                                                         
  Avail:                 1024 MB             同Swapinfo中 dev filesystem 总和(一般不会用到Pseudo Memory),为实际Swap Space 的大小。                              
  Used:                  231 MB              同Swapinfo中的Reserve, 为系统在创建进程时为该进程预留的Swap 空间总和)

 

 

物理内存8G swap 32G 

 

2:当同一服务器包含ORACLE数据库和SAP实例的系统(即Central System)时,使用的内存数量比例为30%和70%

 

You can only optimize memory parameters and resource parameters such as DB_CACHE_SIZE or DB_WRITER_PROCESSES individually. Therefore, this note cannot give any general recommendations. However, you can determine options for optimization on the basis of a database performance analysis (see Notes 618868, 619188, 789011).

 

The parameterization described below is directed towards the use of the features of the dynamic SGA (Note 617416) and the automatic PGA administration (Note 619876).

 

3:sap

Share Memory1.SAP Buffer
 2.Extend Memory
 3.Paging Memory
 4.Roll Memory
Local Memory5.Heap Memory
 6.Local Work Process Memory

 

sap 在使用physical memory和swap时:

roll buffer/roll area  用户在使用 physical memory 时 处理dialog step时占用work process 不占用wp时 user context都存放在roll buffer 当roll buffer不够用是存储在roll area 涉及到extended memory和roll area extended memory、设置为physical memory的70% roll area=max_connections*user_buffer(50M)

 

用户使用heap memory时使用HM,此时WP设置为PRIV 用户不再因为dialogstep结束而释放进程
会一直占用进程直到所有操作结束(transaction finish) abap/heaplimit和abap/heaparea_(non)dia

heap memory< heaplimit 用户操作结束时自动释放wp hm但是swap不会释放还是属于wp

 

heaplimit <heap memory<heaparea 用户操作结束时自动释放wp hm wp自动重启释放swap

 

heap memory>heaparea 用户操作被终止 用户被迫释放进程 hm自动释放 wp自动重启 以释放swap

 

SAP系统中,内存配置是关键的性能环节之一。合理的内存设置可以提升系统响应速度、减少交换(swapping)并化资源利用率。 ### 1. SAP 内存架构概述 SAP系统主要涉及以下几类内存区域: - **Physical Memory(物理内存)**:服务器实际拥有的RAM。 - **Virtual Memory(虚拟内存)**:包括物理内存和交换空间(swap space),用于支持更大的内存需求。 - **Roll Area(ROLL区域)**:用于存储用户登录会话的数据。 - **Paging Area(分页区域)**:用于临时存储非活动内存页面。 - **Extended Memory(扩展内存)**:一种特殊的共享内存池,供多个工作进程使用。 - **Private Memory(私有内存)**:每个工作进程专用的内存区域。 ### 2. 内存相关参数配置 #### a. Extended Memory 配置 在SAP中,`ztta/roll_extension` 参数控制扩展内存的大小。该参数建议设置为物理内存的50%至70%,但应根据实际负载进行整[^3]。 示例: ```abap ztta/roll_extension = 8192 (单位MB) ``` #### b. Roll Area 配置 `rdisp/roll_area` 定义每个用户的ROLL区域大小。一般推荐值为4 MB到8 MB之间,具体取决于并发用户数与事务复杂度[^3]。 示例: ```abap rdisp/roll_area = 8388608 (单位Byte,即8 MB) ``` #### c. Paging Area 配置 `rdisp/obj_cache_size` 和 `rdisp/buffer_size` 是影响分页行为的重要参数。这些参数决定了缓存对象和缓冲区的大小。通常应确保其总和不超过可用物理内存的30%。 示例: ```abap rdisp/obj_cache_size = 1048576 (单位KB) rdisp/buffer_size = 524288 (单位KB) ``` ### 3. 工作进程内存管理 SAP工作进程分为对话(Dialog)、更新(Update)、后台(Background)等类型。每种类型的进程都会消耗一定的内存资源。可以通过如下方式监控和整: - 使用事务码 **ST02** 检查缓冲区状态和内存使用情况。 - 使用事务码 **ST06** 查看操作系统级别的内存统计信息。 - 整参数 `rdisp/max_wprun_time` 控制单个工作进程的最大运行时间,防止长时间运行导致内存泄漏。 ### 4. 操作系统层面的内存化 除了SAP内部参数外,还应注意操作系统的内存管理策略: - 确保Swap空间足够,至少等于物理内存大小。 - 整Linux内核参数(如vm.swappiness=10)以减少不必要的交换。 - 监控内存使用率,避免过度分配。 ### 5. 性能监控与建议 - 使用事务码 **ST03N** 分析系统负载和响应时间。 - 利用 **SM50** 或 **SM66** 查看当前运行的工作进程及其内存使用情况。 - 定期执行作业清理旧日志和临时数据,例如使用T-code **RSBTCDEL** 清理过时的后台任务记录[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值