多路服务器的NUMA绑定优化方法

上传人:ba****u6 文档编号:165763729 上传时间:2022-10-29 格式:DOCX 页数:14 大小:131.65KB
收藏 版权申诉 举报 下载
多路服务器的NUMA绑定优化方法_第1页
第1页 / 共14页
多路服务器的NUMA绑定优化方法_第2页
第2页 / 共14页
多路服务器的NUMA绑定优化方法_第3页
第3页 / 共14页
资源描述:

《多路服务器的NUMA绑定优化方法》由会员分享,可在线阅读,更多相关《多路服务器的NUMA绑定优化方法(14页珍藏版)》请在装配图网上搜索。

1、中间件在多路平台上的NUMA调优指南文档更新记录文档编号:文档名:中间件在多路平台上的NUMA调优指南版本号0.5创建人:王雪倩创建日期:2016.10.11更新历史序号.更新日期更新人更新内容12016918王雪倩第一版22016.10.11王雪倩添加附录A: 3B1500、3B2000四路服务器启动脚 本;中间件需要修改的端口号中添加345目录1. NUMA 调优原理 42. 多路服务器的NUMA绑定优化方法42.1 查看系统 cpubind 数52.2 复制多份中间件,修改端口号52.3 对中间件启动脚本进行numa绑定62.4 配置负载均衡器62.5 检查 numa 绑定状态73. 性

2、能提升案例 71. NUMA 调优原理在龙芯的多路服务器上,可能会出现这样一种现象:多路服务器的性能比 单路服务器的性能提升不明显。典型的是运行中间件这种多线程的并发应用。原因是多路服务器上是有多个CPU和多个物理内存条,普遍使用的SMP (对 称多处理)模型,即操作系统将多个物理内存条作为一大块连续内存,所有 CPU 都能够访问到这个共享内存的所有单元。但是,由于处理器之间互联进行 通讯时要有一定的开销,因此所有 CPU 到所有物理内存的访问速度是不同的, 是 NUMA (Non-Uniform Memory Access)模型。以图1为例,一台机器有2个处理器(cpuO, cpul),在每

3、个处理器上接 两个内存条(memory0.1, memory0.2, memory1.1,memory1.2),总共有 4 个内 存块。一个处理器和直接相连的两个内存条合起来,称为一个NUMA node,这 样这个机器就会有两个NUMA node。在物理分布上,一个NUMA node之内的处 理器和内存块的物理距离更小,因此访问也更快。而如果跨node访问内存,则 速度会变慢。在 NUMA node1 中, cpu1 访问 memory1.1 和 memory1.2 就比访问 memory0.1 和 memory0.2 更快。基于这一个原理,可以解释“多路服务器的性能比单路服务器的性能提升 不

4、明显”的问题。对于运行在多路服务器上的多线程应用程序,操作系统默认 会随机分配物理内存,从而导致线程运行在 CPU0 上、而访问的数据位于 CPU1 所连接的 memory 上,这样会导致应用程序运行速度下降。为了充分发挥多路服务器上应用程序的性能,可以利用操作系统提供的命 令工具,对应用程序使用的CPU和物理内存进行绑定,保证本node内的CPU只 访问本 node 内的内存块。本文档就介绍这样一种优化方法,在实施之后一般都 能够使多路服务器上的中间件提升 80%性能。图1 NUMA架构2. 多路服务器的NUMA绑定优化方法比如一个 OA 系统在 3B2000 双路服务器上运行,进行压力测试

5、时发现性能 较低,不能满足用户需求,那么接下来就需要进行多路服务器的 NUMA 绑定调 优。以3B2000双路服务器为例,介绍具体实现方法。2.1 查看系统 cpubind 数在终端中执行命令(以 3B2000 双路服务器为例):# numactl showpolicy: defaultpreferred node: currentphyscpubind: 0 1 2 3 4 5 6 7cpubind: 0 1nodebind: 0 1membind: 0 1cpubind后面的数字说明机器是2路,意味着需要绑定2个中间件。如果是其他类型服务器,详情请参见附录 A。2.2 复制多份中间件,修改

6、端口号首先要在一台服务器上复制 2 份中间件,每一个中间件是一个独立的目 录。为了能够在一台机器上启动两个中间件进程,两个中间件必须使用不同的 网络端口号,因此需要修改第二份中间件的配置文件。端口号修改以“同一个 IP 地址上的端口号不冲突”为原则 ,具体端口号可以任意指定,但是需要在本 机保证唯一、并且和第一份中间件相区别。以东方通中间件为例,配置文件中需要修改的端口号有3个(http、jmx和 管理控制台端口),具体需要修改的是 config 目录下的 twns.xml 文件:将http-listener端口号由 8080 改为 8081;将jmx-service端口号由 7200 改为

7、7205;将admin-listener端口号由 9060 改为 9061;龙芯中科技术有限公司Loangson Technology Corporation Limited将listener端口号由 5100 改为 5101;2.3 对中间件启动脚本进行 numa 绑定在两份中间件的bin/目录下,分别编写numa绑定的启动脚本。脚本中调用 操作系统内置的 numactl 命令工具,加上适当参数,使每一个中间件只运行在 一个 CPU 上,只访问该 CPU 节点内部的物理内存。numactl 命令在中标操作系统服务器版中默认安装。第一份中间件启动脚本:# numactl cpunodebind

8、=0 membind=0 . /startserver.sh第二份中间件启动脚本:# numactl -cpunodebind=1 -membind=1 . /startserver.sh分别执行上面两个脚本,把两个中间件都启动起来。2.4 配置负载均衡器使用 numa 绑定策略进行调优,在一台服务器上会启动多个中间件。为了保 证OA系统对用户有唯一的入口 URL,需要应用端有一个Web负载均衡器,做为 多个中间件的调度入口。Web 负载均衡器可以是软件负载均衡或者是硬件负载均衡,软件负载均衡是 使用操作系统中内置的 Apache 服务器实现,硬件负载均衡通过一台额外的硬件 设备来实现。推荐使

9、用硬件负载均衡器,在管理上更加方便,性能也更高。Web 负载均衡设备的实现原理是在前端做为用户访问的总入口,把外界 Web 访问请求转发到后端的多台 Web 服务器(即中间件)上,这个过程对用户端是 透明的。用户实际上不知道服务器是做了负载均衡的,因为他们访问的还是一 个目的 URL。对于系统的管理员,需要在负载均衡器中进行配置,把一台多路服务器上 启动的两个中间件的 URL 都添加负载均衡器中。由于在不同厂家的负载均衡器 中,具体的配置方法会有区别,请参见负载均衡器的文档。Internet肯干刚集辞机屆负就平植犠人节点t Apache 十 Ttomcat connector 1龙石3A 十脸

10、mb虚摊机 + Rimcat中间杵11B現芯3见龙柄AI JlVSlU机十d阳规探机十Pinneat中问件十Tomcat中问件图 2 Web 负载均衡器2.5 检查 numa 绑定状态上面的步骤都完成后,现面可以进行性能的测试。在测试过程中,可以利 用以下方法检查绑定状态是否正常:1)使用 top 命令:在命令行上运行 top 命令,按“1”键,可以查看每个 CPU 的使用情况。当启动第一个中间件后,会发现只有前 4 个 CPU 核(0-3)有 负载,尤其是有压力的情况下,负载明显上升到 80%以上,而另外 4 个 CPU 核 (4-7)负载几乎为 0;继续启动第二个中间件后,则后 4 个 C

11、PU 核上才会出现 负载。2)使用 ps 命令:在命令行上运行 ps ax 命令,可以查看看中间件的进程 号 PID 。在操作系统的 /proc/PID/numa_maps 文件中,可以查看到 numa 状 态,尤其是所使用的每一块物理内存的位置。这种方法对技术水平要求较高, 详细说明请自行查找资料。3. 性能提升案例在龙芯 3B2000 双路服务器上,使用 LoadRunner 对某 OA 系统进行压力测 试,优化后的性能有明显提升:TPS从150提升到310,提升近一倍;响应时间 从3s减少到1.3s,减少近一半;应用服务器的CPU占用率下降20%左右。证明本文的方法能够有效提升多路服务器

12、上中间件的性能。附录A3B1500 服务器:# numactl showpolicy: defaultpreferred node: currentphyscpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14cpubind: 0 1 2 3nodebind: 0 1 2 3membind: 0 1 2 3 cpubind后面的数字说明机器是4路,意味着需要绑定4个中间件:1. 将中间件复制成 4 份,分别修改其他 3 份的配置文件端口号,以互相不冲突为标准(见2.2复制多份中间件,修改端口号);2. 中间件启动脚本:第一份中间件:# numactl cpuno

13、debind=0 membind=0 . /startserver.sh第二份中间件:# numactl -cpunodebind=1 -membind=1 . /startserver.sh第三份中间件:# numactl -cpunodebind=2 membind=2 . /startserver.sh第四份中间件:# numactl -cpunodebind=3 -membind=3 . /startserver.sh3B2000 四路服务器:# numactl showpolicy: defaultpreferred node: currentphyscpubind: 0 1 2 3

14、 4 5 6 7 8 9 10 11 12 13 14 15cpubind: 0 1 2 3nodebind: 0 1 2 3membind: 0 1 2 3 cpubind后面的数字说明机器是4路,意味着需要绑定4个中间件:1. 将中间件复制成 4 份,分别修改其他 3 份的配置文件端口号,以互相不冲突为标准(见2.2复制多份中间件,修改端口号);2. 中间件启动脚本:第一份中间件:# numactl cpunodebind=0 membind=0 . /startserver.sh第二份中间件:# numactl -cpunodebind=1 -membind=1 . /startserver.sh第三份中间件:# numactl -cpunodebind=2 membind=2 . /startserver.sh第四份中间件:# numactl -cpunodebind=3 -membind=3 . /startserver.sh

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!