免费注册 查看新帖 |

Chinaunix

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

用Perl如何实现高效稳定的Socket Server? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-11-19 21:40 |只看该作者
原帖由 freeand 于 2005-11-19 21:36 发表


为什么这样说?
没希望了?


实际就是这样的,你可以自己试试。
如果能达到上千的同时连接,并且性能稳定,那请告诉偶一声。
btw:如果你的网络应用规模那么大,照你的意思是同时连接数过千,那为什么不用C来实现?

论坛徽章:
0
12 [报告]
发表于 2005-11-19 21:51 |只看该作者
我是想做mysql同步 所以在PHP中调用数据库类的时候针对update insert replace语句建立socket连接 把query 发到这个sock_svr
由sock_svr分发到各个mysql server上都是短连接 时间都不超过1秒 Perl的sock承受不了过多连接么?我刚才看了一下占用 进程最多占用5%CPU资源

论坛徽章:
0
13 [报告]
发表于 2005-11-19 22:07 |只看该作者
原帖由 duketang 于 2005-11-19 21:51 发表
我是想做mysql同步 所以在PHP中调用数据库类的时候针对update insert replace语句建立socket连接 把query 发到这个sock_svr
由sock_svr分发到各个mysql server上都是短连接 时间都不超过1秒 Perl的sock承受不了过 ...



你自己试试嘛,偶说能支持几千也没用呀。
Perl的Socket,fork等都是基于底层的C库封装的,你这里只是简单的利用了它们。要想实现高性能的svr,也不是这几十行code就可以的呀。在小压力环境下,你的子进程及Socket实现良好。若压力大时,Socket svr的子进程会出现收不回的情况,并交互影响,结果是越来越多的子进程累计收不回,导致system resource耗光而让OS Down掉。偶经历过这种情况,你可以自己test下。

论坛徽章:
0
14 [报告]
发表于 2005-11-19 22:09 |只看该作者
原帖由 duketang 于 2005-11-19 21:51 发表
我是想做mysql同步 所以在PHP中调用数据库类的时候针对update insert replace语句建立socket连接 把query 发到这个sock_svr
由sock_svr分发到各个mysql server上都是短连接 时间都不超过1秒 Perl的sock承受不了过 ...


另外,要实现你的目的,也用不着自己写socket代理呀;有很多成熟的db cache proxy的,例如Apache:: DBI

论坛徽章:
0
15 [报告]
发表于 2005-11-19 22:49 |只看该作者
apache :: DBI 是什么东西? 是perl的模块?

论坛徽章:
0
16 [报告]
发表于 2005-11-19 23:50 |只看该作者
原帖由 duketang 于 2005-11-19 22:49 发表
apache :: DBI 是什么东西? 是perl的模块?


Seeing here for something about Apache:: DBI:

http://perl.apache.org/docs/1.0/ ... database_connection

论坛徽章:
0
17 [报告]
发表于 2005-11-20 13:54 |只看该作者
这个我看了下描述好像只是数据库连接的类?

已经改用c++写了~ 在小负荷的情况下 就已经比perl强不少

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
18 [报告]
发表于 2005-11-21 08:56 |只看该作者
用socket的话..可以在inetd.conf中..要把nowait改成wait...
这样子不会每次有新的request来都要fork新的process...
同一个server可以wait几分钟後,再die....
这样子可以多接收点request..

如果是自己写的stand alone daemon...可以先prefork一些server process..等在那边......
这样子....效能会更快...像apache httpd一样...
不管C或perl都一样....
给你叁考吧...

[ 本帖最后由 apile 于 2005-11-21 08:57 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP