SAP 内存管理

内存管理系统的功能

SAP 内存管理 图1

特征应用程序在通常执行 ABAP 程序的工作进程中运行。该过程需要内存才能执行此操作, 由内存管理系统分配给进程。为工作进程分配内存的顺序 类型取决于工作流程类型(对话框或非对话框)(请参阅 SAP 内存类型)和基础操作系统。工作进程的虚拟地址空间中解释了虚拟地址空间中各个内存区域的位置。

当用户上下文的大小增加时,可以根据需要扩展允许直接访问的用户上下文区域。为 对话框工作流程中,用户上下文的数据,包括内部表都位于此扩展内存中。您可以 因此,访问用户上下文中的所有数据。只有提取和导出到内存类型的数据仍保留在分页中。

下图显示了可在 SAP 级别和操作系统上分配给工作流程的内存类型 水平。以下是控制内存类型可用性的最重要配置文件参数。

SAP 内存管理 图1

下图显示了调度程序执行的滚动操作。

SAP 内存管理 图2

扩展内存池是系统启动时保留的扩展内存区域。

  • 滚入:用户特定的在工作进程中由扩展内存池显示,以便可以在下一个对话框中访问它 步。
  • 推出:对话步骤结束后,工作进程在扩展内存池中再次隐藏用户特定的数据。

非用户特定的数据始终包含在工作流程中。此数据可能是:

  • 程序代码
  • 静态数据
  • SAP 缓冲区
  • ABAP计划
  • 表缓冲区

仅当当前正在运行用户会话时,用户上下文数据才包含在工作流程中。此数据可能是:

  • ABAP 变量
  • 内部表

内存类型

内存管理系统将内存分配给工作进程。不同的内存类型是:

  • 扩展内存

  • 专用内存(堆内存)

分配顺序取决于工作流程的类型和配置。

当用户上下文的大小增加时,可以根据需要扩展允许直接访问的用户上下文区域。

控制内存管理

abap/heaplimit:工作流程重新启动

一个工作流程的内存管理资源

ztta/roll_extension:扩展内存的限制

ztta/roll_extension_dia:对话工作流程的 EM 限制

ztta/roll_extension_nondia:非对话工作流程的 EM 限制

abap/heap_area_dia:对话框工作流程的堆内存限制

abap/heap_area_nondia:非对话工作流程的堆内存限制

abap/heap_area_total:堆内存的总限制

内存管理限制

abap/heap_area_total:堆内存限制

em/initial_size_MB:扩展内存池大小

rdisp/PG_SHM:分页缓冲区的大小

rdisp/PG_MAXFS:SAP 分页文件的最大大小

em/blocksize_KB:扩展内存的段大小

em/proc_max_size_MB:可分配给所有工作流程的最大 PROC 内存量。

内存管理统计信息

em/stat_log_size_MB:统计信息 – 用户上下文大小

em/stat_log_timeout:统计信息 – 用户上下文大小

用于控制操作系统的 SAP 内存释放的参数

ES/disclaim_threshold_MB

ES/disclaim_coasting_time_alloc

ES/disclaim_coasting_time_free

ES/blockdisclaimsize_KB

ES/freelist_compactor

监视

以下工具适用于监视:

  • 调整摘要(事务ST02)

    此处显示了特定 SAP 应用程序服务器的当前状态和内存资源使用情况。程序是 使用事务 ST02 检查卷筒/分页区域和扩展内存中所述。

  • 用于监视主机系统中可用交换空间的事务。ST06

    详细信息:使用事务 ST06 监视内存资源。

  • CCMS警报监视器(交易):RZ20

    详细信息:CCMS 文档中的教程

  • 用户概述(交易):SM04

    调用事务或选择“工具 管理监视系统监视用户  概述”。SM04

    在事务 SM04 中,您可以显示内存值的各种列。您可以使用图标 SAP 内存管理显示可能的列。

  • 工作流程概述(事务)SM50)

    选择该按钮以显示为特定工作进程保留的内存资源。Detail

    详细信息:显示和控制工作流程

    通过监视 SAP 系统(事务)或系统外部(操作系统级别的 dpmon 程序)中的工作流,可以确定与 PRIV 模式相关的工作流状态。如果工作 进程经常切换到PRIV模式,您必须增加扩展内存和/或调整扩展的限制 记忆。SM50

  • 使用System-Wide List事务中,您可以评估所有工作流程的此信息。或者,您可以使用事务调用此系统范围的列表 SM66.SM50

程序

在 SAP 系统中,错误消息显示在开发人员跟踪文件中,dev_disp dev_w<n>、系统日志和转储中。可能会出现以下消息:; ; ;, .TSV_TNEW_;._NO_ROLL_MEMORYNO_MEMNO_MEMORYRESIZE_EM_ALLOC_ERRORStorage class PERM

如果后台作业处于活动状态且包含大量数据,则主要会出现此问题。

可能的原因

  • 没有更多的交换空间可用(交换空间要求)。

  • 已超过限制交换空间使用率的某个 SAP 配置文件参数的最大值。在这种情况下, 以下参数是相关的:ABAP/heap_area_dia、ABAP/heap_area_nondia和ABAP/heap_area_total。

使用事务 SM50 确定 PRIV 模式下的工作流程。

可能的原因/纠正措施

  • 没有更多的 SAP 扩展内存可用。

SAP 内存管理 图3

在此示例中,工作进程 5 和 6 无法分配更多的扩展内存,因为池已用完,尽管其 ZTTA/roll_extension 的限制仍将允许扩展内存。它们过早切换到 PRIV 模式(请参阅为用户上下文分配内存))

行动:

增加 SAP 扩展内存池(em/initial_size_MB:扩展内存池的大小),以防止将工作流程切换到 PRIV 模式。

  • 对于大多数用户上下文(使用参数 ztta/roll_extension 设置),扩展内存的限制太低。许多上下文分配堆内存并切换到 PRIV 模式

SAP 内存管理 4图

行动:

使用 ztta/roll_extension 增加扩展内存的限制。

  • 扩展内存的限制太高。一些用户上下文可以完全填满整个扩展内存,从而 在达到限制之前,其他进程将切换到 PRIV 模式。

SAP 内存管理 图5

减少扩展内存的限制(在 ztta/roll_extension 中定义),或增加扩展内存(参见 em/initial_size_MB)。

相关新闻

联系我们

联系我们

130-0752-1773

在线咨询:点击这里给我发消息

邮件:info@sapzx.com

工作时间:周一至周五9:00-18:00,节假日正常休息

关注微信
关注微信
分享本页
返回顶部