如果我接收UDP数据的速度快于程序无法处理的速度,那我的失败点是什么?

时间:2018-09-08 17:40:22

标签: python python-2.7 sockets udp

我有一个简单的python脚本,用于从UDP套接字接收数据,将500个UDP数据(每个〜4 KB)组合在一起,然后将该数据发布到Curl端点。我的程序以大约100 UDP /秒的小规模运行。

form

我的问题是

  1. 如果我有较高速率的UDP数据输入〜3k-4k UDP /秒,我会用光RAM吗?磁盘空间? eth?将数据卷曲到端点时会丢失UDP吗?
  2. 我该如何解决这些问题?获得更多的RAM,磁盘,是吗?任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:2)

您不会用完RAM,因为一次最多只能容纳500个数据包。光盘空间完全不相关。如果您的应用程序处理数据的速度慢于数据包到达的速度,则操作系统将对其进行缓冲。但是,在某些时候缓冲区已满,数据包将被丢弃。您可以配置缓冲区大小,但是如果它们连续到达的速率比处理它们的速率高,将无济于事。不丢失UDP数据包的唯一方法是使您的应用程序足够快。