为了测试,除了纯粹的套接字IO工作之外,为了确保最小的CPU和内存消耗,应用程序什么也不做,也不做任何磁盘/文件IO。应用程序进程配置为使用机器上的所有可用核心(默认关联设置不变)。测试运行:测试在两台不同的机器上运行: a) 4个物理核心/8个超线程的Windows 7,以及b) 12个物理核心/ 24个超线程的Windows Server 2012。
我有一个问题,为什么我的机器的吞吐量与大小为1500字节的小数据包(即64字节)相比非常糟糕?我有一个千兆位网卡,可以以80 to /s的速度传输1500字节大小的数据包,但在64字节大小的数据包中,我很难分辨出大约25 to/s。但是为什么小数据包的吞吐量会有很大的差异呢?
编辑:在linux中使用内存映射将数据包从用户空间传输到内核空间,然后直接写入网络驱动程序进行传输。