首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

高性能服务器网络可伸缩性(1)

高性能服务器网络可伸缩性(1)

有许多资料讨论了网络性能、优化和调优,涉及各种硬件、平台和操作系统以及各种工作负载。但是,高性能可伸缩服务器(比如 IBM® eServer™ xSeries® x460 和 IBM System x™ 3950)的大量使用毕竟增加了网络和系统性能的复杂性。例如,对于可以通过添加完整的机架(或节点)来增加容量的可伸缩服务器,提高跨多节点系统的网络可伸缩性对总体系统性能非常重要。
系统配置测试用系统(SUT)是一个 4 节点的 IBM eServer xSeries 460,运行 SUSE Linux Enterprise Server 10 for AMD64 and EM64T(x86-64)。每个节点的配置如下:
  • 系统: IBM eServer xSeries 460
  • CPU: 4 个 64 位 Intel® Xeon® 处理器 7040 3.0GHz
  • 内存: 32GB(4 个内存卡上各有 8 个 1 GB DIMM)
  • 以太网适配器: Broadcom 5704 10/100/1000 dual Ethernet/on system          board/64-bit 266MHz PCI-X 2.0
  • 网络驱动程序: tg3 c3.49
  • 网络类型: 千兆以太网
  • 线程化: 超线程技术
所有测试场景都使用 IBM System p5™ 550 系统,每个系统有两个 Intel Dual-Port 以太网适配器,运行 Red Hat Enterprise Linux 4 Update 4。4 节点的绑定(bond)测试还包含一个 2 节点的 IBM eServer xSeries 460,运行 SUSE Linux Enterprise Server 10 for AMD64 and EM64T(x86-64)。SUT 和驱动程序通过一个 Cisco Catalyst 3750G-24TS 交换机网络。
测试方法由于多种原因,我选用 netperf 基准(具体地说,是单向流测试 TCP_STREAM)测试可伸缩性演示工作负载,原因包括它的简单性、可度量性、在 Linux 上的稳定性、广泛的应用以及能够精确地度量批量数据传输性能。它是一个基本的客户机-服务器模型基准,包含两个对应的可执行文件 netperf 和 netserver。
简单的 TCP_STREAM 测试从 netperf 系统到 netserver 系统的数据传输时间,以此度量一个系统发送数据和另一个系统接收数据的速度。在执行时,netperf 建立一个到远程系统的控制连接(通过 TCP)。这个连接用来在系统之间传递配置信息和结果。使用另一个连接执行度量,在此期间保留控制会话但是没有通信流(除非某些 TCP 选项需要通信)。
在这里描述的所有测试中,当 IBM eServer xSeries 460 执行网络发送(netperf)、网络接收(netserver)或同时执行这两种操作(双向)时,都度量网络吞吐量和 CPU 利用率。在客户机发送端记录客户机和服务器之间的吞吐量,并由 netperf 基准报告记录的数据。
每个环境的完整测试对于从 64 字节到 256KB 的 15 种消息大小分别执行 3 分钟的流测试。这个范围包含 1460 和 1480 字节的消息大小,所以在 Linux 将消息分割为小数据包发送到网络之后,总的数据包大小接近默认的最大传输单位(MTU)1500。在 SUT 上度量 CPU 利用率并由 sysstat 包中的 sar 实用程序报告,这一信息表示为 netperf 测试期间的系统平均值。所有 CPU 和中断信息也来自 sar 数据。
在可伸缩性演示中,修改了配置和参数来影响行为。以各种组合启用和禁用它们将导致不同的结果。通过设置 SMP IRQ 亲合位掩码 /proc/irq/nnn/smp_affinity,可以指定允许哪些 CPU 处理特定的中断。Linux 在初始化期间将它们设置为默认值。可以启动守护进程 irqbalance,在处理器之间动态地分发硬件中断。如果启用这个守护进程,它会反复修改 smp_affinity 位掩码来执行分发。可以使用 numactl 程序将特定的进程绑定到特定节点上的 CPU 和/或内存。Linux 网络绑定提供多种将多个网络接口合并为一个逻辑接口的方法,对于多节点服务器,这是一个有吸引力的网络管理特性。
返回列表