gpt4 book ai didi

C# TCP异步连接主动拒绝CPU利用率低

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:53 25 4
gpt4 key购买 nike

我有一个 C# TCP 异步套接字服务器。

在本地测试,我可以在 35 秒内接受 5K 连接。我正在运行四核超线程 PC(8 个线程),每个内核的利用率约为 20-40%。当连接被接受时,服务器向客户端请求一堆数据,然后作为一堆数据库条目执行。

我将服务器应用程序和 SQL 数据库移动到 Amazon AWS 上的小型数据库和中型服务器实例。

Amazon 中型服务器 (EC2) 是 1 个虚拟核心和 2 个 ECU。据我所知,它只有 1 个线程。(来自性能监视器)

如果我尝试在 35 秒内将 1000 个客户端连接到中型服务器。在约 650 个连接后,我开始收到 Connect failed(b) No connection could be made because the target machine actively refused it

查看性能监视器,我注意到 CPU 利用率仅为 ~10-15%。

我猜测核心没有加载是因为它试图处理大量的连接队列、小操作并且没有提供足够的负载来增加 CPU 使用率,因为服务器只有 1 个虚拟核心。

有没有人有这方面的经验,我的理论是否有意义?我被困在硬件限制? (需要增加服务器大小?)

如果没有,有什么想法可以提高利用率并支持更多/更快的连接吗?

有没有人有这方面的经验?

编辑:

我将我在 Amazon EC2 上的实例升级到了高 CPU 超大实例。

实例现在有 8 个内核和 20 个 ECU。

我遇到了同样的问题,我得到无法建立连接,因为目标机器在 ~600 次连接后主动拒绝它。

最佳答案

检查 Amazon 服务器是否配置为允许那么多打开的 TCP 连接。在 Windows 中,您必须通过为最大允许的 TCP 连接添加注册表项来将服务器设置为允许连接。

关于C# TCP异步连接主动拒绝CPU利用率低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12183845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com