У меня постоянно обновляется веб-сайт в режиме реального времени. Количество ресурсов, необходимых для каждого пользователя, довольно велико, приведу пример.
Настроить
Каждый визит
Это приложение php / mysql, поэтому при каждом посещении загружается статический и динамический контент.
Ресурсы: apache, php, mysql
Каждую секунду (не более секунды будет слишком долго)
Веб-сайт необходимо обновлять в режиме реального времени, поэтому каждую секунду выполняется вызов ajax, который обновляет веб-сайт.
Ресурсы: jQuery, apache, php, mysql
Средние расходы на одного пользователя (потратив одну минуту и посетив 3 страницы)
Оптимизация
Я хочу оптимизировать этот процесс, но думаю, что, может быть, в конце концов все будет так же.
Перед внедрением и тестированием (это займет недели) Я хотел узнать ваше второе мнение, ребята.
Каждый визит
Я хочу начать с nginx спереди и работать как прокси для доставки статического контента.
Источники:
Это сильно снизит нагрузку на apache.
Каждую секунду
Для скрипта, который загружается каждую секунду, я хочу настроить javascript на стороне сервера Node.js с nginx впереди.
Я хочу настроить, чтобы jquery отправлял запрос один раз в минуту, а node.js передавал данные клиенту каждую секунду. Источники: jQuery, nginx, node.js, mysql
Средние расходы на одного пользователя (потратив одну минуту и посетив 3 страницы)
Вопросы
Как вы можете видеть при оптимизации, нагрузка с Apache и PHP снимается и переносится на nginx и node.js. Они известны своей малой занимаемой площадью и хорошей производительностью.
Но у меня есть сомнения, потому что в память еще загружены 2 программы, которые потребляют процессор.
Так что лучше иметь меньше программ, выполняющих эту работу, или больше. Прежде чем я собираюсь потратить много времени на его настройку, я хотел бы знать, стоит ли оно того.
Вот несколько советов, которые могут вам помочь.
Обратите внимание, что несколько копий одного и того же исполняемого файла или общей библиотеки имеют общие сегменты кода. Это означает, что даже если вы выполняете 50 запусков php, исполняемый файл php был прочитан с диска только один раз и только один раз появится в памяти. Каждое выполнение имеет свой собственный сегмент данных, но это должно происходить независимо от того, как вы распределяете данные по нескольким программам.
Так что ответ, как и на многие вопросы по оптимизации, - «это зависит от обстоятельств». Самый простой способ узнать вашу специфику - это запустить несколько тестов производительности с конфигурациями, которые вы рассматриваете, при умеренной или высокой нагрузке, и сравнить общую нагрузку на ЦП / память / диск / сеть.