EM内存未在Windows 2003 32位上得到充分利用

2020-09-17 06:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我们有一个运行于SAP B...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个运行于SAP Basis 620,Windows 2003 Standard Edition 32位,具有4 GB RAM的Production SAP R/3 Enterprise 470,该数据库为Oracle 10.2.0.4,Kernel 640 PL 347,均位于1台主机服务器上。

我们最近遇到了性能问题,这些问题是使用大量内存后进程快要死了并且无法重新启动,解决此问题的唯一方法是重新启动服务器和SAP。

由于项目承诺,我们无法升级系统,因为这是Windows 2003 Standard Edition,我们的内存有限,只能在服务器上使用4GB。

为了提高性能,我试图在具有16GB内存20GB(最初为12GB)分页的单独Windows 2003 Enterprise Edition 32位上添加应用程序服务器,我们将boot.ini开关设置为使用16GB内存和3GB 每个WP:

/PAE/3GB

在此新服务器上,我已经安装了SAP Application Server,Application Server可以从内核640 PL 347开始正常运行

在Application Server上进行测试时,我注意到没有使用完整的扩展内存。 我从实例配置文件中删除了PHYS_MEMSIZE,它的默认值为15359

我设置了em/initial_size_MB = 4000

其余参数设置为使用2GB EM,然后使用2GB HEAP:

卷,扩展和堆内存EXTM ztta/roll_area 2000000字节每个工作进程的滚动区域(总计) ztta/roll_first 1字节对话框WP ztta中使用的第一滚动区域数量/short_area 1600000字节每个工作进程的短区域
rdisp/ROLL_SHM 32768 8 kB共享存储器中的卷文件的一部分
rdisp/PG_SHM 16384 8 kB共享存储器中的分页文件的一部分
rdisp/PG_LOCAL 150 8 kB分页 每个工作进程的缓冲区
em/initial_size_MB 4000 MB扩展内存的初始大小
em/blocksize_KB 1024 kB一个扩展内存块的大小
em/address_space_MB 512 MB为ext保留的地址空间。 记忆 (仅限NT)ztta/roll_extension 2000000000字节(最大)。 扩展内存。 每个会话(外部模式)
abap/heap_area_dia 2000000000字节最大。 对话工作流程的堆内存
abap/heap_area_nondia 2000000000字节最大。 非对话工作流程的堆内存
abap/heap_area_total 2000000000 Byte Max。 可用堆内存
abap/heaplimit 40000000 Byte堆内存的工作进程重新启动限制
abap/use_paging 0对已使用(1)或不使用(0)的平面表进行分页

但是,当我在VBRK上运行SE16N之类的事务时,在获得Shortdump之前,没有使用完整的EM内存:

STORAGE_PARAMETERS_WRONG_SET

设置系统配置文件参数
-abap/heap_area_dia
-abap/heap_area_nondia
最多为860495616。然后将该值减小10.000.000即可打开
>安全方面

然后重新启动SAP系统。

但是系统参数已设置为高于shortdump故障:

abap/heap_area_dia 2000000000字节最大 对话工作流程的堆内存
abap/heap_area_nondia 2000000000字节最大。 非对话堆内存

ST02显示的最大EM为548MB,已使用4GB

STAD正在显示

已用总内存844.509 kB。 卷区域101.231字节中使用的内存
新分配的分页内存0 kB
已使用扩展内存
在事务中382.804 kB
在对话步骤381.784 kB

正在使用的扩展内存4.083 kB

正在使用的私人内存840.327 kB
PRIV模式下的工作进程是
工作进程已重新启动是

在我看来,仅使用382MB的EM,然后使用840MB的HEAP(PRIV),然后交易失败,大约1.2GB。

但是,应用程序实例设置为使用2GB EM,然后每个DIA会话使用2GB堆,总计总计4GB,但是如果使用/3GB,我想它将使用3GB? 只有我在新的Application实例上,因此没有其他人正在使用内存,并且ST02显示4GB可用内存,并且在使用该内存时,应将其扩展为PHYS_MEMSIZE/2。

我已经尝试通过删除em/initial_size_MB并让SAP对其进行设置,但是由于页面大小无法启动,因此我将页面增加到20GB(2 * 8GB文件+ 1 4GB文件),但是我得到了相同的结果 超出380MB的情况无法使用EM,因此我将其恢复为4GB。

我还尝试将em/address_space_MB从512增加到2000以匹配EM大小,但是由于以下原因,实例无法启动:

内存重置被禁用为NT默认值
***错误=> NTGetBaseAddress失败,没有可用区域[esnti.c 1203]
***初始化OS时错误15
***错误=> DpEmInit:EmInit(1)[dpxxdisp.c 8610]
***错误=> DpMemInit:DpEmInit(-1)[dpxxdisp.c 8549]
* ** DP_FATAL_ERROR => DpSapEnvInit:DpMemInit
*** DISPATCHER EMERGENCY SHUTDOWN ***
提高WP的跟踪级别
***错误=> DpWpKill:非法pid(-1,5)[dpxxtool.c 2419]

所以我重置回512,然后实例开始正常运行。

我是否需要设置其他内存参数才能完全使用每个WP 2GB EM? 我更习惯于Windows X64,以前我从未遇到过此问题。

感谢您的帮助。

4条回答
我是小鹏鹏啊
2020-09-17 07:52

哇,这真的带回了尝试调整旧的32位Windows系统的记忆。

Paul,我在这里是曼努埃尔的第二个回答:我认为PG_SHM和ROLL_SHM参数设置得太高。 同样,是的,您的假设是正确的,因为在Windows中设置了/3GB参数,每个工作进程只能使用3 GB的RAM(而不是2 GB); 其他1 GB保留给操作系统使用(而不是2 GB)。

不过我有一个问题。 我知道您目前无法将中央系统升级到受支持的64位操作系统(大概是时候到了?),但是是否有任何特殊原因不能将较新的64位操作系统用于新版本? 您在此处设置的对话框应用服务器? 我不认为应用服务器在所有这些方面都必须与数据库服务器匹配,并且由于它是新服务器,因此您可以选择使用任何选项。

干杯,
马特

一周热门 更多>