【问题标题】:Apache (ab): mod_fcgid 4x slower than mod_cgiApache (ab):mod_fcgid 比 mod_cgi 慢 4 倍
【发布时间】:2017-07-23 12:16:17
【问题描述】:

用于:常规 cgi + 快速 cgi 的模块

LoadModule cgi_module modules/mod_cgi.so
LoadModule fcgid_module modules/mod_fcgid.so

用于常规和快速 cgi 的测试文件夹。

DocumentRoot "/test"

<Directory "/test/rc">
    Require all granted
    Options +ExecCGI
    SetHandler cgi-script
</Directory>


<Directory "/test/fc">
    Require all granted
    Options +ExecCGI
    SetHandler fcgid-script
</Directory>

C 测试脚本:常规 cgi + 快速 cgi(命名:1.c)

常规 cgi:

#include <stdio.h>

int main(void) {
  printf("Content-Type: text/plain;\n\n");
  printf("ttt\n\n");
  return 0;
}

fcgi(快速 Cgi)

#include <stdio.h>
#include <fcgi_stdio.h>

int main(void) {
while (FCGI_Accept() >= 0) { 
  printf("Content-Type: text/plain;\n\n");
  printf("ttt\n\n");
  return 0;
}
}

使用常规 cgi 进行基准测试:(3.61 秒

 ab -n 10 -c 10 http://<ip>/rc/1
 Time taken for tests:   3.613 seconds

快速 cgi 的基准测试:(13.23 秒

 ab -n 10 -c 10 http://<ip>/fc/1
 Time taken for tests:   13.233 seconds

【问题讨论】:

    标签: c apache fastcgi httpd.conf mod-fcgid


    【解决方案1】:

    你应该调用FCGI_Finish()而不是return 0;,否则你的程序在退出前只处理一个请求。

    【讨论】:

      猜你喜欢
      • 2021-04-12
      • 2020-04-12
      • 2019-03-07
      • 2016-12-23
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多