要了解这个新的软件定义融合基础架构,可以参阅标题为“ 一种适合 SAS Foundation 混合工作负载的新的软件定义融合基础架构 ”的技术简报。该技术简报描述了一种为 SAS 上用于内部测试的 SAS Mixed Analytics 工作负载提供出色性能的架构和方法。该融合基础架构的关键元素包括 IBM®Elastic Storage Server (ESS)、IBM Power® 服务器和来自 Mellanox 的基于以太网的存储结构。
本文将介绍测试的用途、目标和结果,包括测试背后的技术细节、测试环境的规格,以及测试方案细节和来自这些测试的性能数据。最后,还会提供调优融合基础架构的指南,以帮助获得最佳性能。
系统架构、配置、调优和文件系统创建
图 1 演示了在实验室环境中使用 IBM Elastic Storage Server 和 IBM Power E880 服务器测试 SAS 软件所用的架构和配置。图 2 展示了 ESS 网络配置。
图 1. 针对 IBM Power 服务器和 IBM Elastic Storage Server 上的 SAS 的解决方案架构

图 2. ESS 网络硬件配置

配置
本节将介绍该架构的每个组件的详细配置。
软件
- SAS 9.4 TS1M3 64 位
- IBM AIX 7.2 (7200-00-02-1614)
- IBM PowerVM®Enterprise Edition
- Virtual I/O Server (VIOS) 2.2.3.50
- IBM Spectrum Scale™(以前称为 IBM GPFS)4.2.1.1
- IBM ESS V4.5.1
- Red Hat 7.1
- MLNX-OS 3.3.6.1002
网络配置
- IBM 交换机型号:8831-NF2 (Mellanox SX1710)
- Mellanox ConnectX-3 40GbE 适配器 IBM Feature Code EC3A
- 36 端口 40GbE / 56GbE 交换机
- MLNX-OS V3.6.1002
- 启用 Global Pause Flow Control
- 仅支持 TCP/IP 流量
IBM Power System E880 服务器配置
- 型号:9119-MHE
- 固件版本:IBM FW830.00 (SC830_048)
- 处理器架构:POWER8
- 时钟速率:4356 MHz
- SMT:关闭、2、4、8(SMT4 是默认设置并在基准测试期间使用)
- 核心数:64(62 个核心用于被测试的 LPAR,2 个核心用于 VIOS)
- 内存:512 GB(384 GB 用于被测试的 LPAR,8 GB 用于 VIOS)
- 内部驱动器:12 个 600 GB(用于引导 VIOS 和 LPAR)
- 4 个扩展柜,每个扩展柜的 x16 插槽中都有一个 40GbE 双端口适配器(IBM 特征码为 EC3A)
ESS 配置
- 型号:5146-GL4
- 两个 IBM Power System S822L,用作 I/O 服务器
- 256 GB (16 x 16GB DRAM)
- 一个 IBM Power System S821L 服务器,用作 xCat 管理服务器
- 一个 IBM 7042-CR8 机架安装式硬件管理控制台 (HMC)
- 存储接口:每个 I/O 服务器 3 个 LSI 9206-16e 四端口 6Gbps SAS 适配器 (A3F2)
- I/O 网络:每个 I/O 服务器 3 个双端口 40GbE Mellanox ConnectX-3 适配器 (EC3A)
- 每个 ESS I/O 服务器通过 ALB 连接 3 个 Mellanox 适配器端口
- 独立磁盘冗余阵列 (RAID) 控制器:IBM PCIe IPR SAS Adapter。每个服务器一个 IPR 适配器,每个服务器一个 RAID 10 OS 引导盘
- 交换机:
- 一个 1GbE 交换机包含两个 VLAN,提供两个隔离子网作为服务和管理网络。
- IBM 8831-NF2 – 40GbE 交换机,Mellanox 型号 SX1710
- 4 个 DCS3700 JBOD 60 驱动器机柜(1818-80E,60 个驱动器插槽)
- 每个驱动器机柜包含 58 个 2 TB 7.2K LN-SAS HDD 和 2 个 400 GB 固态驱动器 (SSD)
- 16 条 SAS 电缆
创建 ESS Spectrum Scale 文件系统
使用以下 Spectrum Scale 文件系统参数来创建 SASWORK、SASDATA 和 SASUTIL 应用程序存储空间。最初创建了各种不同大小的文件系统块并测试了性能。
一般而言,Spectrum Scale 文件系统块大小可通过将应用程序的块大小乘以 32 进行计算。IBM ESS 使用了 GPFS Native RAID (GNR)。一种简单解释是,GNR 将文件系统块大小分解为 32 个小块并将它们暂存在磁盘子系统上。
但是,采用 256 KB 的 SAS BUFSIZE 时,在实验室环境中使用各种不同文件系统块大小执行的 SAS 工作负载测试表明,8 MB 或 16 MB 文件系统块大小的性能最佳。
创建并挂载文件系统的样本命令:
# gssgenvdisks --vdisk-suffix _sasdata_8m --create-vdisk --create-filesystem --filesystem-name sasdata_8m --data-vdisk-size 4000 --data-blocksize 8M # mmmount all Fri Jun 3 19:21:25 CDT 2016: mmmount: Mounting file systems ... # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 246G 3.0G 244G 2% / devtmpfs 60G 0 60G 0% /dev tmpfs 60G 0 60G 0% /dev/shm tmpfs 60G 95M 60G 1% /run tmpfs 60G 0 60G 0% /sys/fs/cgroup /dev/sda2 497M 156M 341M 32% /boot /dev/sasdata_1m 16T 264M 16T 1% /gpfs/sasdata_1m /dev/saswork_1m 16T 264M 16T 1% /gpfs/saswork_1m /dev/sasutil_1m 7.9T 264M 7.9T 1% /gpfs/sasutil_1m /dev/sasutil_4m 7.9T 288M 7.9T 1% /gpfs/sasutil_4m /dev/saswork_4m 16T 288M 16T 1% /gpfs/saswork_4m /dev/sasdata_4m 16T 288M 16T 1% /gpfs/sasdata_4m /dev/sasdata_8m 16T 320M 16T 1% /gpfs/sasdata_8m /dev/sasutil_8m 7.9T 320M 7.9T 1% /gpfs/sasutil_8m /dev/saswork_8m 16T 16T 0 100% /gpfs/saswork_8m
工作负载、测试方案和结果
本节将介绍用于执行测试的工作负载、测试方案和详细结果。
工作负载
性能验证期间使用的工作负载是一种 SAS Foundation 混合分析工作负载。该工作负载由一组并发运行的分析作业组成。这些作业对给定 IT 基础架构的计算、内存和 I/O 功能施加压力。
该工作负载由 20 个单独的 SAS 程序测试组成:10 个计算密集型测试,2 个内存密集型测试,8 个 I/O 密集型测试。一些测试使用现有的数据存储来运行,一些测试生成自己的数据,以便在运行测试期间执行。这些测试是短期运行(几分钟)和长期运行(几小时)作业的混合体。这些测试以并发方式和/或顺序方式反复运行,以获得 20-test 的平均并发工作负载或 30-test 的平均并发工作负载。20-test 工作负载总共运行了 71 个作业,30-test 工作负载总共运行了 101 个作业。在峰值负载期间,30-test 工作负载可以采用 55 个处理器,并发生成 I/O 密集型作业。
工作负载的性能指标是 工作负载响应时间 (以分钟为单位),这是工作负载中所有作业的累积真实响应时间。响应时间越短越好。我们还分析了其他性能指标,比如处理器时间(用户 + 系统时间)、服务器利用率和 I/O 吞吐量。收集这些指标是为了了解启用压缩时对性能的影响。
工作负载响应时间(真实时间)和处理器时间(用户 + 系统时间)是从 SAS 作业的日志文件采集的。这些统计数据通过 SAS FULLSTIMER 选项进行记录。从 IBM POWER7®处理器架构开始,IBM Power Systems™ 使用处理器利用率资源注册表 (PURR) 来准确报告系统使用情况。POWER8 处理器的 PURR 系数需要应用到文中描述的处理器时间指标。要获得 PURR 系数的更多细节,请参阅“ 通过 IBM XIV Storage System 和 IBM FlashSystem 将 SAS Business Analytics 部署在基于 IBM POWER8 处理器的系统上 ”和它的附录 B。
测试方案
基准测试中运行了以下方案:
- 单节点测试:20-test 混合分析工作负载
- 可扩展性测试:20-test 和 30-test 混合分析工作负载
- 对以 56GbE 速度运行的 Mellanox 结构的测试:30-test 混合分析工作负载
执行该测试时,服务器和存储系统上都没有运行竞争性工作负载。测试团队收集了工作负载、主机端和存储端性能指标,并将基准测试与最终测试中的这些指标进行比较。
测试结果
本节将介绍执行这些测试方案的结果。
单节点测试:20-test 混合分析工作负载
用于测试 20-test 混合分析工作负载的逻辑分区 (LPAR) 配置包括:
- 16 个运行 SMT4 的核心(专用模式)
- 96 GB 内存
- 1 个 40GbE 端口
- 适合 Spectrum Scale 文件系统(SASWORK、SASDATA 和 SASUTIL)的 16 MB 块大小
图 3. 单节点上的 20-test 混合分析工作负载的网络 I/O 吞吐量

图 4. 单节点上的 20-test 混合分析工作负载的处理器利用率

图 3 和图 4 展示了 20-test 单节点测试的网络 I/O 吞吐量和处理器利用率。以下是关键结果:
- 真实时间为 1073 分钟,用户 + 系统时间为 793 分钟(应用了 PURR 系数 0.6)。
- 平均和峰值 I/O 吞吐量分别为 2.75 GBps 和 4 GBps。
- 如果考虑采用 16 个核心,I/O 吞吐量约为每核心 175 MBps。
- 在分配给 LPAR 的 16 个核心中,处理器利用率为 60%。
可扩展性测试:20-test 混合分析工作负载
可扩展性测试的执行方式是,线性扩展工作负载和节点 - 将 20-test 工作负载从 1 个节点(包含 20 个并发测试)扩展到 4 个节点(包含 80 个并发测试,每个节点 20 个并发测试)。在扩展工作负载时,后端存储和计算保持不变。1、2、3 和 4 节点测试分别运行总计 20、40、60 和 80 个混合分析工作负载测试。还对 30-test 混合分析工作负载执行了类似的可扩展性测试,同样从 1 个节点扩展到 4 个节点。
用于可扩展性测试的 LPAR 的配置包括:
- 16 个核心(专用模式)用于两个 LPAR,15 个核心(专用模式)用于另外两个 LPAR
- SMT4
- 每个 LPAR 分配 96 GB 内存
- 每个 LPAR 1 个 40GbE 端口
- 适合 Spectrum Scale 文件系统(SASWORK、SASDATA 和 SASUTIL)的 16 MB 块大小
图 5. 20-test 可扩展性测试的性能指标摘要

图 5 总结了对 20-test 工作负载进行可扩展性测试的结果。图 6 到图 10 中的图表提供了在测试期间实现的 I/O 吞吐量。
图 6. 扩展到 4 个节点时的平均和累积真实时间

图 7. 单节点上的 20-test 工作负载的 I/O 吞吐量

图 8. 扩展到 2 个节点时的 20-test 工作负载的 I/O 吞吐量(总共 40 个测试)

图 9. 扩展到 3 个节点时的 20-test 工作负载的 I/O 吞吐量(总共 60 个测试)

图 10. 扩展到 4 个节点时的 20-test 工作负载的 I/O 吞吐量(总共 80 个测试)

对以 56GbE 速度运行的 Mellanox 结构的测试
本节将介绍 Mellanox 结构、它在环境中的配置,以及测试结果。
带 ESS 的 Mellanox 56GbE 结构
通过使用特征码为 EC3A/EC3B 的适配器和 8831-NF2 交换机(通过电缆 EB40-EB42 和 EB4A-EB4G 连接), IBM Power IO 产品组合可以为一个基于 ESS 的存储解决方案构建一个以 40GbE 速度运行的完整端到端 Mellanox 结构。这样做可以提供一个可靠、低延迟(端口间的延迟约为 330ns)、基于以太网的 TCP/IP 存储结构。
这个存储部署的重要部分是,Mellanox 交换机可以在 Mellanox 中仅采用 56GbE 模式运行该结构。通过将交换机上每个端口的线路速度入口更改为 56000,可以从现有网络硬件中获得 40% 的额外带宽,而无需任何进一步投资。使用的布线必须能以 56GbE 速度运行。使用的适配器能自动与交换机就速度进行协商。
在实验室环境中,调整了网络交换机、主机和客户端的端口来以 56GbE 速度运行,并反复执行测试来查看性能改善。
当 Mellanox 结构以 56GbE 速度运行时,执行了以下测试来测量相较于 40GbE 速度的性能提升。
- 使用 gpfsperf 工具的 I/O 测试
- 单节点上的 30-test 工作负载以及 4 个节点上的可扩展性测试
在 4 个节点上使用 gpfsperf 工具的 I/O 测试结果
作为 Spectrum Scale 部署的一部分,可使用一些现有的性能工具(比如 gpfsperf 和 nsdperf )来帮助验证系统性能。请参阅本文的“”部分引用的 Spectrum Scale 文档,了解关于这些工具的更多信息。 gpfsperf 工具可用于度量 Spectrum Scale (GPFS) 文件系统上的读、写和读/写 I/O 性能。在网络端口以 40GbE 和 56GbE 速度运行时,使用了该工具来度量 I/O 吞吐量。该工具同时在所有 4 个节点上运行,以便对网络和 ESS 存储施加压力。图 11 展示了端口以 40GbE 和 56GbE 速度运行时的 I/O 吞吐量的比较。
图 11. 结构以 40GbE 和 56GbE 速度运行时,使用测试工具实现的 I/O 吞吐量的比较

使用 gpfsperf 工具的测试结果表明,无需任何额外的基础架构或升级现有网络基础架构,整体读/写 I/O 吞吐量 (70:30) 获得了 8% 到 10% 的提升。在测试期间,ESS GL4 存储的 I/O 吞吐量达到了极限。
gpfsperf 顺序写命令样本:
/usr/lpp/mmfs/samples/perf/gpfsperf create seq /gpfs/sasdata_1m/data/n1aa -r 1m -th $1 -n 3072M &
gpfsperf 顺序读命令样本:
/usr/lpp/mmfs/samples/perf/gpfsperf read seq /gpfs/sasdata_1m/data/n1aa -r 1m -th $1 &
gpfsperf 顺序读/写命令样本:
/usr/lpp/mmfs/samples/perf/gpfsperf mixrw seq /gpfs/sasdata_1m/data/n1aa -r 1m -th $1 -n 3072M -readratio 70 &
对 56GbE 结构进行 SAS 工作负载测试的测试结果
20-test 混合分析工作负载没有网络 I/O 限制;因此与 40GbE 结果相比,(单节点或多个节点上的)20-test 工作负载没有实现任何性能改善。但是,与以 40GbE 速度运行的端口相比,当网络端口调节为以 56GbE 速度运行时,30-test 工作负载表现出了性能改善。
- 当端口以 56GbE 速度运行时,单节点上的 30-test 工作负载的真实时间减少了 5%。
- 当端口以 56GbE 速度运行时,在所有 4 个节点上同时运行的 30-test 工作负载(总共 120 个测试)的真实时间减少了 8%。
- 与以 40GbE 速度运行的 14 GBps 吞吐量相比,以 56GbE 速度运时,4 节点测试实现了 16 GBps 的峰值 I/O 吞吐量。与以 40GbE 速度运行的 11 GBps 吞吐量相比,以 56GbE 速度运时,该测试实现了 12.15 GBps 的平均 I/O 吞吐量。
图 12 和图 13 展示了 30-test 工作负载以 40GbE 和 56GbE 速度运行时的 I/O 吞吐量。
图 12. 以 40GbE 速度运行时,扩展到 4 个节点的 30-test 工作负载(总共 120 个测试)的 I/O 吞吐量

图 13. 以 56GbE 速度运行时,扩展到 4 个节点的 30-test 工作负载(总共 120 个测试)的 I/O 吞吐量

调优
本节将提供如何调优环境的每个方面的指导和建议。
交换机调优
有 5 个经过修改的交换机调优参数:
- 流控制
Interface ethernet 1/n flowcontrol receive on force Interface ethernet 1/n flowcontrol send on force
- 接口速度
Interface ethernet 1/n speed 56000, where n= port 1-36
- 接口 MTU 大小
Interface ethernet 1/n mtu 9000, where n= port 1-36
- 在需要时进行 LAG 配置调优
Interface port-channel y flowcontrol receive on force, where y = 1 – max number of LAG groups Interface port-channel y flowcontrol send on force, where y = 1 – max number of LAG groups
- LAG 负载平衡
port-channel load-balance ethernet source-destination-ip source-destination-mac source-destination-port
为了实现冗余性,客户端节点 (LPAR) 拥有双端口适配器。由于适配器所插入的 PCI Gen3.0 x8 总线的限制,适配器的最大总带宽限制为 56GbE。在需要增加带宽和冗余性时,建议以 56GbE 速度运行交换机端口来增加带宽。将适配器配置为模式 1 (Active / Standby) 来提供冗余性。
备注:实验室环境中有一台 36 端口的 40GbE / 56GbE 交换机。它拥有 4 条来自客户端节点 (LPARS) 的链接和 7 条来自 ESS 存储的链接,总共使用了 11 个端口。客户可能不希望整个交换机受到只能使用 11 个端口的限制。Mellanox 通过 IBM 业务合作伙伴提供了一个选项 - 一个拥有 12 个端口的较少端口交换机 MSX-1012B-2BFS,这个交换机使用与 IBM 8831-NF2 相同的 MLNX-OS 和 ASIC,并拥有与其相同的特性。
AIX 客户端网络调优参数
以下操作系统网络的可调优参数是根据 AIX 默认值进行更改的。要查看 lsattr 命令输出、no -a 命令输出以及 Spectrum Scale 可调优参数的完整列表,请参阅“”部分。
根据默认适配器设置,对 AIX SAS 客户端适配器接口 en3 进行的更改
# en3 mtu 9000 Maximum IP Packet Size for This Device True rfc1323 1 Enable/Disable TCP RFC 1323 Window Scaling True tcp_nodelay 1 Enable/Disable TCP_NODELAY Option True tcp_recvspace 1048576 Set Socket Buffer Space for Receiving True tcp_sendspace 1048576 Set Socket Buffer Space for Sending True thread on Enable/Disable thread attribute True
根据默认设置对 AIX SAS 客户端适配器设备 ent3 进行的更改
# ent3 jumbo_frames yes Request jumbo frames True jumbo_size 9014 Requested jumbo frame size True large_receive yes Request Rx TCP segment aggregation True large_send yes Request Tx TCP segment offload True tx_comp_cnt 2048 Tx completions before hardware notification True
通过 no -L -F 更改的 AIX 网络环境/适配器参数与默认值的比较
一般网络参数
------------------------------------------------------------------------------------------------- NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES ------------------------------------------------------------------------------------------------- fasttimo 100 200 100 50 200 millisecond D ------------------------------------------------------------------------------------------------- sb_max 32M 1M 32M 4K 8E-1 byte D ------------------------------------------------------------------------------------------------- ##Restricted tunables poolbuckets 7 1 1 1 20 numeric D -------------------------------------------------------------------------------------------------
TCP 网络可调优参数
-------------------------------------------------------------------------------- NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES -------------------------------------------------------------------------------- hstcp 1 0 1 0 1 boolean D -------------------------------------------------------------------------------- rfc1323 1 0 1 0 1 boolean C -------------------------------------------------------------------------------- sack 1 0 1 0 1 boolean C -------------------------------------------------------------------------------- tcp_mssdflt 8960 1460 8960 1 64K-1 byte C -------------------------------------------------------------------------------- tcp_recvspace 856K 16K 856K 4K 8E-1 byte C sb_max -------------------------------------------------------------------------------- tcp_sendspace 856K 16K 856K 4K 8E-1 byte C sb_max --------------------------------------------------------------------------------
UDP 网络可调优参数
NAME CUR DEF BOOT MIN MAX UNIT TYPE DEPENDENCIES -------------------------------------------------------------------------------- udp_recvspace 768K 42080 768K 4K 8E-1 byte C sb_max -------------------------------------------------------------------------------- udp_sendspace 256K 9K 256K 4K 8E-1 byte C sb_max -------------------------------------------------------------------------------- n/a means parameter not supported by the current platform or kernel Parameter types: S = Static: cannot be changed D = Dynamic: can be freely changed B = Bosboot: can only be changed using bosboot and reboot R = Reboot: can only be changed during reboot C = Connect: changes are only effective for future socket connections M = Mount: changes are only effective for future mountings I = Incremental: can only be incremented Value conventions: K = Kilo: 2^10 G = Giga: 2^30 P = Peta: 2^50 M = Mega: 2^20 T = Tera: 2^40 E = Exa: 2^60
备注:在已连接的交换机端口的速度更改为 56000 后,重新启动 LPAR 即可实现自动配置的端口速度更改。
ESS Linux I/O 服务器适配器连接更改
经过广泛测试后,ESS 网络适配器 bond0 参数从 LACP 更改为 ALB 。
# vi /etc/sysconfig/network-scripts/ifcfg-bond-bond0 BONDING_OPTS=”miimon=100 mode=balance-alb xmit_hash_policy=layer3+4” MTU=9000
ESS Linux I/O 服务器网络调优参数
以下操作系统网络可调优参数已对 Linux ESS I/O Network Shared Disk (NSD) 服务器的默认值作出更改。
ppc64_cpu --smt=2 ethtool -G enP4p1s0 rx 8192 tx 8192 ethtool -G enP9p1s0 rx 8192 tx 8192 ethtool -G enp1s0 rx 8192 tx 8192 mlnx_tune -r -c ethtool -K enP9p1s0d1 tx-nocache-copy off ethtool -K enP4p1s0d1 tx-nocache-copy off ethtool -K enp1s0d1 tx-nocache-copy off
备注:在 ESS 安装过程中,已预先设置/调优了 ESS 节点网络可调优参数。
ESS Spectrum Scale 调优参数
以下 Spectrum Scale 集群调优参数已根据默认值进行了更改并用于混合 AIX/Linux GPFS 集群。从 Spectrum Scale 4.2.0.3 开始,第一列中的句点“.”表示该参数已通过 workerThreads
参数进行了更改。该特性有时称为自动调优特性,在此特性中,更改参数 workerThreads
也会导致其他可调优参数自动对默认值进行更改。
已更改的 Spectrum Scale 可调优参数(按照对性能的影响从高到低列出)包括 Pagepool、workerThreads、prefetchPct、maxFilesToCache、maxblocksize 和 maxMBpS
。这些可调优参数为 SAS Mixed Analytics 工作负载提供了最重大的性能提升。一般而言,针对 SAS 工作负载的最重要 Spectrum Scale 可调优参数是 Pagepool
。与初始环境测试中的其他 Spectrum Scale 可调优参数相比,增加客户端节点上的 Pagepool 提供了最大的性能改善。根据其他环境中的后续相关 ESS GL4 测试,我们预计,如果客户端节点上的 Pagepool 从 32 GB 增长到 64 GB,与本文中报告的数字相比,性能将提高 5% 到 10%。
因此,以下突出显示的参数被视为最重要的可调优参数,应该首先考虑更改它们。请注意,对于 ESS,在 ESS 安装过程中已更改了许多默认配置值。ESS 经过了高度优化,对于我们的测试,所需的调优更改极少。例如,ESS 节点的 Pagepool 的最大默认大小为 72 GB。请参阅,了解 Spectrum Scale 配置可调优参数的完整列表。
运行 AIX 的客户端节点:
-
maxblocksize 16777216
-
maxFilesToCache 50000
-
maxMBpS 24000
-
Pagepool 34359738368
-
prefetchPct 40
-
workerThreads 1024
ESS/Linux 节点:
-
maxblocksize 16777216
-
maxFilesToCache 50000
-
maxMBpS 24000
-
prefetchPct 40
-
seqDiscardThreshhold 1073741824
-
workerThreads 1024
备注:在 ESS 安装过程中,已通过 Spectrum Scale 性能脚本设置了许多非默认参数。
结束语
IBM 和 Mellanox 通过针对 SAS 工作负载的 JBOD 近线磁盘存储解决方案,实现了一个有效且相对经济的以太网,该解决方案的性能与更昂贵的中间层光纤通道连接闪存相当。使用 AIX(位于基于 IBM POWER8 处理器的服务器上)作为 SAS 客户端,凸显出了其作为这个成功 POC 强大工作引擎的优势。只有 Mellanox 才能提供的以太网高速存储网络是实现 ESS 完整 I/O 吞吐量的关键,它还提供了运行 40GbE 结构的能力,而且除了以 56GbE 速度运行的交换机的解决方案配置和以 56GbE 速度运行的 40GbE 适配器的自动配置(在 IBM 产品组合中使用 56GbE 电缆实现)之外,没有任何额外费用。
从这个 SAS Mixed Analytics 工作负载概念证明收集的性能指标表明,该解决方案在 SAS 应用程序中发挥了 IBM Elastic Storage Server、Mellanox 网络和 Power E880 的全部潜力。跨学科团队通过结合使用团队服务器、网络、存储和应用程序专家经验,对系统的所有部分进行交互式调优和优化,获得了卓越的性能。除了业界领先的硬件和软件之外,这是这个 POC 获得成功的关键。
附加阅读资料
IBM 和 SAS 白皮书
- 一种适合 SAS Foundation 混合工作负载的新的软件定义融合基础架构
- SAS Elastic Storage Server (ESS) 作战卡
- 通过 IBM XIV 和 IBM FlashSystem 在基于 IBM POWER8 处理器的系统上部署 SAS 业务分析
- 通过 IBM XIV Storage System 和 IBM GPFS 在 IBM Power 服务器上部署 SAS 9.3 网格
IBM Power Systems
IBM 存储解决方案
网络
附录:调优参数
为 AIX SAS 客户端使用了以下操作系统网络可调优参数。可以使用 lsattr AIX 命令来显示特定设备的属性特征和可能的属性值。例如:
lsattr -El ent3
备注:由于启用了 rfc1323,所以特定于接口的可调优参数优先于设置为 no 的参数。
[root@brazos06]> # lsattr -El ent3 alt_addr 0x000000000000 Alternate Ethernet address True bar0 0x88100000 Bus memory address 0 False bar1 0x80000000 Bus memory address 1 False bar2 0x88000000 Bus memory address 2 False chksum_offload yes Request checksum offload True delay_open no Delay open until link state is known True devid 0xb31503101410b504 Device ID False eeh_cfgsp_delay 999 EEH config space delay (miliseconds) False eeh_reset_delay 5 EEH reset delay (seconds) False flow_ctrl yes Request flow control True flow_ctrl_rx yes Receive pause frames True flow_ctrl_tx yes Transmit pause frames True intr_cnt 10 Interrupt event coalesce counter True intr_priority 3 Interrupt priority False intr_time 5 Interrupt event coalesce timer (microseconds) True ipv6_offload yes Request IPV6 stateless offloads True jumbo_frames yes Request jumbo frames True jumbo_size 9014 Requested jumbo frame size True large_receive yes Request Rx TCP segment aggregation True large_send yes Request Tx TCP segment offload True link_delay_mode logging Link status delay mode True link_delay_time 5 Link status delay timer (seconds) True lro_threshold 2 Rx TCP segment aggregation minimum pkt threshold True media_speed 40000_Full_Duplex Requested Media speed False queue_pairs 8 Requested number of queue pairs True queues_rdma 1 Requested number of RDMA event queues True rdma desired Request RDMA True rom_mem 0x0 ROM memory address False rsp_comp_cnt 128 RSP Completions Before Hardware Notification True rsp_limit 1000 Response queue entries processed per interrupt True rsp_max_events 512 Max RSP events that can be received True rx_buffer_low 90 Rx queue buffer replenish threshold True rx_chain 16 Rx packets chained for stack processing True rx_comp_limit 128 Response queue entries processed per interrupt True rx_max_pkts 2048 Rx queue maximum packet count True rx_notify_cnt 128 Rx packets per Rx complete notification True rx_send_cnt 8 Rx Immediate Data mode True systrc_enable no Enable config debug tracing True timer_eeh 1 EEH event poll timer (seconds) True timer_error 1 Error poll timer (seconds) True timer_link 1 Link poll timer (seconds) True timer_stats 0 Statistics poll timer (seconds) True tx_comp_cnt 2048 Tx completions before hardware notification True tx_comp_limit 1 Tx completions processed per event False tx_free_delay no Delay free of Tx packet mbufs True tx_limit 1024 Tx packets sent per transmit thread True tx_max_pkts 1024 Tx queue maximum packet count True tx_notify_cnt 64 Tx packets per Tx complete notification True tx_swq_max_pkts 8192 Software Tx queue maximum packet count True use_alt_addr no Request alternate Ethernet address True vpd_missing no VPD is not present True
可以使用 no AIX 命令管理网络的调优参数。例如:
no -a output
arpqsize = 1024 arpt_killc = 20 arptab_bsiz = 7 arptab_nb = 149 bcastping = 0 bsd_loglevel = 3 clean_partial_conns = 0 delayack = 0 delayackports = {} dgd_flush_cached_route = 0 dgd_packets_lost = 3 dgd_ping_time = 5 dgd_retry_time = 5 directed_broadcast = 0 fasttimo = 100 hstcp = 1 icmp6_errmsg_rate = 10 icmpaddressmask = 0 ie5_old_multicast_mapping = 0 ifsize = 256 igmpv2_deliver = 0 init_high_wat = 0 ip6_defttl = 64 ip6_prune = 1 ip6forwarding = 0 ip6srcrouteforward = 1 ip_ifdelete_notify = 0 ip_nfrag = 200 ipforwarding = 0 ipfragttl = 2 ipignoreredirects = 0 ipqmaxlen = 100 ipsendredirects = 1 ipsrcrouteforward = 1 ipsrcrouterecv = 0 ipsrcroutesend = 1 limited_ss = 0 llsleep_timeout = 3 lo_perf = 1 lowthresh = 90 main_if6 = 0 main_site6 = 0 maxnip6q = 20 maxttl = 255 medthresh = 95 mpr_policy = 1 multi_homed = 1 nbc_limit = 12582912 nbc_max_cache = 131072 nbc_min_cache = 1 nbc_ofile_hashsz = 12841 nbc_pseg = 0 nbc_pseg_limit = 25165824 ndd_event_name = {all} ndd_event_tracing = 0 ndogthreads = 0 ndp_mmaxtries = 3 ndp_umaxtries = 3 ndpqsize = 50 ndpt_down = 3 ndpt_keep = 120 ndpt_probe = 5 ndpt_reachable = 30 ndpt_retrans = 1 net_buf_size = {all} net_buf_type = {all} net_malloc_frag_mask = {0} netm_page_promote = 1 nonlocsrcroute = 0 nstrpush = 8 passive_dgd = 0 pmtu_default_age = 10 pmtu_expire = 10 pmtu_rediscover_interval = 30 psebufcalls = 20 psecache = 1 psetimers = 20 rfc1122addrchk = 0 rfc1323 = 1 rfc2414 = 1 route_expire = 1 routerevalidate = 0 rtentry_lock_complex = 1 rto_high = 64 rto_length = 13 rto_limit = 7 rto_low = 1 sack = 1 sb_max = 33554432 send_file_duration = 300 site6_index = 0 sockthresh = 85 sodebug = 0 sodebug_env = 0 somaxconn = 1024 strctlsz = 1024 strmsgsz = 0 strthresh = 85 strturncnt = 15 subnetsarelocal = 1 tcp_bad_port_limit = 0 tcp_cwnd_modified = 0 tcp_ecn = 0 tcp_ephemeral_high = 65535 tcp_ephemeral_low = 32768 tcp_fastlo = 0 tcp_fastlo_crosswpar = 0 tcp_finwait2 = 1200 tcp_icmpsecure = 0 tcp_init_window = 0 tcp_inpcb_hashtab_siz = 24499 tcp_keepcnt = 8 tcp_keepidle = 14400 tcp_keepinit = 150 tcp_keepintvl = 150 tcp_limited_transmit = 1 tcp_low_rto = 0 tcp_maxburst = 0 tcp_mssdflt = 8960 tcp_nagle_limit = 65535 tcp_nagleoverride = 0 tcp_ndebug = 100 tcp_newreno = 1 tcp_nodelayack = 1 tcp_pmtu_discover = 1 tcp_recvspace = 876544 tcp_sendspace = 876544 tcp_tcpsecure = 0 tcp_timewait = 1 tcp_ttl = 60 tcprexmtthresh = 3 tcptr_enable = 0 thewall = 50331648 timer_wheel_tick = 0 tn_filter = 1 udp_bad_port_limit = 0 udp_ephemeral_high = 65535 udp_ephemeral_low = 32768 udp_inpcb_hashtab_siz = 24499 udp_pmtu_discover = 1 udp_recv_perf = 0 udp_recvspace = 786432 udp_sendspace = 262144 udp_ttl = 30 udpcksum = 1 use_sndbufpool = 1
Spectrum Scale 调优参数
作为参考,我们列出了以下针对混合 AIX/Linux GPFS 集群的 Spectrum Scale 集群可调优参数。下面的参数前面的“!”标志表示一些可调优参数已根据默认值进行了更改。最新版的 Spectrum Scale 拥有自动调优特性,更改 workerThreads 还会导致其他可调优参数自动根据默认值进行更改。(以粗体)突出显示的参数被视为最重要的可调优参数,应该首先考虑更改它们。请注意,对于 ESS,在 ESS 安装过程中已更改了许多默认配置值。ESS 已经过高度优化,所需的调优更改极少。
AIX 节点
! ccrEnabled 0 ! cipherList AUTHONLY ! deadlockDataCollectionDailyLimit 10 ! deadlockDetectionThreshold 0 ! dmapiFileHandleSize 32 ! expelDataCollectionDailyLimit 10 ! logBufferCount 20 ! logWrapThreads 128 ! maxblocksize 16777216 ! maxBufferDescs 32768 ! maxFilesToCache 50000 ! maxMBpS 24000 ! maxReceiverThreads 128 ! maxStatCache 10000 ! minReleaseLevel 1502 ! pagepool 34359738368 ! prefetchPct 40 ! scatterBuffers 0 ! seqDiscardThreshhold 1073741824 ! socketMaxListenConnections 512 ! worker1Threads 1024 ! workerThreads 1024
ESS/Linux 模式
备注:ESS 安装过程已设置了这些非默认参数中的许多参数。
! ccrEnabled 0 ! cipherList AUTHONLY ! deadlockDataCollectionDailyLimit 10 ! deadlockDetectionThreshold 0 ! dmapiFileHandleSize 32 ! envVar MLX4_USE_MUTEX 1 MLX5_SHUT_UP_BF 1 MLX5_USE_MUTEX 1 ! expelDataCollectionDailyLimit 10 ! flushedDataTarget 1024 ! flushedInodeTarget 1024 ! ioHistorySize 65536 ! logBufferCount 20 ! logWrapAmountPct 10 ! logWrapThreads 128 ! maxAllocRegionsPerNode 32 ! maxBackgroundDeletionThreads 16 ! maxblocksize 16777216 ! maxBufferCleaners 1024 ! maxBufferDescs 2097152 ! maxFileCleaners 1024 ! maxFilesToCache 50000 ! maxGeneralThreads 1280 ! maxInodeDeallocPrefetch 128 ! maxMBpS 24000 ! maxReceiverThreads 128 ! maxStatCache 10000 ! minReleaseLevel 1502 ! myNodeConfigNumber 1 ! nsdClientCksumTypeLocal NsdCksum_Ck64 ! nsdClientCksumTypeRemote NsdCksum_Ck64 ! nsdInlineWriteMax 32768 ! nsdMaxWorkerThreads 3072 ! nsdMinWorkerThreads 3072 ! nsdMultiQueue 512 ! nsdRAIDBlockDeviceMaxSectorsKB 8192 ! nsdRAIDBlockDeviceNrRequests 32 ! nsdRAIDBlockDeviceQueueDepth 16 ! nsdRAIDBlockDeviceScheduler deadline ! nsdRAIDBufferPoolSizePct (% of PagePool) 80 ! nsdRAIDEventLogToConsole all ! nsdRAIDFastWriteFSDataLimit 262144 ! nsdRAIDFastWriteFSMetadataLimit 1048576 ! nsdRAIDFlusherBuffersLimitPct 80 ! nsdRAIDBlockDeviceQueueDepth 16 ! nsdRAIDBlockDeviceScheduler deadline ! nsdRAIDBufferPoolSizePct (% of PagePool) 80 ! nsdRAIDEventLogToConsole all ! nsdRAIDFastWriteFSDataLimit 262144 ! nsdRAIDFastWriteFSMetadataLimit 1048576 ! nsdRAIDFlusherBuffersLimitPct 80 ! nsdRAIDFlusherBuffersLowWatermarkPct 20 ! nsdRAIDFlusherFWLogHighWatermarkMB 1000 ! nsdRAIDFlusherFWLogLimitMB 5000 ! nsdRAIDFlusherThreadsHighWatermark 512 ! nsdRAIDFlusherThreadsLowWatermark 1 ! nsdRAIDFlusherTracksLimitPct 80 ! nsdRAIDFlusherTracksLowWatermarkPct 20 ! nsdRAIDMaxTransientStale2FT 1 ! nsdRAIDMaxTransientStale3FT 1 ! nsdRAIDReconstructAggressiveness 1 ! nsdRAIDSmallBufferSize 262144 ! nsdRAIDSmallThreadRatio 2 ! nsdRAIDThreadsPerQueue 16 ! nsdRAIDTracks 131072 ! nspdQueues 64 ! numaMemoryInterleave yes ! pagepool 76168560640 ! prefetchPct 40 ! prefetchThreads 341 ! scatterBuffers 0 ! scatterBufferSize 262144 ! seqDiscardThreshhold 1073741824 ! socketMaxListenConnections 512 ! syncWorkerThreads 256 ! worker1Threads 1024 ! worker3Threads 32 ! workerThreads 1024
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。