与 Apache 相比,Nginx 在 Linux 上的表现是否更好?

2 linux nginx process multi-threading apache-2.2

Apache 与 Nginx 的性能比较是明智的,因为 Apache 基于线程(对于每个新连接一个新线程),而 nginx 基于进程(对于到服务器的每个新连接一个新进程)。因此 Nginx 的性能更好,因为基于进程。但是如果它们部署在 Linux 上有什么关系,因为没有线程的直接概念,并且在 Linux 中线程被映射到内核级别的进程。因此,Linux 上的 Apache 和 Nginx 的性能应该相同,但 Nginx 比 Apache 好,为什么?

ypn*_*nos 13

首先,进程分叉通常比线程更有效是不正确的。这在很大程度上取决于操作系统内核如何处理线程/进程。

众所周知,分叉进程在 Unix 系统上是一项简单、高效的任务,但在 Windows 上却很糟糕。这意味着在 Windows 上使用线程可能会好得多,而在 Unix 上这并不一定意味着线程比进程效率更高或更低。

Apache 2.X 允许以多种模式运行,包括生成进程或使用线程池。

网络上有许多资源可以针对 apache 对 nginx 进行基准测试。由于不同的测试场景,每个基准的使用受到限制:

  • 服务器的配置,尤其是。阿帕奇服务器
  • 要覆盖的工作负载、静态与动态内容等。
  • 基准兴趣:总吞吐量、响应时间、响应时间的变化

留给您的最佳选择是根据您的场景在您的服务器上设计您自己的基准测试。另见这个问题:https : //stackoverflow.com/questions/2528266/how-to-benchmark-apache-nginx-setup