发挥你的思维,没有做不到的事情

在新的一年,Yo2 的服务器压力比以前大多了。为了能够提供快度的博客访问,我们使用了多种服务软件。比如 nginxsquidlighttpd等,这些在 linux 系统上的性能都是十分棒的 :) 不过我们还在追求更快、更高效率的解决方案。

我作为一个开发员,想法又特别的多 _-!! 居然想到自己写个 web server _-!! 汗~

有了想法当然必须做出行动 :) 立刻到网上查找相关资料,首先从英文网站出发(国外的开源项目多,并且代码都很好),逛了一整天,终于找到一个国人写的 epoll 代码模型。因为只是个模型,根本没有任何业务处理能力,这些就得自己写了 :) 花费2天 时间,就在这个基础模型上实现了 web server 功能。

yo2pagengine 终于面世 :) 不到 1000 行代码,当然还有很多功能没加进去,但已经可以实现基本的 web server 服务。

我使用了 siege web 服务压力测试软件,测试了一下 yo2pagengine 的性能。在 gdb 调试进程内服务,得出的成绩是每秒处理 150 个请求。我把该结果告诉了 charles 和一个熟悉 web 系统的网友,都觉得这个成绩很棒咯。呵呵,但这个数据只是我在 debug 模式测试出来的,真正的业务处理能力在下面:

$:siege -c 300 -r 100 -f oneoo.com.url (包含350个URL)

Transactions: 30000 hits
Availability: 100.00 %
Elapsed time: 83.53 secs
Data transferred: 217.47 MB
Response time: 0.07 secs
Transaction rate: 359.15 trans/sec
Throughput: 2.60 MB/sec
Concurrency: 25.49
Successful transactions: 30000
Failed transactions: 0
Longest transaction: 13.77
Shortest transaction: 0.00

处理能力达到每秒处理 360 个请求 !哇~这个成绩是在我自己的电脑上测试的,web server 和 siege 都开在同一个电脑上,还有 linux 效率比较低的 X (在我的电脑上,Vista 运行起来比它流畅多了,很不解,怎么人人都说它性能好)如果是在真正的服务器上使用,肯定不只这个成绩 :)

下面才是本文主要部分:

其实我也不熟悉C语言,只能算入门。但还是顺利实现了自己的需要的功能 :)

这么多的编程语言,人是不可能全都熟悉的,问题是人的思维是否灵活。

不要担心前路是否平坦,只有踏出了第一步,你才真正知道这条路的好坏,遇到什么问题,尽努力逐一解决,方可实现自己的目标。但如果你连第一步都无法踏出去,你连成功的机会都没了。