二三阅读

字:
关灯 护眼
二三阅读 > 重生00:开局白捡六千万闯天家 > 第116章 要不这就算我的检查吧(数据再掉就恢复两更。)

第116章 要不这就算我的检查吧(数据再掉就恢复两更。)

第116章 要不这就算我的检查吧(数据再掉就恢复两更。) (第1/2页)

实验室在顶楼走廊的最深处。
  
  一进门就听到嗡嗡的服务器风扇声。
  
  几台昂贵的SUnUltra工作站一字排开。
  
  七八个博士生围在一个屏幕前,个个面如土色。
  
  胡鹏趴在键盘前,手指飞快地敲击着,调取系统底层的COreDUmp文件。
  
  “SegmentatiOnfaUlt……”
  
  胡鹏看着屏幕上的报错,眉头锁成了一个“川”字。
  
  “又是段错误。
  
  线程之间的资源争抢太严重了。
  
  咱们用的CORBA标准,底层的ORB通讯机制在处理大量短连接的时候效率太低了。”
  
  “要不加硬件?”
  
  刚才那个报信的男生小声提议。
  
  “再申请两台服务器做负载均衡?”
  
  “加个屁!”
  
  胡鹏骂道。
  
  “这是软件架构的硬伤,你就是把机房堆满服务器,锁竞争的问题解决不了,一样得崩!
  
  国家给的指标是单机5000并发,现在连一半都跑不到,下个月验收怎么交代?”
  
  众人一片死寂,不敢接话。
  
  陈浩站在人群最后面,目光扫过屏幕上的架构图和那几行关键的C++代码。
  
  他立刻看明白了。
  
  这套系统采用的是典型的“Thread-per-ReqUeSt”(每个请求一个线程)模型。
  
  这是当时CORBA架构的标准做法。
  
  每一个客户端连接进来,服务器就分配一个独立的线程去处理。
  
  在并发量小的时候,这种模型简单高效。
  
  但一旦并发量上来,成千上万个线程同时在操作系统里抢占CPU时间片,光是线程上下文切换的开销就能把CPU吃光。
  
  再加上他们为了保证数据一致性,在共享内存区加了大量的互斥锁。
  
  这不崩才怪。
  
  “胡院长。”
  
  一个突兀的声音打破了沉默。
  
  众人回头,看到那个本该在写检查的大二学生,正双手插兜站在后面。
  
  胡鹏看到陈浩,火气又要上来:
  
  “谁让你进来的?出去!”
  
  “如果是CORBA架构下的线程阻塞,加再多服务器也没用。”
  
  陈浩没有动,而是指了指屏幕上的一行代码。
  
  “你们用的是同步阻塞I/O模型(BIO)。
  
  这种模型下,线程在等待网络数据的时候是挂起的,不仅占内存,还不干活。”
  
  胡鹏愣了一下,开始重新打量起陈浩。
  
  这番话切中要害,而且专业术语用得极准,绝不是一个大二学生能说出来的。
  
  “你懂CORBA?”
  
  胡鹏的声音沉了下来。
  
  “略懂一点。”
  
  陈浩走到屏幕前。
  
  “我兼职的公司就是做高并发互联网应用的。
  
  前段时间我跟着出差到硅谷,跟SUn公司负责JavaEE规范制定的一帮工程师聊过。
  
  现在的趋势是,瓶颈不在硬件,而在I/O模型。”
  
  陈浩顿了顿,看着胡鹏:
  
  “胡院长,能给我个白板吗?”
  
  周围的博士生面面相觑。
  
  一个大二的要在国家级实验室里给他们这些博士生讲课?
  
  “给他。”
  
  胡鹏盯着陈浩看了几秒,鬼使神差地挥了挥手。
  
  一个博士生从角落里推过来一块白板。
  
  陈浩拿起马克笔,没有废话,直接在白板上画了一个图。
  
  一个圆圈,周围连着无数线条,中间是一个单向的箭头。
  
  “既然多线程容易崩,那我们就不要用多线程。”
  
  陈浩一边画一边说。
  
  “目前的架构是,来一个客人,我们就派一个服务员全程跟着。
  
  客人点菜、吃饭、买单,服务员都得等着。
  
  客人多了,服务员就不够用了。”
  
  他在旁边画了另一个图。
  
  “我们可以换个思路。
  
  只留一个前台接待员。
  
  所有客人的请求先到前台登记。
  
  前台把请求分类,扔到后面的队列里。
  
  厨房做好了,再通知前台叫号。
  
  这就是IO多路复用。”
  
  陈浩写下几个英文单词:I/OMUltipleXing。
  
  “利用UNIX系统底层的SeleCt或者pOll机制,一个线程就可以监控成千上万个SOCket连接的状态。
  
  只有当SOCket真的有数据可读写时,才分配资源去处理。”
  
  陈浩转过身,看着胡鹏:
  
  “还需要把这块的同步锁去掉,换成无锁队列。”
  
  实验室里没人回应,博士生们有的皱眉沉思,有的还在发懵。
  
  

(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』
热门推荐
极品全能学生 凌天战尊 御用兵王 帝霸 开局奖励一亿条命 大融合系统 冷情帝少,轻轻亲 妖龙古帝 宠妃难为:皇上,娘娘今晚不侍寝 仙王的日常生活