- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个使用两种类型套接字的应用程序:监听 UDP 套接字和事件 SCTP 套接字。
在某些时候,我们在同一台机器上运行具有高 IO 事件的脚本(例如“dd、tar、...”),大多数时候,当这些 IO 密集型应用程序运行时,我们似乎会遇到以下问题:
为什么这些 I/O 操作会以这种方式影响基于网络的应用程序?
有没有什么内核配置可以避免这些问题?
我原本预计 UDP 上会丢失一些数据包,并会在 SCTP 套接字上重试一些数据包,但不会出现这种情况。
应用程序运行在具有 64 位 4 四核 CPU 和 RHEL 操作系统的服务器上
# uname -a
Linux server1 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:15 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
最佳答案
当您说 UDP 套接字关闭时,您到底是什么意思?您尝试发送
但失败了?
对于 SCTP,您可以在这些 I/O 操作运行时收集wireshark 或 pcap 跟踪(最好在对等方上运行wireshark)吗?我的猜测是(无需查看代码的有根据的猜测),当这些 I/O 操作出现时,您的进程会缺乏 CPU 时间。另一端发送 SCTP 心跳消息
,但没有得到回复。或者,如果数据正在流动,则对等端不会收到任何 SACKS
,因为它们尚未被您端的 SCTP 堆栈处理。
因此,对等方会在内部中止关联并停止向您发送数据(因为它看到所有路径都已关闭,因此不会发送 ABORT。在这种情况下,您的 SCTP 堆栈仍会认为关联处于事件状态)。尝试确认对端的Heartbeat timeout、RTO timeout、SACK timeout、maximum Path retransmission & max Association retransmission
的值是多少。我没有使用过内核 SCTP,但 sysctl 应该能够为您提供这些值。
无论哪种方式,当您观察到此问题时收集 pcap 跟踪都可以让我们更好地了解问题所在。我希望它有帮助。
关于c - IO 繁重操作与网络应用程序监听 UDP 和 SCTP 数据之间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108751/
我是一名优秀的程序员,十分优秀!