免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: BetonArmEE
打印 上一主题 下一主题

[C] 单进程多线程服务器存在这样的弊端 [复制链接]

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
101 [报告]
发表于 2013-03-14 14:06 |只看该作者
SuperZ 发表于 2009-11-17 15:45
即使是重负载程序,也分很多种:计算密集型、I/O密集型、通信密集度?
如果是前两种,就不应该使用多线程。 ...

计算密集型一定要用多线程!!!

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-03-13 15:26:06CU大牛徽章
日期:2013-03-13 15:26:47
102 [报告]
发表于 2013-03-14 15:40 |只看该作者
从头到尾看了一遍,当年讨论得很热烈啊!

相比当下,不是一个风气。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
103 [报告]
发表于 2013-03-14 20:25 |只看该作者
回复 99# yulihua49


    我行的情况不太适合做多线程,交易都是外包人员开发的,技术能力参差不齐,每天都有大量的交易coredump,只有管理进程监控工作进程处理交易,一发现coredump马上重启才是王道。我觉得多线程的适用场景是服务器开发团队质量比较稳定或者强人独立开发才行,否则,一个交易core掉,搞死一片其它正常的交易,还不被领导骂死。银行后台还是以稳定优先,速度其次,再说实现了负载均衡就可以横向扩展。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
104 [报告]
发表于 2013-03-14 20:27 |只看该作者
回复 99# yulihua49


    尽量减少锁、临界区,也是提高并发系统速度的关键。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
105 [报告]
发表于 2013-03-14 21:45 |只看该作者
本帖最后由 yulihua49 于 2013-03-14 22:15 编辑
BetonArmEE 发表于 2013-03-14 20:25
回复 99# yulihua49

你说的有道理。
不过即使个别进程coredumpped也要处理交易完整性和redo策略,也很麻烦。

我们现在索性就是多线程,bug太多你交不了差。省得测试关躲过去了,运行时找麻烦。
还好现在的debug都可以定位到线程。
我们多线程都是框架管的,应用开发者不太关心这个。但是告诉他们要线程安全,否则后果很严重,他们有这个意识,很注意,代码质量就比较高。
这叫背水一战,给他们逼到死角。
两个大的多线程并行处理系统已经投产,运行很稳定,服务器连续运行几个月,内存也很稳定。现在我对这种技术很有信心,完全能掌控开发队伍,即使生手也能让他们做到线程稳定。
每秒10000级别的交易。以前用多进程时好像没做到过这个数。1000TPS都挺难的。
扣题啦,高吞吐量的单进程服务器。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
106 [报告]
发表于 2013-03-14 22:10 |只看该作者
BetonArmEE 发表于 2013-03-14 20:27
回复 99# yulihua49

使用tc-malloc,线程并行的存储分配,很有效的。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
107 [报告]
发表于 2013-03-14 23:46 |只看该作者
分布式是王道, 简单的说就是可以水平扩展...  单进程里怎么做都行.

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
108 [报告]
发表于 2013-03-21 10:59 |只看该作者
本帖最后由 cxytz01 于 2013-03-21 11:33 编辑

accpet不用锁了,2.6内核的accept已经没有惊群了。

嵌入式sql(pro*c)开发效率更高,pro*c是oci的封装。
oci开发效率低下,但执行效率更高。曾经就为了执行一条select语句,写了300多行代码。

BetonArmEE 发表于 2009-11-17 15:25
同意
在accept锁上我有了犹豫,是采用文件锁好,还是线程互斥锁好,还是IPC信号量锁,或者其它?^_^

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
109 [报告]
发表于 2013-03-21 11:04 |只看该作者
同问,我们现在也是搞金融类的,就是不用tuxedo

alloney 发表于 2009-11-19 17:18
是否考虑用异步的方式

不太明白银行的交易系统为什么都没有采用成熟中间件产品,CICS/TUXEDO这类。

论坛徽章:
7
天蝎座
日期:2013-09-28 10:45:42双子座
日期:2013-10-16 16:27:09射手座
日期:2013-10-23 10:21:32处女座
日期:2014-09-17 16:44:332015年亚洲杯之巴林
日期:2015-04-09 17:28:01冥斗士
日期:2015-11-26 16:19:0015-16赛季CBA联赛之山东
日期:2018-03-02 23:59:31
110 [报告]
发表于 2013-03-21 11:27 |只看该作者
纠正下,io密集型,通信密集型(通信密集其实也就是IO密集)可以考虑使用多进、线程,涉及到IO,就意味着软件需要等待硬件完成IO,才可向下执行,因此需要并发的方式

           cpu密集型,就用单进程就可以了。 用多进、线程无法提高程序效率,反而会增大系统开销,降低程序执行效率。

yulihua49 发表于 2013-03-14 14:06
计算密集型一定要用多线程!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP