您的位置:首页 > 其它

程序调试记录

2016-10-29 19:33 218 查看
最近把师兄的程序在万兆网络上进行测试,现在把调试中出现的问题进行记录:

1)其中一共是十六块板子,板子的配置文件是sipixel.xml,每块板子的配置信息里都有对应的IP,其中的IP即表示对读取板子的Server的IP信息,因为read_out中读取的板子配置文件是sipixel.xml,因此在写新的配置文件可以使用linux中的软连接,即如果写l的板子配置文件是test.xml,则使用ln -s test.xml sipixel.xml,则对其进行了软连接。

2)在dyb01上跑Read_out,用ip ad 可以查看上面的网络的ip等信息,,如果要查看这些网卡的信息,则使用以下的脚本:

      for i in {0..7}

      do

      ethtool eth$i

      done

      这样就可以看到eth4、eth5、eth6分别是万兆、万兆和四万兆的网卡

      而如果需要对其中的网络信息进行修改或者是加上需要的信息,则需要到 /etc/sysconfig/network-scripts中对相应的网络配置文件进行修改,也可以进行添加,例如:对eth4添加新的文件的,即ifcfg-eth4:0

      修改好网络的配置之后,需要对网络进行重启,即输入命令 :   service network restart

      这样在进行ip ad 查看的时候就可以看到新配置的网络信息了

      如果需要临时添加网段的信息,那么可以使用ip addr add的命令    例如 sudo ip addr add 192.168.37.11/24 dev eth0,这样就可以为制定的网卡设备添加相应的网段了

3)要求是十六块板子,两个万兆网卡每个分别跑四块板子,一个四万兆网卡跑八个板子,为了能够让板子走指定的网卡,那么要做的就是把server端的IP和网卡的IP设置在相同的网段,根据路由规则会优先走相同的网段。因此需要做的就是把其中四个SERVER的IPz设置与一个万兆网卡设置在相同的网段(eg137网段),而其他的设置方法与上述相似。

4)使用sar -n DEV 1 1000 查看网络的流量

5)使用top查看cpu的占用情况

6)使用traceroute查看路由的情况,使用ping查看网络的使用情况

7)其中control端可以跑在任何地方,其中需要把mainwindows中的ip改到与read_out的相同,这样他们之间才能进行通信

8)每个包的大小是59916字节,即60k左右,一个事例就是16*59916,control中的事例率event_Rate,59916*16*event_Rate就得到了带宽的大小

 9)一个万兆网卡如果跑满的话事例率大概是1200

 10)学会利用gdb进行程序的调试

 11)补充说明(11.24日再次进行测试时出现的问题)

          a) 把server跑在daq03上【配置文件中的ip信息是daq03中的网络Ip的信息】,把read_out跑在daq04上,把control跑在本地机上,此时control连不上read_out了,原因是因为daq04是内部使用的网,有特定的网关,而我本地机中却没有相关的路由,因此需要添加特定的路由  ,使用route查看本机上的路由表,使用route add 进行路由表的添加,在这里举例说明:

      route add -net  xxx.xxx.xxx.xxx/24 gw xxx.xxx.xxx.xxx   这样就添加了相关的路由信息了【但是下次开机的时候路由信息就又没有了】

          b) 改变了路由信息之后,确是可以Ping通相关的IP,但是使用connect之后却还是没有办法连接上,原因是因为访问的端口因为防火墙的原因造成不能访问,查看daq04中防火墙的状态:  使用命令 systemctl status firewalld   可以看到防火墙确实是开着的,使用命令将它关闭:systemctl
stop firewalld

          c) 最后,使用control端时,因为不是真实板子的测试,因此不需要加上config那个选项,选择start的checkbox之后就可以进行测试了。

 12)Gbps 与 GB/s的区别

  今天在理解调试过程中的事例率以及要求的性能时,被这些表示速率的单位搞的有点晕,在这里记录一下,以便以后又忘记

  a)万兆网卡的Speed为:10000Mb/s = 10Gb/s,注意可以看到其中是小b,这和B就有区别了,大B指的是字节,而小b则是位数,1Byte = 8bit,因此如果将万兆网的Speed转换为GB/s,则可以得到Speed = 1.25GB/s。

  b)在上面第九条提到了如果万兆网跑满的话事例率是1200,它是这样得到的:

      万兆网跑满为 10Gb/s = 10^7 Kb/s = 1250000 KB/s  ,而一个事例的大小是 59916Byte * 16 /1024 ≈ 926 KB,因此可以得到万兆网跑满的时候事例率event_rate = 1250000/926 ≈ 1335

           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: