1、freebsd里的kqueue和linux 2.6下的epoll
两个东西极其相似,写好了一个之后,移到别外一个平台下,只要稍作修改就可以了,原理是一样,个人认为,从功能角度来盾kqueue比epoll灵活得多。在写kqueue的时候,内核帮你考虑好了不少东西。但是从效率来看,从我作的压力测试来看epoll比kqueue强。看看我的实验结果吧
客户端: linux ,P3,256M ,pthread多线程程序,开1万个线程,可是实际运行结果是,在linux2.4上只能打开4000多个线程的时候就报资源不足,郁闷了好久,不知道是什么资源,最大打开文件数是够了,内存也够(通过设置16k的栈空间)。后来把客户端移到linux2.6内核下,很快开出1万个线程来了。
epoll服务器端:P3,256M,在一万个并发线程下,面不改色,有条不紊地处理着数据,并发数能达到8000个连接。
kqueue服务器端:结果比较失望,在只能一条队列的情况下,并发数只能到2000,然后在客户端的读取数据时就会出现"connect reset by peer"的错误。后来改用了两条队列,一条用来接收新连接,一条用来处理原有的连接。在这种情况下,并发数也只能到3000,然后又会陆陆续续出现连接的错误。
2、关于pthread库的内容,加深了一下了解,学会了几个新的调用。
3、关于freebsd和linux上的一些系统调置方面的东西。
最大打开文件数,在linux,直接用ulimit -a可以看到,并用ulimit进行修改,运行时有效。在freebsd下,用sysctl -a|grep kern.maxfilesperproc 来查询,也可能直接修改。
还有一个就是freebsd的默认最大使用内存的限制,默认情况下是512M,可以能过grep MAXDSIZ /usr/include -r来查找它在头文件里面的定义。修改这个值的方法是在/boot/loader.conf加上一句kern.maxdsiz="xxxx" ,然后重启机器生效。
我觉得这几个小技巧可能会经常用到
分享到:
相关推荐
FreeBSD和Linux到底有什么不同
描述如何在同一系统上使用Linux和FreeBSD。
描述 基于 Linux epoll 或 FreeBSD kqueue 的简单低级事件机。 因此,它目前无法移植到 Windows 或其他 UNIX 平台。
freebsd v4.4内核源码,适合内核源代码爱好者下载学习
它们的共同点均是通过REdis的简单事件驱动(AE,A simple event-driven)触发,对于Linux实际是epoll的包装,对于macOS为evport的包装,对于FreeBSD对kqueue的包装,对于其它则是select的包装。
linux/freebsd/unix 下使用的pshell
FreeBSD Linux 使用大全,关于FreeBSD Linux操作系统常见命令与问题都在里面!
基于复杂度对开源软件Linux和FreeBSD内核的分析.pdf
提出了一些结果:随着规则数量的增加,FreeBSD下防火墙的服务时间与Linux下防火墙的速度相比; 与活动防火墙过滤规则相比,无状态防火墙过滤规则在服务时间方面的速度会随着规则数量的增加而逐渐增加。 然后,为...
本文档将突出介绍 FreeBSD 与 Linux® 的差别, 以使得那些 Linux® 高级用户能自己快速熟悉 FreeBSD 的基 础内容。这只是份技术上的快速入门, 并非是试图描绘这两种操作系统之间的"哲学"上的差异。 此文档假定认为...
本资料是由著名的王俊斌先生把他使用FreeBSD Linux系统及从事Linux程序开发的宝贵经验编成一部资料,以提供给初学者使用。 对于初学者而言,学习新的操作系统一定会遇到很多问题。但当这些困难获得解决时,就是一...
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Nginx是一款轻量级的Web服务器/反向代理服务器以及...同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于Epoll的高效事件模型kqueue.
为什么Linux比FreeBSD更流行.pdf
FreeBSD 中文使用手册 本手册适用于安装 FreeBSD 5.4-RELEASE 和 FreeBSD 6.0-RELEASE 以及它们的日常使用。
能够察看linux/unix/freebsd/bsd等非windows系统的系统以及硬件信息。 比如:cup数量 型号 主频 物力和虚拟内存容量、使用、剩余等 还可以探测硬盘的型号容量以及使用情况等等 还可以探测主机流量、名称、等...
FreeBSD与Linux的论战.pdf
在FreeBSD Linux下利用NATD IPNAT 等工具实现NAT。
FreeBSD11下安装Apache24的详细过程
本文采用VMware Workstation 7.1.1 (虚拟机)作为安装平台,安装FreeBSD 8.1 64位操作系统; FreeBSD 8.1请到www.freebsd.org下载;VMware Workstation 7.1.1请到网上下载,有破解; 以下的完装配置说明同样适应32...
FreeBSD是一种类UNIX操作系统,但不是真正意义上的UNIX操作系统,它是由经过BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支,它支持 x86 兼容(包括 Pentium® 和 Athlon™)、amd64 兼容(包括 Opteron™、Athlon...