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