IBM Support

关于APAR IT23357对性能影响的更深层次探讨

Question & Answer


Question

APAR IT23357如何导致性能问题?Db2又是如何解决该问题的?

Answer

首次遇到这个问题的用户当时是做了操作系统和硬件的改动: 从RHEL6.3, 40-core 改到 RHEL7.3, 56-core。 改动后, 他们发现下面有趣的现象:

1) 单线程插入,每秒插入4000行
2) 10-12个并发插入,每秒插入3000行
3) 15个并发,每秒只能做到45~60行插入

这里值得重点说一说的是,Db2通过这个APAR做的其实是绕开Linux的一个问题,因为这个问题的本质其实在Linux上:在新版本还有新的硬件上,我们发现Linux的thread scheduling行为变了,这导致db2logts线程获得CPU的频率降低,从而导致了性能的降低; 而且这个问题随着CPU核数增多而更加严重。

我们有理由相信Linux的这个问题跟Automatic NUMA balancing有关。从RHEL7开始,这个Automatic NUMA balancing是自动打开的:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_tuning_and_optimization_guide/sect-virtualization_tuning_optimization_guide-numa-auto_numa_balancing

它可以通过下面方法关闭:
# echo 0 > /proc/sys/kernel/numa_balancing

下面文档对Automatic NUMA balancing讲的比较好:
http://events.linuxfoundation.jp/sites/events/files/slides/summit2014_riel_chegu_w_0340_automatic_numa_balancing_0.pdf

下面这个链接也说过Automatic NUMA balancing有可能会导致性能问题,有时候值得关闭它试试:
https://github.com/scylladb/scylla/issues/1120

当发现性能问题或许跟Automatic NUMA balancing有关时,可以再试试减少nodes/sockets数量,如果随着它们的降低,性能问题有一定缓解,那基本上就证明是Automatic NUMA balancing导致的了。

另外,据说SQL Server和Oracle是推荐关闭Automatic NUMA balancing的,有兴趣的读者可以去找找文档确认下。

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Performance - General\/Tuning","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"10.5;11.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg22016562