[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Activity: Performance Indicators - Latch timeouts

Status
Not open for further replies.
M

mfurgal

Guest
Too many CPUs are not good for monolithic applications like Database Servers. There are 2 main reasons here. 1.) Cache Coherency – Each time a latch is being tested to see if it is free, ALL the CPUs need to clear their cache lines to make sure the latch being tested is not in another CPUs cache line being tested by a different process on a different CPU. The more CPUs the more cache lines need to be flushed and the harder the machine works. This shows up at high system load, without any specific process or processes being culprits for CPU usage. 2.) NUMA – It’s unlikely today to find a 128 CPU machine that is not NUMA. NUMA is also bad for monolithic applications. Shared Memory will likely span nodes, hence a process on node 1 will take longer to read memory located on node 2. The time difference for this far memory read is called the Numa Quotient and tends to be 3 or higher, meaning it’s 3 times longer to read memory on a different node than where the process is running. As you can imagine this is bad. Keep the number of sockets low to avoid NUMA and get the number of CPUs you need to run your application. Hardware prices have dropped and continue to drop, so it may be tempting to GO BIG on number of CPUs, but my advice is not to for the reasons stated above. Mike -- Mike Furgal Director – Database and Pro2 Services PROGRESS 617-803-2870 mfurgal@progress.com

Continue reading...
 
Status
Not open for further replies.
Top