5

Lighttpd、nginx 等使用一系列技术来提供最大的应用程序性能,例如 AIO、sendfile、MMIO、缓存和 epoll 以及无锁数据结构。

我和我的同事编写了一个小型应用服务器,它使用了许多这些技术,也可以服务器静态文件。因此,我们使用 apache bench 对其进行了测试,并将我们的与 lighttpd 和 nginx 进行了比较,并且至少与 100 字节到 1K 文件的静态内容的性能相匹配。

但是,当我们将相同静态文件的交易率与 G-WAN 进行比较时,G-WAN 遥遥领先。

我知道这个问题可能有点主观,但是除了我提到的那些显而易见的技术之外,Pierre Gauthier 可能会在 GWAN 中使用哪些技术来使他能够实现如此惊人的性能?

4

2 回答 2

4

多年来一直关注 G-WAN 服务器,我在旧的 G-WAN 论坛上阅读了(许多)关于这个问题的演讲。

据我所知,反复提到的是这个程序:

  1. 架构(具体对比了 nginx、lighty 和 cherokee)
  2. 实施(如何进行整体分支、请求解析和响应构建)
  3. 精益公共路径(所有类型请求所遵循的路径:动态、静态、处理程序)

Pierre 经常提到其他服务器来解释他们的特定架构和实现中是什么让他们慢了下来。

随着时间的推移,由于 G-WAN 似乎堆叠了越来越多的功能(C# 脚本支持、反向代理和负载均衡器预计将在下一个版本中出现),因此上述 3 点似乎越来越重要。

这可能就是为什么每个新版本的 G-WAN 似乎都愿意比以前更快的原因:你做的工作越多,必须消除的额外脂肪就越多,因为它的成本越来越高。就像赛车或飞机一样,这是一个渐进的过程,一个需要更多的另一个。

如果您正在寻找 G-WAN 速度的“秘密”,那么我想这就是关键所在。但是,如果您想了解更多详细信息,那么您应该直接与 G-WAN 作者交谈。

于 2012-09-19T07:35:06.830 回答
1

查看 G-WAN 的时间表。2011 年 8 月 8 日的更新可能会让您了解他正在使用什么。

G-WAN 时间线

Pierre 提到 G-WAN 在 G-WAN 的核心功能上大量使用了它的免等待键值存储。由于没有使用锁,因此速度更快。

他还使用 Lorenz Waterwheel 启发的技术来处理线程。我不确定它是如何工作的,但他说它允许 G-WAN 在所有可能的情况下运行得更快。

于 2012-09-25T16:39:59.170 回答