如何确定并证明我的应用程序的最佳端口/套接字/线程比率?
目前我正在考虑这样的事情:
每个线程处理单个端口的所有流量,每个客户端都有自己的套接字,套接字在可用端口之间拆分,从而在线程之间进行拆分。这个解决方案是基于我应该为每个 CPU 内核创建大约一个线程的假设,并且套接字打开起来相当便宜。这是一个好的解决方案吗?更重要的是,我如何在数学上证明这个或任何其他解决方案是一个好的解决方案?
我知道我可以为每个解决方案编写一个示例程序并测试结果,但我更喜欢数学证明而不是经验证明,尤其是在不反映服务器硬件和配置的机器上进行测试时。
我在端口和套接字方面没有太多经验,而且我很难找到信息来回答我的问题。到目前为止,我能找到的最好的资源是这些 Stack Overflow 问题:
如果我只是忽略了某些事情,或者误解了端口、套接字和线程的使用/应该使用的方式,我会很满足于一个简单的“rtfm:[link]”答案,为我指明正确的方向。但是,如果您感到宽宏大量并为我提供了一个很好的解释,我将非常感激。