Chinaunix

标题: FreeBSD效率问题,谢谢! [打印本页]

作者: 大隐隐于床    时间: 2009-03-30 12:15
标题: FreeBSD效率问题,谢谢!
小弟正打算把linux下的一段程序移植到freeBSD下,遇到点效率问题,请各位大师指点。

对比测试环境:
linux2.6.18   
FreeBSD 6.2-RELEASE

1 fork、开线程时间。
  linux所用时间是FreeBSD的60%~70%
   开5000至10000线程的时候,甚至达到40%~50%

2 libnet发包速度。
  只知道linux发包速度快于freeBSD,具体数值不清楚。

3 用libpcap抓包时,fork进程一多,就会出现丢包的情况。

请各上面的问题有没有办法解决?小弟正打算投身BSD阵营,就遇到如此多的问题。望各位大仙帮下忙,拜谢。
作者: axlrose    时间: 2009-03-30 12:17
LZ加入BSD吧,你可以弄FreeBSD 7.1来试试
你的问题等高手来解答
作者: xooass    时间: 2009-03-30 12:43
FB 6.2 的线程是没有linux好   建议换FB 7.1再试试
作者: 大隐隐于床    时间: 2009-03-30 13:31
谢谢2、3楼,我去试试7.1。
不光线程,开进程也没linux快。

等待高人解答。
作者: zsniper    时间: 2009-03-30 13:51
LZ在FreeBSD6.2下用的是什么线程库阿?libkse?libpthread?

7.X的libthr的效率明显在6.X之上。。。。

还有就是,LZ开这么多线程干吗?实际上,根本用不到那么多的线程。

[ 本帖最后由 zsniper 于 2009-3-30 14:02 编辑 ]
作者: 大隐隐于床    时间: 2009-03-30 14:11
标题: 回复 #5 zsniper 的帖子
谢谢!
用的libpthread

现在线程用得少,主要是用fork。
程序是抓取大量数据包进行处理。所以开fork,或开线程的时间影响很大。
作者: zsniper    时间: 2009-03-30 14:26
在6.X上面我也做过测试,libkse的效率好像要比libpthread高点,但好久之前的事了,记不大清了.

但7.X上面的libthr的效率肯定要比6.X上面高很多........7.X无论是线程库还是内存分配,都要比6.X高.支持上面几位的说法,用7.X试试.

期待LZ的测试结果......
作者: zsniper    时间: 2009-03-30 14:31
原帖由 大隐隐于床 于 2009-3-30 14:11 发表
谢谢!
用的libpthread

现在线程用得少,主要是用fork。
程序是抓取大量数据包进行处理。所以开fork,或开线程的时间影响很大。



我还担心,LZ开了这么多的进程(线程),进程(线程)之间的切换的开销也不小的
作者: grizzly    时间: 2009-03-30 14:52
http://jeffr-tech.livejournal.com/3729.html

The old ULE may not be very efficient. And the FreeBSD 7.1, "The ULE scheduler is now the default in GENERIC kernels for amd64 and i386 architectures. The ULE scheduler significantly improves performance on multicore systems for many workloads. " (RelNote)
作者: 大隐隐于床    时间: 2009-03-30 15:01
原帖由 zsniper 于 2009-3-30 14:31 发表



我还担心,LZ开了这么多的进程(线程),进程(线程)之间的切换的开销也不小的



我也担心这个问题。主贴的问题3,我怀疑就是这个引起的。
作者: shengshuai    时间: 2010-01-03 14:55
怎么没有下文了吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2