在我的研究小组中,我们最近将我们的机器上的操作系统从Red Hat 6.2升级到了Debian 8.3,并且观察到我们机器之间通过集成的Intel 1G NIC的TCP往返时间从110μs增加到220μs。 起初,我认为这是一个configuration问题,所以我将所有的sysctlconfiguration(例如tcp_low_latency=1 )从未升级的Red Hat机器复制到Debian机器,并没有解决问题。 接下来,我认为这可能是一个Linux分发问题,并在机器上安装了Red Hat 7.2,但往返时间保持在220μs左右。 最后,我认为可能是Linux内核版本问题,因为Debian 8.3和Red Hat 7.2都使用内核3.x,而Red Hat 6.2使用内核2.6。 所以为了testing这个,我安装了Debian 6.0 Linux内核2.6和宾果! 时间又在110微秒。 其他人也在最新版本的Linux中经历了这些更高的延迟,并且有已知的解决方法吗? 最小工作示例 下面是一个C ++应用程序,可用于基准延迟。 它通过发送消息,等待响应,然后发送下一个消息来测量延迟。 它用100字节的消息完成了这个100,000次。 因此,我们可以将客户的执行时间除以100,000来获得往返延迟。 要使用这个首先编译程序: g++ -o socketpingpong -O3 -std=c++0x Server.cpp 接下来在主机上运行应用程序的服务器端版本(比如192.168.0.101)。 我们指定IP以确保我们在一个知名的界面上托pipe。 socketpingpong 192.168.0.101 然后使用Unix工具time来测量客户端的执行时间。 time socketpingpong 192.168.0.101 client 在两个具有相同硬件的Debian 8.3主机之间运行这个实验会得出以下结果。 real 0m22.743s user 0m0.124s sys 0m1.992s Debian 6.0的结果是 […]
我收到用户对大型仓库设备两个部分之间networking应用程序性能不佳的抱怨。 该软件是在Linux服务器上运行的基于curses的terminal应用程序。 客户端是运行telnet或SSH客户端的PC。 麻烦发生在一天前,没有最近(已知)的环境变化。 核心交换机是MDF中的Cisco Catalyst 4507R-E ,与IDF中的一个4层Cisco Catalyst 2960交换机相连,它们通过多模光纤相连。 服务器在MDF中。 受影响的客户是IDF。 从Linux应用程序服务器ping到跨越build筑物的2960堆栈pipe理地址显示出高度的变化和大量的延迟: — shipping-2960.mdmarra.local ping statistics — 864 packets transmitted, 864 received, 0% packet loss, time 863312ms rtt min/avg/max/mdev = 0.521/5.317/127.037/8.698 ms 但是,从应用程序服务器ping到客户端计算机则更加一致: — charles-pc.mdmarra.local ping statistics — 76 packets transmitted, 76 received, 0% packet loss, time 75001ms rtt min/avg/max/mdev = 0.328/0.481/1.355/0.210 ms 没有相关的Linux接口或switchport显示错误( […]
卫星连接通常具有500ms左右的RTT。 连接通常会遭受次优的传输速度,尽pipe有大量的带宽,因为TCP确认需要很长的时间才能到达。 我的理解是,用TCP连接解决这个问题的一个好方法是将TCP窗口大小设置为连接速度(以位为单位)乘以RTT(以秒为单位)。 所以卫星上的1mbps连接应该有512kb的窗口大小。 这有什么陷阱? 是否还有其他类似的调整来优化卫星连接? 据我所知,许多现代操作系统会自动修改窗口大小,但是它们是否足够积极,足以使窗口尺寸足够大到可以用于卫星通信? 另外,我将假定在频繁丢弃数据包的networking上,大窗口大小是不可取的,因为重传将是窗口大小,并且您可能会将大部分带宽用于重传开销。 谢谢,我还在学习关于networking的很多东西,并且非常感谢你的投入。
当我说路由距离时,我的意思是在全球范围内。 例如,如果我的目标受众是在中国,我想在中国寻找一个主持人吗?
我们看到在相同子网内访问远程资源的服务的延迟时间为100〜300毫秒,但当我们使用ping(ping的大小与正常发送的数据包大小相同)时,我们会看到5ms或更短的响应。 还有什么我们应该检查?
我希望看到延迟地图,显示世界各地目的地之间的最低延迟。 例如,丹麦和印度之间达到的最低等待时间。 例如,这可以用于规划在哪里放置用于在线游戏的服务器场。
在我的实验室中有一个在Ubuntu上运行的测量服务器。 而有C程序,它通过TCP连接接收数据,并应尽快发送回复。 接收数据包时的networking延迟非常关键(数十微秒是重要的)。 我最大限度地优化了程序,但是我没有经验来调整Ubuntu。 在Ubuntu中可以configuration什么来减less处理/发送数据包的本地延迟? 更新: networking设备是通常的网卡:英特尔公司80003ES2LAN千兆以太网控制器/英特尔公司82546EB千兆以太网控制器 数据信息:数据块大约 每10毫秒。 数据块大小约为。 1000byte。 更新2: CPU:2个处理器x 4个内核 – Intel(R)Xeon(R)CPU E5345 @ 2.33GHz 内存:12 GB networking交换机:Cisco Catalyst 2960
我意识到许多类似的问题已经被问到,但到目前为止,我还没有find解决我的问题。 我有一个用于testing网站速度的虚拟linux服务器(运行Debian Squeeze),以测量所述网站的加载时间的增加和减less。 我试图限制这个服务器的带宽和延迟,以便能够接近现实世界的加载时间在网站上,但迄今为止失败了。 我特别想要的是以下几点: 设置50 ms的传入和传出延迟。 设置512 kbps的传入带宽限制。 设置4096 kbps的传出带宽限制。 我一直在阅读netem和使用tc命令,但它仍然在我头上。 我已经设法把这个命令放在一起来控制似乎工作的延迟,但我甚至不确定是否只处理传出延迟或两者: tc qdisc add dev eth0 root netem delay 50ms 任何networking大师可以帮助我吗? 编辑: 经过进一步的研究,我已经获得了一半的目标,使用这个命令,所有传出的stream量按照我的意愿行事: tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000 但是,我仍然无法正确地遏制stream量。 我了解到,我应该使用“Ingress Policerfilter”,我一直试图用下面的命令来做这件事,玩弄不同的价值观,但没有运气。 tc qdisc add dev eth0 ingress tc filter add dev eth0 parent […]
如何才能实现NFS导出的低延迟,以便让开发人员在Eclipse / Visual Studio中正常工作,并通过NFS装入工作空间?
我为自己的域名设置了SPFlogging,并没有得到我期望的结果。 我很可能犯了一些错误,但是首先我想问一下,为了传播SPFlogging所做的更改是否需要时间?