Назад | Перейти на главную страницу

В чем разница между «статическими» и «динамическими» приложениями FastCGI с точки зрения производительности и стабильности?

Я хотел бы знать, что следует учитывать при выборе между настройкой приложения как статического или как динамического на сервере Apache 2, который использует mod_fastcgi. Это типичное приложение для создания отчетов, написанное на Perl с MySQL в качестве бэкэнда с довольно средним трафиком. Я буду рад услышать ваш опыт использования FastCGI в таком сценарии.

Ни один из них на самом деле не установил характеристики производительности или масштабируемости, оторванные от контекста вашего приложения и его среды. Что будет работать лучше, зависит от того, что у вас происходит.

Статический: установите количество процессов приложения, которые постоянно работают. В пользу этого можно привести следующие условия:

  1. Вы можете позволить себе иметь достаточное количество экземпляров приложения, постоянно висящих вокруг, чтобы быстро обслуживать столько трафика, сколько вы когда-либо получали, по какой-либо причине (машине не нужно больше ничего делать, вы никогда не получите столько трафика, у машины много лишних ресурсов, что там у вас).
  2. Экземпляр процесса приложения требует значительного времени запуска, и он будет раздражать ваших пользователей.
  3. Этому приложению необходимо, чтобы на машине всегда была определенная доля ресурсов, используемых этим приложением, чтобы другие задания могли выполняться без чрезмерного вмешательства.

Динамический: переменное количество процессов приложения, которые запускаются по запросу и завершаются, когда не используются. В пользу этого можно привести следующие условия:

  1. Ваш трафик очень резкий (самоподобный), поэтому важно иметь возможность запускать больше процессов приложения для его обработки.
  2. Экземпляр процесса приложения запускается очень быстро, поэтому он не причинит большого вреда, если его нужно создать для обработки запроса.
  3. Машине нужны свои ресурсы для других целей, поэтому приятно высвободить их, когда это возможно, но можно впитать их много для этого приложения, когда у него большой трафик.