on 03-08-2011 5:41 PM
We run SAP ECC6 EhP4 on a Solaris box M4000 with 2 physical CPUs (4 cores/CPU) and 64GB memory.
What we found out recently is that SAP can make use of only 2 CPU cores, according to the "mpstat" command.
It uses 100% of those 2 CPU cores but the other 6 cores are 0% used, and our SAP jobs crash with a memory shortage error.
So, it's doing some multithreading but it never uses any more than those 2 CPU cores.
And the SAR command never shows any CPU/memory shortages because I think it calculates and shows the data based on the whole system aspect - only 25% used from the whole system perspective, although those 2 CPUs and associated used memory must have been exhausted.
Is this an expected behavior?
Can we tune either OS or SAP or both to make SAP do the "real" multithreading?
Thanks in advance.
- Young
Hi Young,
About the "memory shortage error" you get, could you run the following command as the user that is running SAP ECC6 ?
prctl -n project.max-shm-memory $$
I think by default it's not configured to use all the memory , if the value is less than your 64 G memory, you might need this as root , and check again with the above prctl command.
projmod -sK "project.max-shm-memory=(priv,xxGB,deny)" default
replace xx with the memory you want to se.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
> We run SAP ECC6 EhP4 on a Solaris box M4000 with 2 physical CPUs (4 cores/CPU) and 64GB memory.
> What we found out recently is that SAP can make use of only 2 CPU cores, according to the "mpstat" command.
> It uses 100% of those 2 CPU cores but the other 6 cores are 0% used, and our SAP jobs crash with a memory shortage error.
Did you defined any processor sets or other resource management so that only two CPUs are used? How many CPUs are listed in OS06? You see 8 CPUs there?
Can you post the output of
prtdiag -v
Markus
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here's my prtdiag -v output.
For CPU, this system has 2 physical CPUs, 2 cores/CPU and 2 threads/core, so total 8 threads.
For memory, it has 64GB real memory.
Thanks.
- Young
psrinfo
0 on-line since 12/03/2010 23:24:16
1 on-line since 12/03/2010 23:24:35
2 on-line since 12/03/2010 23:24:35
3 on-line since 12/03/2010 23:24:35
8 on-line since 12/03/2010 23:24:35
9 on-line since 12/03/2010 23:24:35
10 on-line since 12/03/2010 23:24:35
11 on-line since 12/03/2010 23:24:35
prtdiag -v
System Configuration: Sun Microsystems sun4u Sun SPARC Enterprise M4000 Server
System clock frequency: 1012 MHz
Memory size: 65536 Megabytes
==================================== CPUs ====================================
CPU CPU Run L2$ CPU CPU
LSB Chip ID MHz MB Impl. Mask
--- -
-
-
--- -
-
00 0 0, 1, 2, 3 2150 5.0 6 147
00 1 8, 9, 10, 11 2150 5.0 6 147
============================ Memory Configuration ============================
Memory Available Memory DIMM # of Mirror Interleave
LSB Group Size Status Size DIMMs Mode Factor
--- -
-
-
-
-
-
-
00 A 32768MB okay 4096MB 8 no 4-way
00 B 32768MB okay 4096MB 8 no 4-way
========================= IO Devices =========================
IO Lane/Frq
LSB Type LPID RvID,DvID,VnID BDF State Act, Max Name Model
--- -
-
-
-
-
-
-
-
Logical Path
-
00 PCIe 0 bc, 8532, 10b5 2, 0, 0 okay 8, 8 pci-pciex10b5,8532 N/A
/pci@0,600000/pci@0
00 PCIe 0 bc, 8532, 10b5 3, 8, 0 okay 8, 8 pci-pciex10b5,8532 N/A
/pci@0,600000/pci@0/pci@8
00 PCIe 0 bc, 8532, 10b5 3, 9, 0 okay 1, 8 pci-pciex10b5,8532 N/A
/pci@0,600000/pci@0/pci@9
00 PCIx 0 8, 125, 1033 4, 0, 0 okay 100, 133 pci-pciexclass,060400 N/A
/pci@0,600000/pci@0/pci@8/pci@0
00 PCIx 0 8, 125, 1033 4, 0, 1 okay 133, 133 pci-pciexclass,060400 N/A
/pci@0,600000/pci@0/pci@8/pci@0,1
00 PCI 0 2, 50, 1000 5, 1, 0 okay --, 133 scsi-pci1000,50 LSI,1064
/pci@0,600000/pci@0/pci@8/pci@0/scsi@1
00 PCI 0 10, 1648, 14e4 5, 2, 0 okay --, 133 network-pci14e4,1648 N/A
/pci@0,600000/pci@0/pci@8/pci@0/network@2
00 PCI 0 10, 1648, 14e4 5, 2, 1 okay --, 133 network-pci14e4,1648 N/A
/pci@0,600000/pci@0/pci@8/pci@0/network@2,1
00 PCI 0 1, fc10, 10df 6, 1, 0 okay 40, 266 SUNW,emlxs-pci10df,fc10 LP11002-S
/pci@0,600000/pci@0/pci@8/pci@0,1/SUNW,emlxs@1
00 PCI 0 1, fc10, 10df 6, 1, 1 okay 40, 266 SUNW,emlxs-pci10df,fc10 LP11002-S
/pci@0,600000/pci@0/pci@8/pci@0,1/SUNW,emlxs@1,1
==================== Hardware Revisions ====================
System PROM revisions:
-
OBP 4.24.11 2009/04/21 14:53
=================== Environmental Status ===================
Mode switch is in LOCK mode
you can't count the threads as a full core. Threads are reasonable on multithreaded applications, since ABAP is single threaded it won't make use of them.
I would say that the symptoms your describe are like the ones seen on T-series servers, where the factual throughput is "only" the number of real CPUs (dies) - which is in your case two. What I mean is that your machine runs basically with the speed of 2 CPUs, despite the number of cores and threads your have.
This is described also in Oracle Metalink ID 781763.1.
To verify this I'd open a case with Sun and let them check.
Markus
Hello Young,
In the ABAP stack, as Manoj already stated, you have a single thread that is forked into several different process (the so called work process). Althought you can have several jobs running on parallel, they are not different threads and this behaviour that you are seeing is expected.
Cheers,
Maurício
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ABAP is single threaded hence it runs in one core where as Java stack is multi threaded. Hope this gives you clues. Is your ECC only ABAP installation?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.