标签: latency

如何在Socket.io中模拟延迟?

目前,我正在localhost连接到我的路由器的设备上测试我的Node.js,Socket.io服务器.

出于测试目的,我想模拟发送消息的延迟,因此我知道它对全世界的用户来说会是什么样的.

有没有有效的方法呢?

simulation latency websocket node.js socket.io

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

如何确定我的GPU是否执行16/32/64位算术运算?

我正在尝试在Nvidia卡上找到本机算术运算的吞吐量。在页面上,Nvidia已记录了各种算术运算的吞吐量值。问题是如何确定我的卡是否进行16位或32位或64位操作,因为每个值都不相同?此外,我还想为我的卡计算这些指令的延迟值。有什么办法吗?就我的研究而言,它们没有像吞吐量那样得到记录。为此有一些基准套件吗?

谢谢!

c++ cuda latency nvidia

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

Elixir / Phoenix地理负载均衡器

我正在尝试使用elixir / phoenix创建一个地理负载平衡器,以便在客户端最初连接时,它将选择最近的(最少ping /等待时间)服务器,并将该服务器用于将来的连接。

假设客户到达的平衡器get "/balance", PageController, :index,并且在我的数据库中,我有2台服务器:server1.domain.comserver2.domain.com。是否可以通过某种方式将客户端的连接(或ping)传递给带有elixir后端的两个服务器?

我可能可以在前端进行逻辑处理,使用js进行ping操作,然后将值返回到后端进行存储。但是,我宁愿一切都在后端。

有关负载平衡的任何提示或建议都值得赞赏,因为我不确定100%是否是这样做的正确方法。谢谢!

latency load-balancing elixir phoenix-framework

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

转到HTTP服务器性能问题

我正在编写一个事件收集器http服务器,它将负载很重.因此,在http处理程序中,我只是对事件进行反序列化,然后在goroutine中的http请求 - 响应周期之外运行实际处理.

有了这个,我看到如果我以每秒400个请求命中服务器,那么99百分位的延迟低于20毫秒.但是一旦我将请求率提高到每秒500,延迟就会超过800毫秒.

任何人都可以帮我解释一下原因是什么,以便我可以探索更多.

package controller

import (
    "net/http"
    "encoding/json"
    "event-server/service"
    "time"
)

func CollectEvent() http.Handler {
    handleFunc := func(w http.ResponseWriter, r *http.Request) {
        startTime := time.Now()
        stats.Incr("TotalHttpRequests", nil, 1)
        decoder := json.NewDecoder(r.Body)
        var event service.Event
        err := decoder.Decode(&event)
        if err != nil {
            http.Error(w, "Invalid json: " + err.Error(), http.StatusBadRequest)
            return
        }
        go service.Collect(&event)
        w.Write([]byte("Accepted"))
        stats.Timing("HttpResponseDuration", time.Since(startTime), nil, 1)
    }

    return http.HandlerFunc(handleFunc)
}
Run Code Online (Sandbox Code Playgroud)

我以每秒1000个请求运行测试并对其进行了分析.以下是结果.

(pprof) top20
Showing nodes accounting for 3.97s, 90.85% of 4.37s total
Dropped 89 nodes …
Run Code Online (Sandbox Code Playgroud)

performance latency http go server

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

Aurora 与 DynamoDB 延迟不如预期

我想得到一些数字来证明我的阅读,与关系数据库(MySQL、PostgreSQL、Aurora)相比,DynamoDB 键值存储具有更好的读取性能。所以我决定比较 DynamoDB 和 AWS-Aurora 的读取延迟(这是 AWS 网站的 a/c - “比标准 MySQL 数据库快五倍,比标准 PostgreSQL 数据库快三倍”)

步骤 1:在 Aurora 中使用以下架构创建一个表,并向该表添加 102 万条记录。

Table gift_log (
  gift_uuid               BINARY(16) NOT NULL,
  user_uuid               BINARY(16) NOT NULL,
  parent_uuid             BINARY(16),
  operation_time          TIMESTAMP,
  operation               VARCHAR(20) NOT NULL,
  gift_type               VARCHAR(20) NOT NULL,
  parent_type             VARCHAR(20),
  relation_type           VARCHAR(20),
  PRIMARY KEY (gift_uuid)
);
Run Code Online (Sandbox Code Playgroud)

使用使用 MySQL 驱动程序的 Golang 客户端数据库/sql 包来查询表。

步骤2;创建了具有以下属性的 DynamoDB 表。向表中添加了 100 万个项目。没有使用任何排序键。所有查询都使用分区键。


Table: GiftLog {
    gift_uuid               Binary (Partition Key)
    user_uuid               Binary
    operation_time          Number,
    operation               String,
    gift_type               String, …
Run Code Online (Sandbox Code Playgroud)

latency go amazon-dynamodb amazon-aurora aws-sdk-go

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

AWS Direct Connect 的工作原理是什么?

AWS Direct Connect 是如何工作的?

来自 AWS 文档:

AWS Direct Connect 在您的本地网络和 AWS 之间建立专用网络连接...绕过您的互联网服务提供商。

请解释一下它在实际意义上的实际含义是什么?为什么会更好呢?

networking latency amazon-web-services aws-direct-connect

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

C#套接字异常延迟

我正在使用C#和XNA进行一个小型在线多人乒乓球比赛.

我使用套接字在我的个人LAN上的两台计算机之间传输数据.它工作正常.

问题在于速度:转移很慢.

当我ping第二台计算机时,它显示2毫秒的延迟.我在我的代码中设置了一个小计时器,它显示了大约200毫秒的延迟.即使服务器和客户端在同一台计算机上(使用127.0.0.1),延迟仍然大约为15毫秒.我认为这很慢.

以下是我的代码的一些片段:

server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(new IPEndPoint(IPAddress.Any, port));
server.Listen(1);
// Begin Accept
server.BeginAccept(new AsyncCallback(ClientAccepted), null);
Run Code Online (Sandbox Code Playgroud)

在ClientAccepted中,我设置了一个NetworkStream,一个StreamReader和一个StreamWriter.这是我想要更新玩家位置时发送消息的方式:

string message = "P" + "\n" + player.Position + "\n";
byte[] data = Encoding.ASCII.GetBytes(message);
ns.BeginWrite(data, 0, data.Length, new AsyncCallback(EndUpdate), null);
Run Code Online (Sandbox Code Playgroud)

EndUpdate唯一做的就是调用EndWrite.这是我收到数据的方式:

message = sr.ReadLine();
Run Code Online (Sandbox Code Playgroud)

它不会阻止我的游戏,因为它是在第二个线程上.

这些是我尝试的东西: - 使用IP而不是TCP - 使用二进制消息而不是文本 - 使用IPv6而不是IPv4没有任何帮助.

关于如何改善延迟的任何想法?

谢谢

c# sockets latency

0
推荐指数
1
解决办法
5565
查看次数

单个主机的阻塞与非阻塞UDP套接字

我正在编写一个从单个发件人接收UDP数据报的客户端.所有IO都将在一个线程中完成.通常,将没有数据或30 MBit/s流.我主要担心的是尽可能降低延迟.

计划是在短时间超时的循环中阻塞,等待数据,以便IO线程可以响应关闭请求等.

我倾向于使用阻塞套接字,在其上设置超时,并进行recvfrom()呼叫.但是,这似乎比非阻塞套接字上的select()/ poll()recvfrom()组合要少得多.

鉴于我只使用单个套接字,似乎非阻塞方法不必要地复杂化.我错过了别的什么吗?在这种特殊情况下,是否有理由选择非阻塞套接字?

c sockets udp latency nonblocking

0
推荐指数
1
解决办法
4033
查看次数

使用Python的音频低延迟

使用pygame音频播放时,我注意到高延迟(> 100 ms):

import pygame

pygame.init()
pygame.mixer.init()
sounda = pygame.mixer.Sound("test.wav")

def callback()
    sounda.play()

# callback is called by another function, but I could measure a high latency (> 100ms)
Run Code Online (Sandbox Code Playgroud)

pygame延迟的原因是什么?更一般地说,使用Python可以实现低延迟音频播放吗?

应用示例:当MIDI信息从MIDI键盘到达时播放一些.wav文件.(我想编写一个非常非常基本的音乐采样器).当然,延迟将在很大程度上取决于音频接口(ASIO或ASIO等),但我现在想分析Python是否可以实现低附加延迟,如果是这样,那么哪个模块更适合此目的.

python audio latency asio low-latency

0
推荐指数
1
解决办法
2137
查看次数

用于从traceroute中提取最高延迟的脚本

我正在寻找一个脚本,可以从traceroute中提取具有最高延迟跳跃的线路.理想情况下,它会逐行查看3个值的最大值或平均值.我怎么能这样呢?

这是我到目前为止所尝试的:

     traceroute www.google.com | awk '{printf "%s\t%s\n", $2, $3+$4+$5; }' | sort -rgk2 | head -n1
     traceroute -w10 www.google.com | awk '{printf "%s\t%s\n", $2, ($3+$4+$5)/3; }' | sort -rgk2 | head -n1
Run Code Online (Sandbox Code Playgroud)

这似乎是朝着正确方向迈出的一步,除了从traceroute返回的一些值是*,因此总和和平均值都提供了错误的值.

更新 更进了一步:

     traceroute www.cnn.com | awk '{count = 0;sum = 0;for (i=3; i<6; i++){ if ($i != "*") {sum += $i;count++;}}; printf "%s\t%s\t%s\t%s\n", $2, count, sum, sum/count }' | sort -rgk2
Run Code Online (Sandbox Code Playgroud)

如果我没有列4,5,现在需要拦截.有时traceroute只提供这样的3颗星:

     17   207.88.13.153  235.649ms  234.864ms  239.316ms 
     18   *  *  *
Run Code Online (Sandbox Code Playgroud)

bash awk latency

0
推荐指数
1
解决办法
632
查看次数