一、整体系统及网络环境


本系统采用一台两路服务器做管理节点,两台四路服务器做并行的计算节点。服务器配置如下:


         规格          配置          数量


                2U服务器

CPU: E5-2620v2*2

硬盘:300G 热插拔SAS * 3

内存:64G

 

            1

                4U服务器 CPU: XEONE7-4820*4

硬盘:300G 热插拔SAS * 3

内存:128G
             2



整套系统由实施高性能部门工程师安装好并行环境及任务管理软件,并通过测试,可以正常计算。

系统的网络拓扑如下:

一小型项目中并行计算缓慢的问题排查(一)_第1张图片

整套系统通过一个千兆交换机进行连接。


、系统测试

   并行环境由实施工程师实施完后,用户用LAPACK软件进行并行计算,通过计算同一个模型,但调用32核心与64核心来进行时间的比较,发现调用核心数相关一倍的情况下而计算时间并没有明显减少。比如,一个模型用32核进行计算,用9小时计算完成;调用64个核心计算同一个任务,用了近8个小时计算完成。通过几天的不断测试,此套系统的并行能力并不理想。


三、问题分析

   通过查看软件的日志文件,看到计算模型的大部份时间都花在了“outfille”,也就是计算完成后结果文件的输出上,这个时间占据了整体时间的45%左右。查到这里首先怀疑是磁盘I/O是瓶颈,但服务器都是采用的15000转的高速SAS盘,且三块硬盘还是做成了RAID5,理论上不应该出现写入缓慢的现象。再结合此套系统的架构,管理节点通过NFS服务器把“/home”目录做成了一个共享目录,两个计算节点把此目录都挂载到本地的“/home”目录,所以计算节点计算完成后生成的结果文件都会写入到管理节点的“/home”目录中,这个写入过程是通过千兆网络传输到管理节点,所以得监控看看当并行计算时网络的带宽使用情况。在两个计算节点上开启网络带宽的监控工具“iptraf”,这个工具可以实时的监控服务器网卡的实时流量,下图是一计算节点eth0网卡的流量状态。

一小型项目中并行计算缓慢的问题排查(一)_第2张图片

    经过观察,当计算节点在并行计算时,网卡进出的速率能达到500Mbits/sec左右,对于千兆的交换机,这速率几乎已跑到了上限,并且通过终端接入交换机的配置界面,也看到相应的端口听转发速率也是在600Mbits/sec,所以网络上几乎是满血在利用。因计算节点上的“/home”目录是挂载管理节点上的“/home”目录,而用户提交计算任务后生成的结果文件也是存放在用户的家目录内的,也就是从网络传输到管理节点的“/home”下的,所在我直接在一计算节点上用dd命令往“/home”目录写数据做测试,测试了几组“bs”的值,有1M5M10M20M的,写入速率都在30MB/s左右,而在本地进行测试时,速率是在500MB/s

一小型项目中并行计算缓慢的问题排查(一)_第3张图片


四、解决方案

    因当时环境没有万兆网络,而服务器都是集成了双千兆网卡,千兆交换机也支持端口聚合的功能,所以尝试把管理节点上的两个端口同时接入交换机,再把交换上的这两个端口配置成聚合模式,而管理节点的两个端口配置成bond工作模式,看通过测试速度依然没有提升,或者是有一点提升,因用dd命令测试时速率只有32MB/s

看来只有搭建一个万兆网络环境后再做测试,搭建好网络环境后拓扑如下:


一小型项目中并行计算缓慢的问题排查(一)_第4张图片

万兆交换机及网卡还在申请中……


未完、待续。