问题标签 [c10k]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
429 浏览

c# - Socket.ReceiveAsync 可以前往 C10K 吗?

使用Socket.ReceiveAsync甚至Socket.SendAsync的 TCP 套接字会遇到C10K问题吗?

0 投票
2 回答
748 浏览

node.js - 缓慢的磁盘 I/O 是否会降低 Node.js 应用程序其余部分的性能?

我在一个小团队中开发一个单页应用程序,该应用程序严重依赖 WebSockets 上的低延迟查询。后端在 Node.js + Redis 上运行。它需要支持成百上千的同时连接,并且请求需要在 50 - 100 毫秒(在客户端良好的网络条件下)内得到服务。我们对服务器这部分的初始实现相当满意,它按预期执行。

我们还需要通过 HTTP 提供大量静态文件。这些请求对时间不敏感。由于存储需求很大,出于成本原因,我们希望选择 HDD 阵列而不是 SSD。

是否存在磁盘 I/O 缓慢降低 Node.js 应用程序其余部分的性能(WebSocket 部分仅使用内存数据库)的风险,还是会严格影响服务器的 HTTP / 静态文件服务部分? 据我了解,具有异步特性的 Node.js 非常适合这种情况,因为它允许 WebSockets 模块在 HTTP 模块等待磁盘读/写时正常处理查询?

也许大量“等待服务”的 HTTP 请求会以某种方式阻塞服务器(毕竟,它们需要存储在某个地方,如果读/写可用,则可能无法自由轮询),我们需要考虑使用单独的 Node.js 进程来提供静态文件,甚至完全使用单独的专用服务器?

我可以想到以下几点:

  • “等待服务”的 HTTP 请求将用完有限数量的并发 TCP 连接可用
  • “等待服务”的 HTTP 请求也会消耗一些 RAM
  • 系统文件可能应该驻留在不会忙于为静态文件提供服务的磁盘上

我们还不能在现实世界中测试这个场景,所以我会非常感谢任何有类似经历的人的来信。这可能需要我们重新考虑架构,这是我们最好早日发现的东西。

0 投票
1 回答
1607 浏览

spring-boot - 如何在 Spring Boot 中实现高并发

我需要创建一个每秒应支持 40 个并发用户的产品(我是处理并发的新手)

为此,我尝试开发了一个 hello world spring-boot 项目。IE,

弹簧靴(1.5.9)

码头 9.4.15

具有获取端点的休息控制器

下面的代码:

应用程序在 Gen10 DL360 机器上运行

然后我尝试使用 apachebench 进行基准测试

75 个并发用户:

100 个并发用户:

500 个并发用户:

1000 个并发用户:

从上面的测试运行来看,我在 75 个用户的情况下达到了每秒约 27K,但它看起来增加了用户也增加了延迟。此外,我们可以清楚地注意到连接时间正在增加。

我要求我的应用程序支持 40k 并发用户(假设所有人都使用自己单独的浏览器)并且请求应该在 250 毫秒内完成。

请帮助我

0 投票
1 回答
185 浏览

websocket - Websocket 客户端在连接数超过 7k 时收到 RST 数据包

我使用 ws(websocket) 客户端(在本地主机上运行github.com/gorilla/websocket)对由 java Netty实现的 ws 服务器进行压力测试(在具有 2vcpu + 8Gb 内存的远程 centos 7.8 主机上运行)。只有客户端启动 tcp keepalive 机制。

当连接数超过 7k 时,客户端开始接收 RST 数据包(包括新旧连接)。

Wireshark 抓包详情

我已经验证了服务器端syn_recv queue,并且accept queue在测试期间处于空闲状态,没有同步数据包丢失,没有监听队列溢出。所以我需要帮助......

0 投票
0 回答
184 浏览

amazon-web-services - 如何实现与 AWS EC2 的 10K 并发连接?

我的本地 Ubuntu、AWS EC2 (8 Core) Ubuntu 和 Nginx (8 Worker) 在两台机器上运行

当我尝试与本地 Nginx 进行 10K 并发连接时,它可以工作

但是当我在 EC2 上尝试使用 Nginx 时,我收到以下错误

同时 curl 命令和与 EC2 上的 Nginx 的 4K 连接工作正常

如何使用 EC2 获得 10K 并发连接?

0 投票
0 回答
87 浏览

python-3.x - 无法在 Ubuntu 中创建百万套接字连接

我有以下 bash 函数来添加静态 IP

然后我有以下 Python3-application 来创建 1M 套接字连接

但我总是得到Too many open files in system以下输出的异常

ulimit 值如下所示

/etc/sysctl.conf数值如下所示

要实现 100 万个套接字连接,我还需要做哪些其他更改?