Kbase P18426: Poor scalability on NUMA architecture.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Unverified
FACT(s) (Environment):
UNIX
SYMPTOM(s):
Poor scalability on NUMA architecture.
Going from 1 to 8 CPU's achieves only a 300% increase in performance for memory-only operations.
%sys for CPU's is high when running iostat or vmstat.
CAUSE:
The term CC-NUMA stands for Cache-Coherent Non Uniform Memory Access. In the CC-NUMA model, the system shows only a single memory image to the user even though the memory is physically distributed over the processors.
Since processors can access their own memory much faster than that of other processors, memory access is non uniform (NUMA).
The Progress database engine is based on shared memory, which means that processors must spend a significant amount of kernel time (the high %sys) only to make sure that all processors have a coherent image of the shared memory segments.
At the time of this writing (May 2003) Progress Software has not implemented any optimization for the NUMA architecture.
FIX:
One solution is to run the Progress database server on one CPU, or on a group of CPU's sharing the same physical memory, so that(those) processor(s) will not spend time on dealing with shared memory coherency. Please see your UNIX Administration Guide for information on how to pin a process to one CPU, or to a group of CPU's.
Clients can access the database in client/server mode on the loopback interface (that is, by using -H localhost), pinning the clients to any CPU, or group of CPU's, different from that that is running the database server.