8

我想起了一个非常快的 Linux 内核模块,称为“TUX”,用于静态文件,以回答 IIS 优于 Linux 静态文件 Web 服务的性能并解决“C10K 问题”。现在我不断看到:

  1. Nginx
  2. 轻量级
  3. CDN

...用于“快速静态文件服务”。如果您的操作系统具有正确的功能,那么快速提供静态文件并不困难。自从发明了 IO 完成端口、重叠 I/O 等以来,Windows 就有了。

Tux 是否因为安全隐患而死?将 Kqueue/Epoll 与 Sendfile 之类的功能相结合,是否已经过时?提供 100% 静态内容的最佳解决方案是什么——比如用 50 张左右的图像打包来模拟“翻书”电影。

我理解这是“与服务器相关”的问题,但这也是理论上的。如果它是纯静态的,CDN 真的会更好吗?

4

3 回答 3

4

主要是因为 Ingo Molnár 停止了它的工作。为什么?我相信这是因为内核版本2.2实现了与Tuxsendfile(2)先前获得的巨大性能优势相匹配(大约)的调用。请注意,Tux 2.0 参考手册的日期为 2001 年。

于 2013-12-08T11:48:17.967 回答
1

由于 sendfile(),不再需要 Tux。Nginx 充分利用了这一点,而 IMO 是静态或非静态内容的最佳 Web 服务器之一。我发现 lighttpd、ymmv 存在内存问题。

CDN 的全部目的是将“网络服务器”移动到更靠近最终用户浏览器的位置。这意味着更少的网络跃点和更少的往返延迟,而无需您在世界各地托管多个 Web 服务器并使用地理 dns 将用户发送到最近的地方。请注意,由于这些 Web 服务器不在您的控制范围内,它们可能会超载,并且如果它们的网络超载,则可能会减少跳数减少的好处。CDN 通常是 DDOS 攻击的目标,您可能会陷入与您的内容无关的事情中。

于 2013-12-08T22:54:31.490 回答
1

服务一个静态文件有三个步骤:决定发送哪个文件,决定是否发送文件,发送文件。现在 Tux 在发送文件方面做得非常好,所以决定发送哪个文件,以及决定是否发送文件的糟糕工作。这些决定是政策问题,应该在用户空间中完成。添加 sendfile,我可以在短时间内编写几乎与 tux 一样好的服务器,并且无需重新编译内核即可添加内容。也许是 sql 日志记录。只是想到从内核进行的用户空间 sql 调用让我的眼睛抽搐。

于 2013-12-08T16:06:58.183 回答