d***a 发帖数: 13752 | 1 你这TCP/IP stack是特制的吧
搞了user-level TCP/IP, zero copy等技巧? |
|
T********i 发帖数: 2416 | 2 Solarflare OpenOnLoad
Kernel by pass。 |
|
b*******s 发帖数: 5216 | 3 有时还牵涉到cache write through和reload
尤其是跨进程,代价非常大 |
|
|
|
d***a 发帖数: 13752 | 6 呵呵,我很久以前做过类似的项目,把linux kernel搞崩溃了N次。 |
|
S*A 发帖数: 7142 | 7 context switch 可不是几个 register。
建议测一下和 core 数目一样多的 thread。 |
|
h**********c 发帖数: 4120 | 8 tech tip ONLY
Linux card bond can combine multiple physical card, i used two cards bond
before, theoretically can be two+.
Real scenario: one card only send, the other one ceceives.
shown in ifconfig |
|
n**x 发帖数: 606 | 9 12个core,12个thread,还是0.2秒. 看样子context switch的效率还是比较高的。我的
系统是windows server 2012 R2. |
|
T********i 发帖数: 2416 | 10 你错了,有些core被系统占用,可能导致分配不均。
而且Windows Scheduler粒度过粗。
所以,建议用6个core。 |
|
h**********c 发帖数: 4120 | 11 tech tip ONLY I
Linux card bond can combine multiple physical card, i used two cards bond
before, theoretically can be two+.
Real scenario: one card only send, the other one ceceives.
shown in ifconfig
tech tip ONLY II
research on Linux volume in memory, I used it in my 8G desktop for my thesis
five years ago |
|
h**********c 发帖数: 4120 | 12 The point of II is a home work.
I lao give the answer tomorrow.
thesis |
|
|
S*A 发帖数: 7142 | 14 那个 20 M OPS 估计是 UDP 盲发吧,如果是那样,
有 context 来回那种会低些。就算是 20M OPS,
用 5M TCP 带建立连接已经不够了。所以我很好奇
老老实实 TCP 建立连接可以做到多少 M。
我看了一下那个 OpenOnLoad 的演讲, 还挺有意思的。 |
|
|
i*****o 发帖数: 1714 | 16 在老魏的算法里,他做最后端,在他前面有无数个web front。所以他只要和每个web
front 搭一个persistent tcp就好了。
★ 发自iPhone App: ChineseWeb 8.6 |
|
g*****g 发帖数: 34805 | 17 increment是不行的,你最少也要做InterlockedCompareExchange吧。
另外,网络来的请求,serialization, deserialization都是需要cpu的。 |
|
h**********c 发帖数: 4120 | 18 Somebody mentioned Gemfire like, so I don't have to Maiguanzi.
The point is if it is a volume in memory, then it can go NFS, GFS for
redundancy.
So the memory volume is not volatile, redundnacy saved in NFS, it can even
be hybrid (mechanic disks/volumes + main memory disks/volumes). |
|
g*****g 发帖数: 34805 | 19 The budget is 20K, you better don't go too fancy. |
|
h**********c 发帖数: 4120 | 20 200G ECC 1000d abt
in developing countries, can be less expansive.
Regards, |
|
|
g*****g 发帖数: 34805 | 22 我简单的测试用例给了。没有正确性不谈性能,常识。 |
|
f******n 发帖数: 314 | 23 太尼玛牛逼了,这么个复杂的系统就被转进成内存锁 io 网卡之类的性能测试了。别整
虚的,代码挂出来看看! |
|
z****e 发帖数: 54598 | 24 老魏没有锁,千万记住,呀的就是一个计数器
用最简单的原子操作回避了锁的操作
我们都错了,多线程上来就教锁,老魏认为这是错误的
十个图零奖小意思 |
|
g*********9 发帖数: 1285 | 25 随便上个lockfree的算法,能提高一大截,这个结果太差,不make sense. |
|
T********i 发帖数: 2416 | 26 IBM M4 Sandy Bridge Server 8 X 2 = 16 cores.
Linux 3.0.30-rt50.62.el6rt.x86_64 #1 SMP PREEMPT RT Wed May 16 09:42:30 CEST
2012 x86_64 x86_64 x86_64 GNU/Linux
10个core做Interlocked Increment/Decrement。
每个core 142 million OPS / s。
在考虑是不是把我的指标增加到10 million TPS/s? |
|
n**x 发帖数: 606 | 27 老魏的发法是用户决定联票如何联,车次,起点,终点都是常量。然后对一个巨大二维
矩阵做interlock加减法。 |
|
L*****e 发帖数: 8347 | 28 我知道,理论的valid的数据,和现实真实数据相差很远,理论上valid的数据,可以让
老魏解决方案的多线程全部白费,就是在interlock上做无用功的加减法。。。 |
|
L*****e 发帖数: 8347 | 29 不是说出票,是说他的interlocked的rollback。假设他两百个线程同时处理两百个联
票请求,这两百给联票请求是上面我说到的一个大耦合圈,那么第一个请求的成功或失
败会影响其余199个的成功或失败。。。 |
|
L*****e 发帖数: 8347 | 30 那么老魏的方案就是:
输入:车次,起点,终点
对该车次从起点到终点的每一个站,依次:
(1)读取剩余票数,interlock
(2)如果大于0,票数减一,解锁。
(3)如果等于0,rollback从起点到当前站之前所有站的票数(因为是加1所以不用
锁),并返回失败。
这样,确实是联票申请的复杂度只和联票内的停靠站数有关。联票就只把它当做更长路
程的两个合并车次而已,联票的引入不过是增加了请求失败的概率,不会造成重票。。。 |
|
T********i 发帖数: 2416 | 31 你的基本思路对。但是对interlocked 加减理解还是错误。 |
|
L*****e 发帖数: 8347 | 32 对interlock不懂,听他们的意思好像是对一个变量计算开始时就算是自动锁上了?然
后计算完成时,就解锁了?那就是说和0比较的运算时间于加1的计算时间相比,比较应
该比更新的计算时间短吧?
但是别忘了,如果失败的概率大的话,是先做了一次无用计算使得变量成为-1后再
rollback的,所以里外里多了两次计算。。。
如果失败的概率小,你的做法可以省时间,如果失败的概率大的话,会更费时间。。。 |
|
n*****t 发帖数: 22014 | 33 啥情况啊,你整明白 interlock 原理没啊?100 张票, 1000 个人抢,100 个返回正
数、出票,跟后面 900 个卢瑟毛关系没有 |
|
n**x 发帖数: 606 | 34 还是那句话,我谁的臭脚也不捧,只是看到这里没有一个人愿意写几行代码测一下。
我提供数据,大家参考一下。 所以不要再说谁捧谁的臭脚了啊。
问题:
古德霸的反例但凡计算机出身的都看得懂。说白了就是在multi-threading的环境下的
顺序问题。
模拟场景:
- 我的机器12 core,我就听大家的用12个线程。
- 每个线程处理1M请求,total 12M的请求平均分布在12个线程上。
- 1000趟车,每趟20个区段,每个区段1000张票。
算法采用老魏的算法,锁区段,不锁线路。 (所谓锁区段也就是interlocked加减)
测试结果(都是平均值)
- 成功出票2M
- 无票可出10M (看完再下结论)
- 抢票过程如果失败Re-Try一次,结果又大约10个请求Re-try成功。
- 全部请求走完后,把所有失败的请求在处理一边,还是没有票。(这个很重要)
结论:
- 古德霸的a->b的反例属于re-try可以成功的例子。 如果retry不成功,那么基本就没
有满足条件的票了。
后续:
性能问题我的场景还不够真实,等我测完后在update. |
|
N*n 发帖数: 456 | 35 这个问题只有在最后只剩几张票的时候才出问题。。结论是随机的。
而且如果 C是番禺到广州,三个同时抢最后一张票,C胜出因为站数少。A/B
被弹回。
关于interlocked,如果我没理解错,最后只剩一张全程票的情况,即每个区段
都只有一张,A和B 先访问的那个,比如A,会把第一个区段比如北京至天津给抢到
并清零。B再访问的时候北京到天津没票了。。就推出抢票。A要借着扫下去到番禺才发现
没后段票,并退出,并把全区段再加一。。 |
|
w**z 发帖数: 8232 | 36 你看懂了?就那魏老师的几十行code?显摆一下interlocked? |
|
w**z 发帖数: 8232 | 37 最后就成测单机性能?就算单机性能足够,也没法满足12306的要求。吵了几个月,都
瞎耽误功夫。
但我相信老魏那code 肯定有他独到之处,要不咋不肯让人看?贴出来,也让我们屌丝
Java程序员开开眼界。
interlocked 估计都懂的,在爆点其他料? |
|
g*****g 发帖数: 34805 | 38 老魏interlocked闹了笑话,后悔着呢。现在改单线程了。 |
|
n**x 发帖数: 606 | 39 前言:
其实问题讨论到这里已经不在是个争出个你死我活了。一开始双方的需求根本没有统一
,所以吵了半天都是你说你的,我说我的。 现在需求逐步走向统一,很多人也在群策
群力帮老魏改进优化他那个计数器。 其实大的的目的都一样,看看能不能找到一个最
简, 最优的方案。难道这不是所有码工的目标吗?
问题: 古德霸的老农民坐了一半火车需要拎着行李去找下个区段座位的问题。
我的想法是这样的:
原来老魏的计数器其的实质是一个二维数组. 1000条线,每条线20个区段,每个区段
1000个座位。 表示为 int[1000,20]即可,每个元素初始为 1000. 做减法即可。
现在要求一张票不能换座位,那其实就把这个二维数组变成了三维。 这个第三维包括
了座位号1到1000数组。 1表示有空,0表示已卖。
计算过程的本质还是inlocked加减法. 过程如下:
- 北京-〉济南 这段包括3个区段:
- 从座位号1开始遍历一直到座位号1000, 对每个座位号遍历途经的3个区段,如果该区
段该座位可用则interlocked.decrement到0(已售出). 如果每个区段该票都可用则出
票.
结论:
计数器... 阅读全帖 |
|
g****t 发帖数: 31659 | 40 这个是对的。
要求不换座,那就把座位的信息按同样原理弄成计数器就好。
前言:
其实问题讨论到这里已经不在是个争出个你死我活了。一开始双方的需求根本没有统一
,所以吵了半天都是你说你的,我说我的。 现在需求逐步走向统一,很多人也在群策
群力帮老魏改进优化他那个计数器。 其实大的的目的都一样,看看能不能找到一个最
简, 最优的方案。难道这不是所有码工的目标吗?
问题: 古德霸的老农民坐了一半火车需要拎着行李去找下个区段座位的问题。
我的想法是这样的:
原来老魏的计数器其的实质是一个二维数组. 1000条线,每条线20个区段,每个区段
1000个座位。 表示为 int[1000,20]即可,每个元素初始为 1000. 做减法即可。
现在要求一张票不能换座位,那其实就把这个二维数组变成了三维。 这个第三维包括
了座位号1到1000数组。 1表示有空,0表示已卖。
计算过程的本质还是inlocked加减法. 过程如下:
- 北京-〉济南 这段包括3个区段:
- 从座位号1开始遍历一直到座位号1000, 对每个座位号遍历途经的3个区段,如果该区
段该座位可用则interlocked.decrem... 阅读全帖 |
|
x**n 发帖数: 461 | 41 一个是GoodBug的方案,建立在使用已知的第三方软件的基础上,对整个流程作改变,
不再实时出票,订票和出票是异步的,disconnect的。
一个是以TeacherWei的方案为基础的德集合,实际上已经不是TeacherWei的方案了,但
是为了方便,还是称作TeacherWei的方案。
GoodBug的方案是典型的 application developer 提出的解决办法:用现有成熟技术。
不改变流程的话,现有技术就是做不到。所以要离线出票,查询和买票分开,用Cache
和snapshot 来支持查询,用离线出票来降低并发transaction 数。缺点是性能可能不
会太好,在scale out的时候还有很多细节需要考虑。
TeacherWei的方案本来并不是一个方案,只是一个解决抢票的基本算法。其核心是查寻
购票在一起。这其实是一个超级简化的方案,比如说如果抢到票了,怎么出票,那个座
位,都没有考虑。而且这个方案有一个大缺陷:没有考虑transaction和lock的问题。
TeacherWei和方案支持者认为InterLocked可以解决这个问题,其实是错误的。这造成
Goo... 阅读全帖 |
|
t**********1 发帖数: 550 | 42 第一,从来都不是一台单机打天下。
第二,Interlocked不是semaphore。真的不是。 |
|
x**n 发帖数: 461 | 43 不是 你想的那麼簡單。Interlocked 是不夠的 |
|
n*****t 发帖数: 22014 | 44 简单说,老魏的方案 98% 以上时间 interlocked 即可 |
|
b*******g 发帖数: 603 | 45 真没啥好惜的,我是不懂interlocked, 但AtomicInteger的方法我比他熟悉太多了,不
会犯decrement/increment不transactional这种错误。我也不是算法大牛,但绝不至于
觉得一个单线程的数组计数器有任何价值,还能拿出来吹。 |
|
g*****g 发帖数: 34805 | 46 扯鸡巴蛋吧。太监半路出家做 HFT的,高发网站他懂个屁呀。一堆人拼命给他打补丁,
最后弄出个没鸡鸡的计数器。你们都是 EE出身写 C++的。啥通信,高频,嵌入式,我
从不掺和。 thrust基本不跟我同一个主题出现,这叫有自知之明。
互联网这东西,你们几个懂个屁呀。我拿个 Cassandra出来你们根本没听说过,开始觉
得我忽悠,后来又觉得不是自己写的轮子攒方案很弱。倒是太监拿出一个 interlock集
体高潮,盖了几百高楼。我质疑还嘲笑我最后我不得不拿出个实例集体打脸,现在是不
敢提了。数据库
的基本常识都没有,还12306。 |
|
b*******n 发帖数: 473 | 47 Social Status, Power, and Government
[社會地位,權力,和政府]
I turn now to certain matters discussed in C 7, 8, and 9 of Lineage
Organisation.
[我現在轉向第七,八,九章宗族組織中的某些問題。]
So much has been published in recent years on both social
mobility and local government in the Ch'ing dynasty that my earlier
statements ideally require a thorough overhaul.
[最近幾年出版了如此眾多的關於清代社會流動性和地方政府的作品,理想狀態下,我
之前的所有論斷應該進行完全的檢視。]
But I must limit myself here to a few topics that bear most directly on the
problem of the organisation of li... 阅读全帖 |
|
a********k 发帖数: 2273 | 48 花了一个小时,深深的鄙视一下自己的无聊行径!!
125 蔡亮 男 1980年11月 复旦大学 生命
科学 2007年12月毕业于[美国]北卡大学 [美国]加州大学旧金山分校 博士后
Cai L, Mostov K. Polarity is destiny. Cell. 2009 Nov 13;139(4):660-2. PubMed
PMID: 19914162; PubMed Central PMCID: PMC2900917.
Cai L, Makhov AM, Schafer DA, Bear JE. Coronin 1B antagonizes cortactin and
remodels Arp2/3-containing actin branches in lamellipodia. Cell. 2008 Sep
5;134(5):828-42. PubMed PMID: 18775315; PubMed Central PMCID: PMC2570342.
Cai L, Makhov AM, Bear JE. F-actin... 阅读全帖 |
|
W*********n 发帖数: 775 | 49 【 以下文字转载自 Chemistry 讨论区 】
发信人: Wanshington (Joudon), 信区: Chemistry
标 题: 关于x-ray machine的安全问题,欢迎大家都来讨论
发信站: BBS 未名空间站 (Fri Aug 17 12:53:54 2012, 美东)
我知道有些 occupational health safety issue是肯定存在的,但是不知道具体的危
害。老婆最近怀孕了,但是公司如果需要做SEM/PDS,需要彻底不去碰这个仪器呢还是因
为仪器有interlock基本上也没事?因为我们俩都不太懂这个仪器的x-ray的防护结构,
所以来咨询大家一下,谢谢指点! |
|
s******y 发帖数: 28562 | 50 数据没有,但是当年我们培训的时候说这个其实影响非常小。
尤其因为扫描电镜的辐射来源顶多就是x-ray, 在大部分现代的电镜里
都被困在井筒里跑不出来的。所以,对于操作电镜的人,甚至不需要佩带
辐射计数器。不过,如果你的妻子怀孕了的话,可以对有关部门声明一下,
控制一下她接触这些仪器的总机时,应该就没有问题了。
http://ehs.virginia.edu/ehs/ehs.rs/rs.rpeelectronmicroscope.htm
What are the radiation safety concerns?
The radiation safety concerns are related to the electrons that are
backscattered from the sample, as well as X-rays produced in the process.
Most modern electron microscopes are extremely well shielded and do not
produce exposure rates gre... 阅读全帖 |
|