由买买提看人间百态

topics

全部话题 - 话题: c10m
首页 上页 1 2 3 4 5 下页 末页 (共5页)
g*****g
发帖数: 34805
1
来自主题: Programming版 - 10M persistent TCP connections
我就求一个单机C10M的实践例子,有就是有,没有就是没有。我老是没听说过。
如果有,我去学习一下当然很好。我老只相信实践,不相信太监。
h****r
发帖数: 2056
2
来自主题: Programming版 - 10M persistent TCP connections
这个我也有doubt,但是目前我倾向有,感觉技术上能实现,cost(不是指硬件)就是
另一回事。
当然我说的是general purpose的应用,比你说的一个单机C10M的实践例子要求高一些。
d*******r
发帖数: 3299
3
来自主题: Programming版 - 10M persistent TCP connections
大牛说的是,多node增加容错能力确实很重要,但是我觉得单机的效能压榨也挺有意思
的.
如果单机能压榨出 C10M,做多node cluster的时候,调整每个 node 的处理能力,不
也多了个high performance的 option了吗。
我觉得好像也不矛盾。
g*****g
发帖数: 34805
4
来自主题: Programming版 - 10M persistent TCP connections
你明显没看明白我说啥。机器是可以越做越快,但在线用户数到了100M这个级别就不会
增长了。
因为全世界人口就那么多。
所以C10M是个伪问题。实践中根本不会在单机上放那么多。
L*****e
发帖数: 8347
5
来自主题: Programming版 - 10M persistent TCP connections
我觉得古德霸说的,除了是不是最多只有100M的同时在线连接可商榷以外,其它部分还
是基本站得住脚的。
按照他的假设,如果因为人口的限制,最多不会出现超出100M的在线连接应用,用100
台机子的cluster,每台机子可以Handle 1M连接来部署,这样,一台机子fail了,1M连
接分到另外99台机子上去,那么每台机子需要多handle 10K的连接。
如果现在你的单机可以handle 10M连接,你是用10台机子来部署呢?还是用100台机子
来部署呢?10台机子部署的话,如果1台fail了,10M的连接分配到另外9台上,每台要
一下多1M连接可能会崩溃。如果照你这个帖子里说的,用100台机子部署,平时每台只
处理1M连接,富裕的9M来应付有机子fail的情况,那么是巨大的计算力浪费,因为毕竟
大部分时间是平常正常运行,failure是极少数,保持巨大的余量来应付fail就是浪费。
至于100台C1M的机子和10台C10M的机子哪个成本更高,这里还要考虑到100台C1M
的机子可能不光是用来处理连接,其计算力还要用在别的方面等因素,所以我也不清楚
结论是什么,只能说影响因素比较多。... 阅读全帖
g*****g
发帖数: 34805
6
来自主题: Programming版 - 10M persistent TCP connections
我再说一遍,单机上玩玩benchmark跟产品环境是两码事。产品环境从来都是可靠性远
远高于性能。
你要有几千万用户,风投趋之若鹜,跑几百个VM才几个钱。
你要有实战经验,哪怕没有10M只有100K并发,大家都可以讨论一下经验。单机上让你测
出10M来也就是玩而已。
C10K 有意义,那是因为epoll 没有改变TCP协议。C10M 那个博客的作者提到必须重写
网络协议,在我看来跟ipv8一样。
S*A
发帖数: 7142
7
来自主题: Programming版 - 10M persistent TCP connections
BTW, 做事情有始有终, 你说那个 C10M 必须改 internet 协议否则
做不出来的出处在那里?
我很好奇人家的原因是什么。
T********i
发帖数: 2416
8
来自主题: Programming版 - 10M persistent TCP connections
你就别不要脸了。
low latency,high throughput的网络技术我也做了10来年了。还从来没崩过。无论什
么方案,指标就是throughput和latency。如果我的throughput秒你一个数量级,你做
的就是屎。
系统做的正确,连接数是100个,还是10M,throughput没有本质差别。robert那个网站
也说了,C10M的连接速度就是1m/s。openonload之类的stack用户成百上千万,这东西
都是commodity。
成天把大并发挂在嘴上,难道你不知道,并发数是10个还是10m,HA的要求是一样的?
同样的实现,人家既然性能能高你一个数量级,HA的性能自然也高你一个数量级。
这里面,唯一不能做技术的就是你。你顶多就是一搭积木的。

stack,
g*****g
发帖数: 34805
9
来自主题: Programming版 - 10M persistent TCP connections
他贴出C10M 的代码了?你真是最后一根稻草。
T********i
发帖数: 2416
10
来自主题: Programming版 - 10M persistent TCP connections
哈哈哈。You made my day。
什么叫custom driver, tcp?你看来真的不懂网络。连I/O都不懂,怎么指望你懂网络?
你好意思说自己懂I/O吗?
丢人呀丢人,讨论技术不行就靠造谣中伤。你这么做只能说明你自己下作。
你丫这辈子都没搞明白过socket API。这个事实本版大多数人已经看得很清楚了。不懂
socket API号称自己做出C10M你很自豪是不是?
Java的神奇之处。能把一个傻逼变成nflx的architect。了不起呀了不起。

停。
T********i
发帖数: 2416
11
来自主题: Programming版 - 10M persistent TCP connections
我不管此人是谁。我就问你是否知道OpenOnLoad的用户多少?
我用OpenOnLoad 4年还从来没崩过。什么叫不稳定?
OpenOnLoad是hybrid,就是kernel-mode和user-mode都能用。不是pure user-mode。而
且OpenOnLoad是20m packets/s。达不到该blog号称的intel的80m packets/second。
这些都不是问题。问题是C10M即使不用OpenOnLoad,保持10M连接根本没问题。受影响
的是throughput。而且这个影响不大,顶多是一倍。
况且,Solarflare NIC顶多是2X10G的ethernet port。Intel号称的80G。
当然,和你说这些也没啥用。反正你牵狗就来喷。

呗。
of
stack
T********i
发帖数: 2416
12
来自主题: Programming版 - 10M persistent TCP connections
呵呵。你着什么急?
OpenOnLoad我用了4年了。每天真金白银在交易。懒得reboot机器,经常连续运行半年
多。稳定不稳定我自然心里有数。
C10M,就那个定义,10M connection,10G throughput,100M connection/s,用
OpenOnLoad足够了。就这么简单。
不是说OpenOnLoad没bug。bug一堆一堆的。发现后workaround就好了。我前几天的帖子
还提到一个我发现的bug,迄今没fix。这并代表不能24X7稳定运行。
g*****g
发帖数: 34805
13
来自主题: Programming版 - 10M persistent TCP connections
你丫除了死撑还会别的?都像你说的这么简单,为嘛4个月了12306就写了个太监版的计
数器,
连监听端口都不敢。你要我写个模拟千万用户的12306 client,我一天以内保证写出来。
server端有数据库问题,有failover问题,要考虑的东西多了。
网络处理要尽量跟应用层分开是不错,偏偏你又要c10m, zero copy,应用想独立于
driver api都不行。
T********i
发帖数: 2416
14
来自主题: Programming版 - 10M persistent TCP connections
你家数据库和前端机放一起么?
Whatsapp数据库和前端机放一起么?
C10M讨论的是前端机。
既然2M连接能操作数据库,能failover,10M也能,没问题。
其实,对于whatsapp,更合理的方案是前端机只负责客户端和后台数据库的通信。因此
,failover可以很简单。死掉了,重连接,由DNS之类的load balancer重新分配一台
server好了。
而且,你看好了,OpebOnLoad是用户进程hook API的。因此socket API不变,该怎么写
,还可以怎么写。什么叫应用不能独立driver API?
狗屁不懂,就知道喷。你越来越丢人了。hoho。

来。
T********i
发帖数: 2416
15
来自主题: Programming版 - goodbug做C10M?
看看丫发的帖子。。。
丫是不是精神有问题?
g*****g
发帖数: 34805
16
来自主题: Programming版 - goodbug做C10M?
我老以前做Mobile pushmail和traffic optimization的,我们公司是很多smartphone
的software vendor,用的
是同样的app server,比如卖了超过40M的Galaxy S2每一台都预装了我们的软件。同时
在线用户超过了10M,你傻
逼成天撞枪口上。
g*****g
发帖数: 34805
17
来自主题: Programming版 - goodbug做C10M?
They are always on clients. Unless you use SMS, how else do you push
notification? A connection has to be kept alive.
g*****g
发帖数: 34805
18
来自主题: Programming版 - goodbug做C10M?
What do you mean connect directly? All connections go through a lot of
routers. There's a TCP connection open between the server and the client so
both side can send message any time. Of course all mobile devices go through
either carrier or WIFI. And connection in mobile network tends to have a
shorter timeout.
e********3
发帖数: 18578
19
来自主题: Programming版 - goodbug做C10M?
感觉从你们俩的简历来看,好虫秒杀魏老师呀,我觉得要证明自己的实力的最有力的证
据就是自己以前做过什么,现在在哪家公司工作,资本家真金白银请你来干活,不会花
大价钱养着闲人废人的。
T********i
发帖数: 2416
20
来自主题: Programming版 - goodbug做C10M?
你做那种屎一样的东西,感觉很自豪是不是?
你那东西,顶多是本科生term project。你还不一定做的比人家好。
p*u
发帖数: 2454
21
来自主题: Programming版 - goodbug做C10M?

well, according 2 ur standard Steve Ballmer 秒杀 Steve Jobs
g*****g
发帖数: 34805
22
来自主题: Programming版 - goodbug做C10M?
LOL,每台galaxy s2三星给我们公司10刀。term project. 你丫连C10K都没做过的也来
叫板。
T********i
发帖数: 2416
23
来自主题: Programming版 - goodbug做C10M?
我做的都是你做梦都不敢想象的。
你这样的到我这里来面试,几句话就露馅了。
你号称做过这个那个,这些都是笑话。连buffer和flow control都不懂,说实话,我认
为你更可能是team里面打杂的。
T********i
发帖数: 2416
24
来自主题: Programming版 - goodbug做C10M?
你那点斤两,都暴露的差不多了。
你这样的能号称大拿,就是作死的前奏。勿谓言之不预也。
g*****g
发帖数: 34805
25
来自主题: Programming版 - 为啥太监这么不要脸呢?
你丫做过就是做过,没做过就是没做过。你敢出来说没做过C10K死全家吗?
尼玛口口声声C10M很容易,没见过这么要脸的。
g*****g
发帖数: 34805
26
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
我的实现最简单,20台机器,每台十个 VM, 每个5万连接。 ephemeral port也够用。
不牛逼,但是很实用。
S*A
发帖数: 7142
27
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
注意神魔都不改的话,程序失败在 1024。
所以你的 5 万连接要解决同样的问题。你能给出 5 万的解决办法吗?
对这个问题,可以解决 5 万同样方法应该可以用在 10M 上。
h**********c
发帖数: 4120
28
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
$ resource is limited
you can lower your kernel debug level by number to see what happened.
if u r app dev, this is not 4 u, too deep
S*A
发帖数: 7142
29
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
多明显啊,当然是有神魔系统限制啦。
这也是我设计这个练习的目的啊,暴露可能遇到的
情况。
有具体的解决方案吗?
脚本,程序,或者如何改 XXX 程序就可以运行通过了。
S*A
发帖数: 7142
30
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
BTW, 这个跟 kernel debug level 没有太大关系啦。
你想如何 lower 呢?给个 command line.
h**********c
发帖数: 4120
31
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
in real scenario met this kind of problem before
there is a kernel parameter decides max file descriptor numbers allowed,
forgot which file, different distro different file.
In fact, it was our former chief scientist found the problem, not myself
though at the solution given, I almost got it.
blah blah
h**********c
发帖数: 4120
32
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
you can google, but you have to reboot
S*A
发帖数: 7142
33
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
you are getting closer.
Wow, it seems that I can be that chief scientist. Wuhaha.
h**********c
发帖数: 4120
34
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
if you are a kernel contributor, maybe you can consider yourself.
That was a Java problem. like some horses drag a steam train.
S*A
发帖数: 7142
35
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
考,这个问题我知道如何解决啦。但是我说了就没有意思啦。
要不你 google 然后实验一下确认方案可行造福大家?
h**********c
发帖数: 4120
36
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
this is not a way of talking.
For me I know how to do it, but it is not related to my job.
namely, nobody pay me to do that.
like thesis supervisor, give you a guideline. we have to do all ourself.
science is the spirit and joy of exploring and discovering
S*A
发帖数: 7142
37
来自主题: Programming版 - C10M 练习 step 1: 10M sockets

OK. I understand. You can skip it. Any body else want to give
it a try?
g*****g
发帖数: 34805
38
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
ephemeral port range 要改,别的还真没记得有啥特别的。也没准 VM 本来就设好了
。你这个像是 file descriptor的问题,一狗应该能找到。
j*a
发帖数: 14423
39
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
ulimit -a
b********e
发帖数: 595
40
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
lOL
S*A
发帖数: 7142
41
来自主题: Programming版 - C10M 练习 step 1: 10M sockets

这个当然是 file descriptor 问题,多明白啊,出错信息写着那。
我是想提倡大家多动手练一下,而不是光出主意纸上谈兵。
放狗是能找到些信息,但是要解决具体的问题,狗就不一定找得到了
可以直接应用上去的东西。 或者你可能找到了你认为满意的方案,
但是放上去程序一跑没有用呢? 所以直到这个程序可以真的打开
10M 的文件,这个问题还没有真正解决。其他的都是说法而已。
我想提倡少说多做。怎麼样,程序我都给好了,实验一下很困难吗?
不试又如何知道呢? 期待给出干货的同学。
这样吧,第一个可以让这个程序跑的同学我给 10 个包子。
S*A
发帖数: 7142
42
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62122
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size ... 阅读全帖
j*a
发帖数: 14423
43
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
open files是1024,stdin/stdout/stderr占了仨
我这里user只能上2000,root可以上1024*1024
再多估计得fork了
S*A
发帖数: 7142
44
来自主题: Programming版 - C10M 练习 step 1: 10M sockets

对。 关键就是如何改。
fork 没用。
l*********s
发帖数: 5409
45
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
root can set limit up to 1M, but it still crashes/hangs because of the
resource limit.
b*******s
发帖数: 5216
46
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
嗯,我在186000这个数量左右时崩溃了
设置到了1024000
估计是/proc/sys/fs/file-max这个限制
在我机器上是191449
一试果然,但是没到运行完系统就崩了
马上看看日志是怎么回事
b*******s
发帖数: 5216
47
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
应该和内存有关,我在vm里面跑的,这个vm的内存是2g
马上读一下源代码
j*a
发帖数: 14423
48
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
内存不够系统崩掉了,我的也是vm有1g内存。
当时还能ping得到,sshd没死22端口好的但是不work,journalctl显示很多进程被杀了
我猜是内存枯竭所以sshd也spawn不了了,但是kernel杀了我其它n多进程x/terminal
什么的却留着测试的a.out,这样不太应该啊
另外24g内存的机器上是这样的,10m一台机器并发不容易啊
cat /proc/sys/fs/file-max
2413198
b*******s
发帖数: 5216
49
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
449 /*
450 * One file with associated inode and dcache is very roughly 1K.
451 * Per default don't use more than 10% of our memory for files.
452 */
453
454 n = (mempages * (PAGE_SIZE / 1024)) / 10;
455 files_stat.max_files = n;
456 if (files_stat.max_files < NR_FILE)
457 files_stat.max_files = NR_FILE;
应该就这段代码是计算max_file的
2.6.32.61 kernel的代码
b*******s
发帖数: 5216
50
来自主题: Programming版 - C10M 练习 step 1: 10M sockets
100G内存说不定能撑住
首页 上页 1 2 3 4 5 下页 末页 (共5页)