1
opengps 2022-08-19 00:16:29 +08:00 via Android
并发?
|
4
chenbojian 2022-08-19 06:55:42 +08:00 via Android
IIS 参数变了?
|
5
wxyrrcj 2022-08-19 07:50:26 +08:00 via Android
开玩笑呢 10w 并发
|
6
idragonet 2022-08-19 08:43:30 +08:00
很好奇是如何得到结论:Windows 2008 R2 下稳稳十万并发,有测试报告吗?
|
7
PerFectTime 2022-08-19 08:58:27 +08:00
单机 10w ??不是吧
|
8
n0th1ng 2022-08-19 09:04:27 +08:00
|
9
tramm 2022-08-19 09:26:08 +08:00
你这性能超过 Nginx 了
|
11
LeegoYih 2022-08-19 09:52:24 +08:00
恐怖如斯
|
12
yyyyyyh 2022-08-19 09:58:00 +08:00 1
无法对单机 10W 并发的大佬提出改善意见😒
|
13
ikesnowy 2022-08-19 10:10:27 +08:00
噗,去博客园的博问提问然后 at dudu 吧,他应该会回你的 hhhh
|
14
xiaopingbeichen 2022-08-19 10:16:13 +08:00
我就是来凑个热闹,看看 10W 并发是长啥样的
|
15
monkeyWie 2022-08-19 10:35:34 +08:00
围观下单机 10W 并发
|
16
AlexSLQ 2022-08-19 10:39:52 +08:00
udp 吗
|
17
ruoduan 2022-08-19 10:41:29 +08:00
Nginx 理论 最大并发 5W ,单机十万并发 ?
|
18
nothingistrue 2022-08-19 11:22:06 +08:00 1
@edis0n0 #2 单机十万并发基本不可能,程序可以支持这么高,但硬件和操作系统底层是不支持的,端口号总共才 65535 个( Socket 连接时服务器只占用一个监听端口,但是对于每个客户端还得占用一个反向连接端口,原生 TCP 连接我不是太清楚)。
|
19
Rocketer 2022-08-19 11:26:04 +08:00 via iPhone
我们当年 30 个并发就很不错了,10 万并发不敢想象。
我猜楼主说的是每秒能处理的请求数吧?纯静态页面十万还是有可能的。 |
20
nothingistrue 2022-08-19 11:29:41 +08:00
@edis0n0 更正,原生 TCP 连接不受服务器端口号限制。TCP 使用由本地地址和远端地址组成的 4 元组:目的 IP 地址、目的端口号、源 IP 地址和源端口号来处理传入的多个连接请求。故,服务器只需要占用一个端口就可以负责监听和所有的连接。
|
21
charlie21 2022-08-19 11:32:05 +08:00 via iPhone
环境和版本
|
22
nothingistrue 2022-08-19 11:35:08 +08:00
在 unix/linux 下限制连接数的主要因素是内存和允许的文件描述符个数(每个 tcp 连接都要占用一定内存,每个 socket 就是一个文件描述符)。这个限制取决于服务器的配置,普通服务器 5 万就是极限了,再高得用贵死人的高性能服务器。而 Windows 环境,还是旧的 2008 系统,超过 5 万应该不是很容易的事。
|
23
dnsaq 2022-08-19 13:59:20 +08:00
阿里巴巴也都才刚刚实现了 20 万并发吧,10W 并发啥概念呀
|
25
Kinnice 2022-08-19 14:24:05 +08:00
上 ab bench 测试截图
|
26
q1angch0u 2022-08-19 14:28:35 +08:00
莫非楼主就是阿里 CTO ? [狗头]
|
27
ng29 2022-08-19 14:29:07 +08:00
|
28
lookStupiToForce 2022-08-19 14:38:58 +08:00
我也来围观一下单机十万并发是什么神仙做的系统
|
29
hutoer 2022-08-19 14:40:40 +08:00 4
v2ex 现在的风气不行,动不动的就冷嘲热讽。我估计回帖的人,很多都不知道 c100k 吧,麻烦去搜索一下。
|
30
zhangfeiwudi 2022-08-19 14:42:23 +08:00
能发下网址,围观下吗
|
31
lambdaq 2022-08-19 14:44:53 +08:00 13
10w 并发怎么这么多人围观?
实际上,Windows 的 IIS 性能非常之强很多人压根不了解,它丫的是用内核写了个驱动 http.sys 来实现的。linux 下 nginx 这种用户态的根本不能打,唯一能扳扳手腕估计只有上古的 khttpd 。。。。 windows 不能打的刻板印象怎么来的?默认的 Win server ,授权费没交够的,巨硬直接给你限制并发数为 5 。。。。。 |
32
yazoox 2022-08-19 14:50:29 +08:00
@nothingistrue 兄弟,你连续回复了两次,反而让我看迷糊了。能再多解释一下么?这个连接数和端口数的问题?
谢谢! |
33
thtznet 2022-08-19 14:53:28 +08:00
|
34
wtfedc 2022-08-19 14:59:35 +08:00 1
我以为单机 c10k, c100k 都是早就解决了,c10k 在 2000 年左右就解决了,看到这么多人对 c100k 表示震惊,搞的我有点懵,又找了篇别人测试的文章,可以看看 https://zhuanlan.zhihu.com/p/21378825
|
35
wtfedc 2022-08-19 15:11:27 +08:00
随便找了个通用型的高配 ecs
实例规格 vCPU 内存( GiB ) 网络带宽基础 /突发( Gbit/s ) 网络收发包 PPS 连接数 多队列 弹性网卡 单网卡私有 IPv4 地址数 单网卡 IPv6 地址数 最大挂载数据盘数量 云盘 IOPS 基础 /突发 云盘带宽基础 /突发( Gbit/s ) ecs.g7se.32xlarge 128 512 32/无 1200 万 240 万 32 15 30 30 64 100 万 /无 64/无 |
36
elechi 2022-08-19 15:12:02 +08:00
估计 IIS 的问题,要不 framework 版本问题?
|
37
Itoktsnhc 2022-08-19 15:14:43 +08:00
可以先用类似 iperf3 的工具测下带宽,再看下网卡是不是有什么设置或者驱动更新
|
38
salmon5 2022-08-19 15:16:47 +08:00
c1000k 也老早不稀奇了,只是有人不经意间说出来,就像他真的有 10 万并发的业务一样
|
39
jiulang 2022-08-19 15:17:52 +08:00 1
姑且算十万是 RPS(Requests per second),单机能达到这个么高的,要么是无 IO 请求的快速同步操作,要么是使用了异步 IO 。当然,如果 IO 操作耗时很短,同步 IO 可能也得到这么高的 RPS ,但是只要 IO 操作的时长变长,同步 IO 就立刻表现为 RPS 倍数级降低。
所以我觉得可能是:老代码使用了同步 IO 去读取了文件、Db 或网络了,之前的环境里面,这些 IO 操作耗时不大,切换到新环境之后,这些 IO 操作的(因某些原因)耗时变大了,代码不变,还是以同步 IO 的方式调用,造成在相同的工作线程下,等待 IO 结果的时长变以,所以 RPS 跌落严重。 |
40
jiulang 2022-08-19 15:27:08 +08:00 1
如果你能告诉我:老代码没有使用 async await 异步,那么我们就以大概确定:你的 db 可能变慢了,而且慢的原因,可能是索引问题,或者磁盘问题。
|
41
lambdaq 2022-08-19 15:36:07 +08:00
@jiulang 1995 年发布的 WinNT 就内核支持 IOCP 了。比 async await 更先进性能更高。。。23333
|
42
jiulang 2022-08-19 15:40:45 +08:00
@lambdaq 你可以理解 async await 为应用层的 iocp ,应用层如果还是同步 IO ,木桶的短板就短在里了,这时底层是不是 IOCP 可能都不是短板了。
|
43
jiulang 2022-08-19 15:52:21 +08:00
http.sys 你可以理解为饭店材料的供应商,他们工作高效,保证供应链供给充足。
asp.net 的工作线程,你可以理解为厨师们,他们负责炒菜给客人; 如果这些线程是同步 IO 工作,那么就像一个厨师为一桌客人做好菜之后,还要等客人边吃边中途继续加菜,直到客人吃饱喝足之后走人了,才能开始为下一桌客人继续做菜一样;但如果这些线程是异步 IO 工作,那就像厨师为一桌客人做好菜之后,就结束工作了,空闲的他如果有人通知他继续做菜,他就继续干活。相同的数量的厨师,异步 IO 可以让工作线程从无畏地等待中解放出来,干更多有意义的工作。 |
44
shuimugan 2022-08-19 16:10:13 +08:00 19
“你电脑内存多大”
“1T” “哈哈哈真是小白,哪来 1T 的内存,那是硬盘” “没错啊(打开机箱亮出主板上 8 条 128G ECC 内存)” “你项目多大并发” “10 万” “哈哈哈你知道 10 万并发是什么概念吗” “没错啊(打开日志 /监控上的某一时间范围的数据统计,那里显示着峰值时每秒有 10 万次左右的请求)” 异曲同工之妙( dog |
47
gam2046 2022-08-19 16:41:52 +08:00
我自己的应用,每分钟大概 8 万个请求,平均下来每秒 1000 多个请求,我已经快嗝屁了。能力范围内的各种优化用尽,只能加配置了。请求里处理的 IO 全都移到内存里,才勉强在渣渣的阿里云 2 核机器上跑起来。现在长期 CPU 负载 70%以上
|
48
zjsxwc 2022-08-19 16:54:35 +08:00
Handling many concurrent connections is a different problem to handling many requests per second.
前者是指 C10k/C100k ,后者是指 10 万 /100 万并发,区别在于后者需要 1 秒内处理完且返回数据,所以后者还涉及的一个问题是网络带宽,比如一个一秒内 10 万并发请求,每个请求传输包含 4kByte 数据,那么 10 万并发请求一秒内需要传输 40 万 kByte ,也就是 400*8 = 3200 M Byte 即 3.2 Gbps 带宽。 |
49
mmdsun 2022-08-19 17:02:34 +08:00
@bsg1992 @tramm @ruoduan @monkeyWie @xiaopingbeichen
超越 nginx 这是有可能的。单机 c10k, c100k 都是早就解决的问题。 还有就是系统并发模型不同。Reactor 和 Proactor 模型。 Windows 的 Proactor 模型用的好,理论上高并发要比 Linux Reactor 的应用要性能高。Linux 的 io_uring 内核 5.1 引入,主流应用还是 select poll epoll 。但 Win 的 IOCP 很早就有了。 |
50
hutoer 2022-08-19 17:04:30 +08:00
@krixaar 你说的对。了解了 C100K ,10 万 QPS/RPS 就没那么惊讶了。OP 没说业务逻辑,服务器具体配置,所以不好评价。
|
51
nothingistrue 2022-08-19 17:11:51 +08:00
@yazoox #32 @ng29 #27
以前有一个 Socket 编程,具体是那个我也忘了,可能从来都是谬传,它的编程模型是服务器用一个端口监听,然后每来一个客户端就用另一个端口跟客户端反向连接用来维持跟客户端的连接。这种模型下,服务器端的并发连接数,自然要受端口数的限制。 但是上面这个是 Socket 编程模型的规定,不是 TCP 通信协议的规定。TCP 协议使用 4 元组来区分不同的连接的,这 4 元组是目的 IP 地址、目的端口号、源 IP 地址和源端口号,换更容易的说法,是 服务器 IP 、服务器端口、客户端 IP 、客户端端口。这意味着,你可以在服务器 IP 、服务器端口不变的情况下,通过客户端 IP + 客户端端口来区分不同的连接。故,理论上,你可以只是用一个端口,支撑无限大的并发连接。实际上当然不能支撑无限大的并发连接量,这个还要看服务器的硬件配置和操作系统对 TCP 连接的支撑模型。 另外,以上还没涉及负载均衡,如果涉及了,还要考虑负载均衡程序的编程模型。 |
52
abuabu 2022-08-19 17:24:02 +08:00 8
且不论十万并发到底行不行,问题的核心难道不是 win2008 r2 到 win 2019 响应缓慢吗?
大家到底是阅读理解不过关还是对线多了,回避内容核心顾左右而言已经成为本能? |
53
hutoer 2022-08-19 17:28:50 +08:00
举个例子(假的)
某公司有 20 个 App ,每个 App 产品页面要显示 50 条留言,留言中要根据 IP 显示地区信息,每个产品页的并发请求是 100 ,如果开发 IP 查询服务,需要并发数: 20 * 50 * 100 = 10 万并发 大家看,10 万并发也不是很离谱的需求 |
54
dfkjgklfdjg 2022-08-19 17:31:40 +08:00
@abuabu #52 ,因为冷嘲热讽是传统艺能了。
|
55
cominghome 2022-08-19 17:44:26 +08:00 3
@abuabu 你这也太圣人了。就好比你看到个帖子标题“换了双跑鞋,百米跑不进 10s 了,怎么回事?” 你第一反应真的是帮他研究新旧跑鞋的区别?
|
56
lambdaq 2022-08-19 17:49:57 +08:00
@cominghome 第一反应是看看这发帖 id 是不是博尔特
|
57
kinboy 2022-08-19 18:00:10 +08:00
哈哈哈围观求助帖变成 10w 并发讨论帖
|
58
LeegoYih 2022-08-19 18:15:46 +08:00 2
怎么聊到 C10K C100K C1000K 了?
并发数和连接数根本就是 2 个概念 |
59
krixaar 2022-08-19 18:22:33 +08:00
@abuabu #52 OP 可是稳稳单机 10W 并发而且楼下回复说没有问题,有这个级别的硬件和带宽,在 v2 发帖为啥不直接问他们的技术支持团队呢……
而且问这种模糊的问题啥具体信息也没给( IIS 配置 /硬件配置是否有变化,并发场景是否一致,系统里其它软件版本,部分脱敏 log 之类),让人怎么去认真回答🤣 |
67
sujin190 2022-08-19 20:09:10 +08:00
别的不说,就算 10 万 QPS 假设你平均每个请求仅仅 1KB ,千兆网卡差不多满速了啊,更别说 10 万并发了,支持 10 万长连接和 10 万 QRS 或者并发可是很不一样的,所以真的知道 10 万并发是一个能支持多少人访问的系统么?
|
68
Leviathann 2022-08-19 20:56:15 +08:00
@u823tg 同时不就是 concurrent 完全对应的两个词
|
69
coolmenu 2022-08-19 23:12:59 +08:00
大家先别吵架,楼主哪去了?扔下一句话就跑,钓鱼吧。
|
70
wxf666 2022-08-19 23:35:25 +08:00
|
71
zartouch 2022-08-19 23:57:21 +08:00 3
楼上还有些理中客就搞笑 1 拿纯测试的 c100k 来说事,那种完全不带业务的纯测试单机 10w 链接能和 lz 说的是一个概念?就算是静态网页,自己算算带宽要多大,io 消耗要多少。2. 楼主来求助连自己怎么测试的具体细节都没有,不就是来钓鱼的么, 冷嘲热讽有问题?
|
72
night98 2022-08-20 02:32:24 +08:00 1
楼上吹 c100k ,c1000k 的可以投蚂蚁金服架构师岗位了,蚂蚁也就支撑了几十万笔交易 /s 的水平
|
74
blankmiss 2022-08-20 08:19:49 +08:00
op 都不说话的
|
75
abuabu 2022-08-20 08:55:41 +08:00
@cominghome
类比不当 1.鞋子对速度的影响不大,或者鞋子影响速度的问题已经超出了普通人能够讨论的范围 2.比率不对,10k 到 600 卡死,对比 10 秒内外之前的差距不能类比 3.如果一个人换了一双跑鞋,之前可以跑进 10s ,现在脚疼走不动道,这时候难道不是帮他研究鞋的问题? 4.逻辑的核心在于变量影响结果的预期是否与现实结果相等,如果远远小于,研究变量本身比其他旁枝细节重要的多 |
77
hefish 2022-08-20 09:45:12 +08:00
我的情况和 OP 很相似,我的应用原来是在 win2000 下运行的,并发数大约有 300 万的样子,前几天终于升级到了 win2019 ,并发数一下子就降到了 3 ,看着急啊。。。
后来我就继续升级,把系统升级到了 windows 20020 ,效率一下子又提高了,比以前的 win2000 还要高出很多很多,并发一下子提高到了 1000 万,四舍五入一个亿。。。 看起来还是要坚持不懈地升级啊。 |
78
hutoer 2022-08-20 09:56:31 +08:00
@zartouch 不是所有的业务都是很复杂的,比如我前面说的 IP 地区查询。现在单机网络轻松到 40G 、IOPS 100 万,支撑 10 万并发还是可以的。
|
80
pperlee 2022-08-20 10:13:49 +08:00
是换了硬件吗?没有换的话,还不如用回老系统
|
82
shyling 2022-08-20 10:32:21 +08:00
建立 tcp 连接和 http 服务不是一回事吧。。
|
83
keepeye 2022-08-20 10:50:22 +08:00
降回来,再测一下,确认下
|
84
dorothyREN 2022-08-20 18:07:24 +08:00 1
这不是来骗铜币的吧。。。
|
85
zartouch 2022-08-23 00:06:55 +08:00
@hutoer 呵呵没写可不是能力问题,是根本就没想着来认真讨论问题。他做了这件事,不写细节,也不回复,这在你这成能力问题了。 我想问问你把自己做的事情写下来要啥能力。 楼主发完贴智力退化成 3 岁小孩了?
我说了就算是静态网页你自己算算要多少带宽和 IO , 还有 lz 自己写的老网站,在你这就变成 IP 查询了?还 40G 带宽一个 lz 自己维护的老网站,你自己想想办 40G 的商用带宽别逗我了好么。脑子是个好东西可惜不是每个人都有。 |
87
aw2350 2022-08-23 17:58:06 +08:00
自己抓 dump 文件,之前公司请过微软得人去分析 iis 得 dump ,没得出什么结论
某些.net 版本的 api 方法做了升级,不好追踪具体哪里产生的损耗,尤其是那些 wcf 之类的重量级框架 微软的东西,真是最好能不碰就不碰 |
88
dnsaq 2022-08-23 19:05:45 +08:00 via iPhone
@nba2k9 淘宝网 RPS 听说也就几十万,我说就两台服务器了?你的意思两台服务器就能支持这个数量级?
|
89
nba2k9 2022-08-24 09:50:14 +08:00
楼主一台扛 10w 的服务器,淘宝 20w 岂不是需要两台就行了?
“传下去”是一个梗而已,请不要当真 |