标签: latency

定时器来衡量延迟

在通过TCP测量任何协议中的网络延迟(接收时间ack - 发送时间msg)时,您建议使用什么计时器?为什么?它有什么分辨率?还有什么其他优点/缺点?

可选:它是如何工作的?

可选:你不使用什么计时器,为什么?

我主要关注Windows/C++解决方案,但如果您想对其他系统发表评论,请随意这样做.

(目前我们使用GetTickCount(),但它不是一个非常准确的计时器.)

c++ winapi latency timer

5
推荐指数
1
解决办法
3498
查看次数

通过互联网同步时钟

我使用自己的协议在两台专用计算机之间通过互联网发送实时关键数据.

当然,涉及延迟.

对于调试和优化,我喜欢让两台计算机使用相同的时基.即,我需要知道他们的时钟的时差,以便我可以更好地判断延迟.

当然,相对主义等并不能让我完美地同步它们,但我希望尽可能地接近它们.

单靠NTP看起来不够好 - 根据我的经验,时钟可以关闭半秒钟(澄清:到目前为止,我依赖于Apple提供的默认时钟).

至少我需要1/10s范围内的精度.这两台计算机不会相距太远,ICMP ping时间通常不到100ms.

有什么建议怎么做?

(目前,涉及的机器运行OS X,所以如果你只知道一个解决方案,这将是一个开始)

tcp latency ntp

5
推荐指数
2
解决办法
913
查看次数

ssh 因高延迟连接而挂起(国际连接)

这让我最近的编程真的很令人沮丧。

我现在在阿根廷通过 SSH 连接到美国服务器。可以理解的是,这里的 ping 值有点高(平均大约 200 毫秒),所以当我通过 SSH 连接到服务器时,每次击键之间会有明显的延迟。这很好,很容易使用。

不太容易处理的是,大约每 5 分钟左右,SSH 就会完全挂起,大约需要 3-5 分钟才能返回提示。我知道服务器没有陷入困境,因为我可以在等待一个返回时轻松打开几个新连接(实际上这是我能够工作的唯一方法)。当 SSH 终于回来时,我可以看到它实际上一直在后台运行(大文件下载是测试这一点的好方法),但它只是没有更新我的屏幕。

有谁知道可能导致这种情况的原因?

其他一些事实:服务器是 Ubuntu,我正在连接 Mac OS X。我在 SSH 设置中打开了 keepalive。当我按住一个快速发送大量键的键(例如向左或向右箭头滚动)时,它最有可能挂起。事实上,我可以通过登录并按住“a”之类的任何键来可靠地重现挂起 - 在挂起之前它永远不会超过完整的“a”行。当我第一次进行国际连接时,这才刚刚开始,所以我假设它与那个(延迟?)有关,但不能肯定。

ssh latency freeze

5
推荐指数
1
解决办法
5587
查看次数

使用TCP Ack来测量服务器的延迟?

我正在尝试测量我无法控制的服务器的延迟.这是在共同定位的环境中,因此延迟大约为500 us(.5 ms).

据我所知,思科设备经常优先考虑ICMP流量,使ping时间不可靠.有没有办法让我知道我正在穿越的装备是否就是这种情况?

我可以使用TCP确认来确定远程服务器的最小延迟吗?为此,我会以某种方式强制远程服务器在接收我的数据时立即发送TCP确认.

performance tcp latency low-latency

5
推荐指数
2
解决办法
4058
查看次数

OpenCL/CUDA中每个内存访问类型有多少内存延迟周期?

我查看了编程指南和最佳实践指南,并提到全局内存访问需要400-600个周期.我没有看到其他内存类型,如纹理缓存,常量缓存,共享内存.寄存器有0个内存延迟.

我认为如果所有线程在常量缓存中使用相同的地址,则常量缓存与寄存器相同.最糟糕的情况我不太确定.

只要没有银行冲突,共享内存与寄存器相同?如果有,那么延迟是如何展开的?

纹理缓存怎么样?

memory cuda latency nvidia opencl

5
推荐指数
2
解决办法
5039
查看次数

当Expect100Continue标头被禁用时,HttpWebRequest引入了显着的延迟

在禁用来自我的WCF托管客户端的HttpWebRequests的Expect100Continue标头时,通过将以下内容添加到配置文件的settings部分:

ServicePointManager.Expect100Continue=false 
Run Code Online (Sandbox Code Playgroud)

我注意到客户端在发送HTTP POST请求和包含实际有效负载的以下TCP数据包之间等待大约150毫秒.

任何线索为什么会发生这种情况?这是意料之外的,因为在禁用此标头时,我希望在初始请求之后立即发送有效负载而没有延迟.

c# wcf latency header httpwebrequest

5
推荐指数
1
解决办法
663
查看次数

蓝牙Ping延迟

我目前正在开展一个涉及Lego Mindstorms套件的项目.砖块是NXT,我对蓝牙ping率感到好奇.

我对它进行了100次ping测试并获得了一些有趣的结果.延迟似乎属于乐队.我增加到10,000 ping,它更清楚地突出了这一趋势.有谁知道可能导致这种情况发生的原因?

如果相关,发送器和接收器之间的距离约为3米.

10000 Ping散点图

latency bluetooth ping lego-mindstorms nxt

5
推荐指数
1
解决办法
3619
查看次数

增加 CUDA 中每个线程寄存器的使用

通常建议降低每个线程的寄存器压力以增加 warp 占用,从而提供更大的机会通过 warp 级多线程 (TLP) 隐藏延迟。为了减少寄存器压力,可以使用更多的每个线程本地内存或每个线程块共享内存。CUDA nvcc 编译器也可以强制每个线程使用更少的寄存器。这种方法对于具有良好算术延迟的工作负载很有用,即 ALU 操作与内存 r/w 访问请求的比率很高。然而,对于计算量非常少且内存访问更频繁的延迟关键应用程序,这种方法实际上往往会降低性能。

在此类延迟关键应用程序的情况下,将尽可能多的数据放入片上寄存器或共享内存中更有意义,然后在用全局内存中的下一个数据块替换它之前尽可能多地使用它。当然,通过增加寄存器压力,warp 占用率降低,但现在我们使用快速片上寄存器隐藏片外存储器延迟。增加每个线程寄存器使用的方法是通过展开循环或计算每个线程更多的输出数据来增加 ILP(这也基本上通过对更多输入执行相同的工作来增加 ILP)。这种方法基本上是由 Volkov(Better Performance at Lower Occupancy)提出的。

现在 nvcc 编译器驱动程序有一个名为 maxrregcount 的命令行选项,它允许更改每个线程寄存器的使用。使用此选项一次可以强制编译器减少每个线程寄存器的使用,但不能强制它增加它。我有一个案例,我想增加每个线程寄存器的使用,但我无法在内核中展开循环,因为循环边界是数据相关且动态的。到目前为止,我已经尝试了一些技巧,但我已经没有关于如何增加每个线程寄存器使用的想法。任何人都可以建议增加单个 CUDA 线程的寄存器使用率的方法吗?

memory cuda latency cpu-registers

5
推荐指数
1
解决办法
3718
查看次数

将多个REST API请求合并到一个请求中?

我正在为我的应用程序开发REST API.

有了这个API,我可以做的东西一样更新使用PUT一个公司或个人的详细信息companies/1和PUT persons/2,families/3,等等.

我想使用此API与其他应用程序进行常规同步.这将涉及数以十万计的REST API请求,其中大多数是此类更新.每个请求只需要很少的时间,但每个请求的延迟会占用相当多的时间.

有没有什么方法可以创建REST API,它可以将多个请求合并为一次.我可以很容易地想到使用一系列路径和formdata来做一个PUT,但似乎有人应该已经设计了一个更好的解决方案.

是否有最佳实践将多个不同的请求组合到一个REST API中以避免延迟,或者是否有更好的方法来处理这样的情况?

api rest latency

5
推荐指数
2
解决办法
4065
查看次数

同一区域内区域之间的AWS延迟

我在同一地区有一个EC2RDSUS East(N. Virginia)但是两种资源都在不同的区域中;中的RDS us-east-1a和中的EC2 us-east-1b

现在的问题是,如果我将两个资源放在同一个位置,zone那么它将加快数据到DB或从DB传输的速度吗?我每天从应用程序收到20k-30k的条目到此实例。

编辑

在这里读到:

每个可用区都是隔离的,但是区域中的可用区通过低延迟链接连接。

现在我想知道它们low-latency links是否很小,还是应该考虑在同一区域中转移资源以加快数据传输速度?

在此处输入图片说明

结论

如答案和评论中所述:

  • 由于我只有EC2and的一个实例,因此RDSa中一项服务的失败zone将影响整个系统。因此,将它们放在单独的区域中没有任何优势。
  • 即使zones连接在一起,low-latency links但仍然存在一些延迟,在我的情况下可以忽略不计
  • 在不同区域之间以及在不同区域中也有每GB 0.01 USD的次要数据传输费用。EC2RDS

latency amazon-web-services amazon-vpc aws-regions

5
推荐指数
2
解决办法
3948
查看次数