小编Evg*_*sky的帖子

是否可以使用 Windows 每秒处理数百万个数据报?

我正在研究是否可以在 Windows 上实现一个 HPC 应用程序,该应用程序使用十几个或最多 200 个多播组(即使用 MSI-X 和 RSS,我可以)以高速率接收小型 UDP 多播数据报(主要是 100-400 字节)扩展到多个内核),对每个数据包进行一些处理,然后将其发送出去。通过 TCP 发送我设法达到了我需要的程度(6.4Gb/秒)而没有撞墙,但是以高 pps 速率接收数据报却成了一个问题。

最近对 Windows 2012 R2 上带有 2 端口 10Gb 以太网 NIC 的高规格 NUMA 机器进行的测试中,我每秒只能接收数十万个 UDP 数据报(早期丢弃,即没有实际处理数据,使用 2x12 内核从等式中删除我的应用程序的处理开销以查看它的速度有多快,并且测试的 12 个多播组的内核部分似乎分布在一个 NUMA 节点的 8 或 10 个内核上(设置了最大 RSS 队列)到 16) - 尽管使用 .net 应用程序,因此本机应用程序应该能够运行得更快。

但即使是Len Holgate他的高性能 Windows RIO 测试中只能以 500kpps 的速度接收 UDP 数据包,使用 1024 …

networking windows performance udp

12
推荐指数
2
解决办法
6728
查看次数

按日期合并多个日志文件,其中还包括未注明日期的行(例如堆栈跟踪)

如何合并日志文件,即按时间排序但也有多行的文件,其中只有第一行有时间,其余的没有。

日志1

01:02:03.6497,2224,0022 foo
foo1
2foo
foo3
01:04:03.6497,2224,0022 bar
1bar
bar2
3bar
Run Code Online (Sandbox Code Playgroud)

日志2

01:03:03.6497,2224,0022 FOO
FOO1
2FOO
FOO3
Run Code Online (Sandbox Code Playgroud)

预期结果

01:02:03.6497,2224,0022 foo
foo1
2foo
foo3
01:03:03.6497,2224,0022 FOO
FOO1
2FOO
FOO3
01:04:03.6497,2224,0022 bar
1bar
bar2
3bar
Run Code Online (Sandbox Code Playgroud)

如果不是以数字开头的非时间戳行,那么简单sort -nm log1 log2就行了。

在 unix/linux cmd 行上是否有一种简单的方法来完成工作?

编辑由于这些日志文件通常以 GB 为单位,因此合并应该在不重新排序(已经排序的)日志文件的情况下完成,也不要将文件完全加载到内存中。

linux unix merge command-line

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

如何tcpreplay只满足pcap过滤规则的数据包?

我有一个包含许多不同数据包的转储文件,但我想有选择地重放,例如,仅将所有 udp 数据包重放到给定的端口号,而不必先编辑转储文件。

如何?

tcpdump tcpreplay

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

NetDMA(和直接缓存访问?)已从 Windows 8 / Server 2012 中删除。为什么?

关于直接缓存访问 (DCA)的 MSDN 页面(它是 NetDMA 的一部分)指出

Windows 8 及更高版本不支持 NetDMA 接口。

所以我猜 NetDMA 和 DCA 都消失了。由于这两个想法在性能方面似乎都是很好的想法并且相对较新,所以我的问题是:

有谁知道为什么微软删除了它,或者为什么删除该功能是有意义的?

networking performance windows-server-2012 windows-8

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