Возможный дубликат:
Как вы выполняете нагрузочное тестирование и планирование емкости для веб-сайтов
Я надеюсь, что это подходящее место, чтобы спросить об этом. Я разместил его в веб-приложениях, и он был закрыт без рекомендации, где его разместить. Надеюсь, люди здесь будут добрее.
У меня есть приложение, для которого я собираю показатели использования. Метрики отправляются в БД MySQL через скрипты PHP. Все это работает на микроинстансе AWS EC2.
Мой вопрос: у меня есть около 10 показателей, которые я хочу собрать. Могу ли я лучше разбить сценарии PHP на 10 отдельных блоков, каждый из которых записывает одну метрику в БД, или написать один монолитный сценарий PHP для их всех?
Меня не волнует сложность или сложность поддержки 10 скриптов, меня волнует масштабируемость для ТОННЫ пользователей. Что лучше: иметь больше скриптов для обслуживания многих людей или один скрипт для обслуживания множества людей? Обычно, если 10 человек используют наше приложение, каждый из которых использует разные показатели, один метод будет обслуживать одну и ту же страницу 10 раз, а другой - по одной странице один раз для каждого пользователя.
Что работает лучше?
Спасибо за любой вклад!
Крис
Прежде всего, я считаю, что этот сайт (ServerFault) - подходящее место, чтобы задать свой вопрос, если вы беспокоитесь о том, как настроить и развернуть свой веб-сервер (SF - это место системного администратора). Если окажется, что у вас есть больше вопросов по кодированию (как мне сделать это правильно в php), вы можете опубликовать его в StackOverflow, который больше предназначен для проблем с программированием.
Но на ваш главный вопрос ответ, к сожалению, Это зависит(тм). Одно существенное различие между вашим исходным вопросом и вашим обсуждением в комментариях заключается в том, что использование PHP для публикации обновлений в базе данных значительно отличается от обслуживания одного файла или нескольких файлов с веб-сервера. Причина в том, что хорошо настроенное приложение php будет работать внутри процесса веб-сервера (например, mod_php в Apache) и, таким образом, будет поглощать процессорное время веб-сервера, а бинарные библиотеки PHP также будут загружены в память.
Однако это «прямые затраты» на запуск вашего веб-приложения. Они не изменятся существенно, независимо от того, есть ли у вас один скрипт PHP с логикой диспетчеризации или несколько разных одноцелевых скриптов.
Чтобы сделать действительно широкое обобщение, самая медленная и наиболее требовательная к ресурсам часть многих веб-приложений - это этап, на котором они подключаются к базе данных. Это причина того, что существует так много фреймворков приложений, тесно интегрированных с веб-серверами или серверами приложений: чтобы воспользоваться преимуществами объединения ресурсов для этих дорогостоящих задач настройки. Опять же, предполагая, что вы запускаете свое приложение в Apache с помощью mod_php, это, вероятно, будет выполнено автоматически или, по крайней мере, будет сделано довольно просто.