通常,您可以使用
iperf utility的一些高级交换机来查看系统之间的网络性能,特别是延迟和抖动……
这是基于UDP还是TCP的消息流?
我在上面评论了需要有关您的设置的更多信息.如果这是一个低延迟的消息传递应用程序,整个世界的tuning and optimization techniques跨越硬件,驱动程序和操作系统调整.但实际上,我们需要更多信息.
编辑:
好的,这就是TCP消息传递.你修改过任何/etc/sysctl.conf参数吗?你的发送/接收缓冲区是什么样的?单独使用实时内核不会有太大作用,但是如果你移动到中断CPU的中断点,改变消息应用程序(chrt)的实时优先级并可能修改系统的tuned-adm配置文件可能救命…
这听起来像是一个通用的EL6系统,因此设置性能调整基线的简单方法包括将系统的性能配置文件更改为tuned framework中可用的另一个.然后从那里构建.
在你的情况下:
yum install tuned tuned-utils
tuned-adm profile latency-performance
显示差异的快速矩阵:
你能告诉我们硬件吗? CPU,NIC,内存的类型?
所以,测试你的链接可能会很有趣……试试这个iperf测试……
在一个系统上,启动iperf UDP侦听器.另一方面,打开与第一个的连接……快速的线路质量测试.
# Server2
[root@server2 ~]# iperf -su
# Server1
[root@server1 ~]# iperf -t 60 -u -c server2
在我的情况下,低抖动和低ping时间:
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-20.0 sec 2.50 MBytes 1.05 Mbits/sec 0.012 ms 0/ 1785 (0%)
PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms
我会检查硬件和接口是否有错误.如果需要,可以消除系统之间的切换,看看直接连接是什么样的.你不需要高抖动(方差),所以检查一下.
但说实话,即使ping了你的当前设置,这也不足以杀死你的应用程序.我将沿着调整发送/接收缓冲区的道路前进.请参阅:net.core.rmem_max,net.core.wmem_max及其默认值…
像/etc/sysctl.conf中的以下内容(请调整一下):
net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216