LINUX.ORG.RU

Запуск cgi


0

1

Добрый день, есть две програмки «Hello world!» на с++ (скомпилирована) и на php. Запускаю ab:

ab -n100 http://site.ex/cgi-bin/hello.cgi

Document Path:          /cgi-bin/hello.cgi
Document Length:        13 bytes

Concurrency Level:      1
Time taken for tests:   2.283029 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      13240 bytes
HTML transferred:       1300 bytes
Requests per second:    43.80 [#/sec] (mean)
Time per request:       22.830 [ms] (mean)
Time per request:       22.830 [ms] (mean, across all concurrent requests)
Transfer rate:          5.26 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    20   22   1.5     22      26
Waiting:       19   22   1.5     22      26
Total:         20   22   1.5     22      26

Percentage of the requests served within a certain time (ms)
  50%     22
  66%     23
  75%     23
  80%     24
  90%     24
  95%     24
  98%     24
  99%     26
100%     26 (longest request)

и

ab -n100 http://site.ex/hello.php

Document Path:          /hello.php
Document Length:        12 bytes

Concurrency Level:      1
Time taken for tests:   0.71696 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      14700 bytes
HTML transferred:       1200 bytes
Requests per second:    1394.78 [#/sec] (mean)
Time per request:       0.717 [ms] (mean)
Time per request:       0.717 [ms] (mean, across all concurrent requests)
Transfer rate:          195.27 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0    0   0.2      0       1
Waiting:        0    0   0.1      0       1
Total:          0    0   0.2      0       1

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      0
  95%      0
  98%      1
  99%      1
100%      1 (longest request)

Nginx -> Apache 2 + mod_cgi Для PHP стоит eAccelerator

Что не так? Почему скомпилированная cgi программа работат медленее? Помогите разобраться, спасибо!


Потому что в случае CGI при обработке каждого запроса происходит создание нового процесса.
Накладные расходы на вызов бинарника - это и есть почти все время обработки запросов в первом случае

m0use
()
Ответ на: комментарий от m0use

Именно по этому предлагается использование fastcgi? Потому что тот будет ожидать вызовы и не будет запускать новые процессы в отличии от Apache+mod_cgi?

Guffi
() автор топика
Ответ на: комментарий от Guffi

Да, именно по этому.
В таком случае связка будет, например, вида Nginx <-> spawn-fcgi (для
порождения требуемого количества демонов) + fastcgi-standalone-сервер
(реализующий требуемый функционал).
Также, можно также реализовать это в виде модуля apache. В таком случае
связка останется предыдущего вида.

Оба способа по производительности практически одинаково хороши.
Подробную информацию можно получить, загуглив по ключевым словам.

m0use
()

Спасибо за ответы! Остался небольшой вопрос, а нужно ли будет модифицировать программу (hello.cgi) для запуска через fcgi?

Guffi
() автор топика
Ответ на: комментарий от Guffi

>Остался небольшой вопрос, а нужно ли будет модифицировать программу (hello.cgi) для запуска через fcgi?

да

anonymous
()
Ответ на: комментарий от stevejobs

> мб, потому что http://www.fastcgi.com/drupal/ ?

в случае «Helloword» — PHP сёрвано будет быстрее чем FastCGI C++ :-) [так как в apache_mod_php меньше накладных расходов относительно обоспечения канала обмена информацией]

...однако использовать FastCGI имеет бОльшей смысл чем apache_mod_php , так как отдельный изолированный процесс — этож безопасно(!) какбэ! :-)

да и PHP-5.3 уже умеет работать в режиме FastCGI .. такчто в конечном итоге можно посравнивать производительность:
PHP-over-FastCGI
и
C++-binary-over FastCGI

:-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от Guffi

меня терзают смутные сомненья ) как-то давно пробовал cgi и php были почти на уровне

ELF ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.