我正在编写一个简单的速度测试程序,该程序应该测量两个设备之间的快速吞吐量。有一个 python 脚本可以启动客户端或服务器端。客户端产生流量,服务器测量它接收到的流量。就如此容易。但不知何故,即使我在同一台机器上运行服务器和客户端,它的上限也为 ca。115 MB/秒。在同一台机器上,当我生成 TCP 或 UDP 流量时,其流量约为 30 Gb/s,因此带宽不是问题。我使用的库是 aioquic,不幸的是它几乎没有文档记录。问题是如何提高吞吐量?我主要担心 #HERE 注释周围的一些代码。看起来 Transmission() 是一个阻塞函数,但是当我没有暂停/继续机制或某种粗略的 sleep() 时,程序就会挂起,甚至产生低流量。
from connector import * #my base class
import asyncio as asc
import aioquic.asyncio
from aioquic.quic.configuration import QuicConfiguration
import ssl
class QUIC_client(client):
def __init__(self, host, port, use_json):
super().__init__(host, port, use_json)
self.traffic_type = 'quic'
self.payload = b'p'*(self.quic_payload_size-1)+b'\n'
self.config = QuicConfiguration(
is_client = True,
verify_mode = ssl.CERT_NONE
)
async def _maintask(self, time):
self._infomessage(f'connecting to server {self.host}:{self.port}')
async with aioquic.asyncio.connect(host=self.host, port=self.port, configuration=self.config) as client:
await client.wait_connected() …Run Code Online (Sandbox Code Playgroud)