第116章 要不这就算我的检查吧(数据再掉就恢复两更。)
实验室在顶楼走廊的最深处。
一进门就听到嗡嗡的服务器风扇声。
几台昂贵的sun ultra工作站一字排开。
七八个博士生围在一个屏幕前,个个面如土色。
胡鹏趴在键盘前,手指飞快地敲击着,调取系统底层的core dump文件。
“segmentation fault……”
胡鹏看着屏幕上的报错,眉头锁成了一个“川”字。
“又是段错误。
线程之间的资源争抢太严重了。
咱们用的corba标准,底层的orb通讯机制在处理大量短连接的时候效率太低了。”
“要不加硬件?”
刚才那个报信的男生小声提议。
“再申请两台服务器做负载均衡?”
“加个屁!”
胡鹏骂道。
“这是软件架构的硬伤,你就是把机房堆满服务器,锁竞争的问题解决不了,一样得崩!
国家给的指标是单机5000并发,现在连一半都跑不到,下个月验收怎么交代?”
众人一片死寂,不敢接话。
陈浩站在人群最后面,目光扫过屏幕上的架构图和那几行关键的c++代码。
他立刻看明白了。
这套系统采用的是典型的“thread-per-request”(每个请求一个线程)模型。
这是当时corba架构的标准做法。
每一个客户端连接进来,服务器就分配一个独立的线程去处理。
在并发量小的时候,这种模型简单高效。
但一旦并发量上来,成千上万个线程同时在操作系统里抢占cpu时间片,光是线程上下文切换的开销就能把cpu吃光。
再加上他们为了保证数据一致性,在共享内存区加了大量的互斥锁。
这不崩才