Количество одновременных подключений php

PHP Apache увеличивает максимальное количество одновременных подключений на клиент

Я хотел бы запустить десятки долгосрочных PHP-скриптов одновременно, используя XAMPP. Каждый скрипт выполняется более 2 часов и не использует сессии, куки и т. Д.

Для моего первого теста я попытался открыть 10 из этих скриптов в своем браузере, но только первые шесть, которые я открыл, фактически начали выполнение (я знаю это, потому что в начале каждого скрипта я немедленно открываю файл для записи статуса там обновлений — ни один из скриптов не пишется, кроме первых 6).

Есть ли код, который я могу поместить в верхней части каждого скрипта, или какие-либо настройки PHP, которые я могу изменить, или любые другие способы сделать это так, чтобы я мог одновременно запускать столько скриптов PHP, сколько захочу?

РЕДАКТИРОВАТЬ Вот как это сделать:

1) Загрузите PowerShell 2 (или совместимую версию с вашей версией Windows) здесь: http://support.microsoft.com/kb/968929

2) Установите его и перезагрузите компьютер.

3) Создайте новый файл «example.ps1» и сохраните его в каталоге по вашему выбору (например, c:\examples\example.ps1). Поместите этот код в этот файл:

start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\1.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\2.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\3.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\4.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\5.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\6.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\7.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\8.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\9.php>start-job <.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\10.php>start-job

4) Нажмите «Пуск» -> «Выполнить» и введите «powershell» (без кавычек).

5) После запуска PowerShell введите следующее и нажмите enter:

Set-ExecutionPolicy RemoteSigned 

Затем нажмите «y», чтобы установить изменения.

6) Теперь введите (обязательно введите полный путь к файлу):

7) Чтобы увидеть свою работу, просто введите:

Чтобы остановить работу, используйте эту команду:

Источник

Настройка Apache HTTP с MPM Event и PHP-FPM в Ubuntu 18.04

Настройка Apache HTTP с MPM Event и PHP-FPM в Ubuntu 18.04

Веб-сервер Apache HTTP эволюционировал все это время и теперь позволяет работать в разных средах и решать разные задачи. Важной проблемой, которую должен решать Apache HTTP, как и любой веб-сервер, является управление различными процессами для обслуживания запросов протокола http. Это подразумевает открытие сокета, обработку запроса, поддержание открытого подключения на определенный период, обработку новых событий, возникающих во время этого подключения, а также возврат контента, произведенного программой на определенном языке (например PHP, Perl или Python). Эти задачи выполняются и контролируются мультипроцессными модулями (MPM).

Apache HTTP поставляется с тремя различными MPM:

  • Pre-fork​​​: новый процесс создается для каждого входящего подключения к серверу. Каждый процесс изолирован от других процессов, то есть у них нет общей памяти, даже если они выполняют идентичные вызовы в определенный момент выполнения. Это безопасный способ запуска приложений, связанных с библиотеками, которые не поддерживают поточную обработку, обычно более старыми приложениями или библиотеками.
  • Worker: родительский процесс отвечает за запуск дочерних процессов, некоторые из которых ожидают новые входящие подключения, а другие обслуживают запрашиваемый контент. Каждый процесс является поточным (один поток может обрабатывать одно подключение), поэтому один процесс может обрабатывать несколько запросов параллельно. Этот метод обработки запросов обеспечивает более рациональное использование ресурсов и в то же время поддерживает стабильность. Это происходит из-за наличия пула имеющихся процессов, у которых зачастую есть свободные потоки, готовые сразу же обслуживать новые подключения.
  • Event​​​: этот MPM, основанный на worker, идет на шаг вперед, обеспечивая оптимизацию того, как родительский процесс распределяет задачи для дочерних процессов, а также связанные с ними потоки. Подключение остается открытым по умолчанию в течение 5 секунд и закрывается при отсутствии новых событий. Это управляющее значение по умолчанию с постоянным соединением, которое сохраняет потоки, связанные с ним. MPM Event позволяет процессу управлять потоками таким образом, что некоторые потоки могут свободно обрабатывать новые входящие подключения, в то время как другие остаются привязаны к активным подключениям. Возможность повторного распределения назначенных задач для потоков обеспечивает более рациональное использование ресурсов и повышает производительность.

Модуль MPM Event​​​ — это быстрый мультипроцессный модуль, доступный на веб-сервере Apache HTTP.

PHP-FPM — диспетчер процессов FastCGI для PHP. Протокол FastCGI основан на интерфейсе стандарта CGI (интерфейс общего шлюза), протоколе, который находится между приложениями и веб-серверами, например Apache HTTP. Это позволяет разработчикам писать приложения независимо от поведения веб-серверов. Программы запускают свои процессы независимо и передают свой продукт на веб-сервер посредством этого протокола. Каждое новое подключение, которое нуждается в обработке приложением, создаст новый процесс.

При сочетании MPM Event в Apache HTTP с диспетчером процессов PHP FastCGI (PHP-FPM) веб-сайт может выполнять загрузку быстрее и обрабатывать больше одновременных подключений и при этом использовать меньше ресурсов.

В этом обучающем модуле мы повысим производительность стека LAMP путем изменения мультипроцессного модуля с pre-fork на event и использования диспетчера процессов PHP-FPM для обработки кода PHP вместо классического mod_php в Apache HTTP.

Предварительные требования

Для прохождения этого обучающего руководства вам потребуется следующее:

  • Один сервер Ubuntu 18.04, настроенный в соответствии с руководством по начальной настройке сервера Ubuntu 18.04, включая пользователя non-root user с привилегиями sudo и брандмауэр.
  • Стек LAMP, установленный на вашем сервере в соответствии с указаниями руководства Установка Linux, Apache, MySQL, PHP (стека LAMP) на Ubuntu 18.04.

Шаг 1 — Изменение мультипроцессного модуля

Ubuntu наследует скрипты для включения или отключения модулей Apache HTTP из его родительского дистрибутива Debian. Вы будете использовать этот набор инструментов на этом этапе для отключения модуля Pre-fork и включения модуля Event.

В этом шаге вы остановите Apache HTTP, отключите модуль PHP 7.2 , привязанный к модулю Pre-fork, и затем отключите Pre-fork, чтобы сразу же включить модуль Event.

Вначале вы остановите службу Apache HTTP:

Теперь вы можете отключить модуль PHP 7.2 , который связан с модулем Pre-fork:

Затем отключите модуль MPM Pre-fork:

Теперь активируйте модуль MPM Event:

Вы изменили MPM с pre-fork на event и удалили соединение модуля PHP 7.2 между PHP и Apache HTTP. В следующем шаге вы установите модуль php-fpm , а также связанные библиотеки и прокси-модули. Вы настроите Apache HTTP, чтобы он мог взаимодействовать также с PHP.

Шаг 2 — Настройка Apache HTTP для использования диспетчера процессов FastCGI

На этом этапе вы изменили способ подключений процессов Apache HTTP, переключив MPM Pre-fork на Event. Однако вы также отключили модуль PHP, который соединял Apache HTTP со всеми программами, выполняемыми на PHP.

На этом этапе вы установите процессор PHP-FPM, чтобы Apache HTTP опять смог обрабатывать программы PHP. Также вы установите библиотеки зависимостей и активируйте модули, чтобы они могли работать более слаженно и быстро, чем ранее.

Вначале установите php-fpm . Следующая команда установит пакет PHP-FPM, и он автоматически активирует службу php7.2-fpm , интегрированную с systemd, чтобы служба запускалась во время загрузки:

Для обмена данными для Apache HTTP и PHP потребуется библиотека, обеспечивающая эту возможность. Теперь вы установите libapache2-mod-fcgid , который может служить интерфейсом между программами с веб-серверами и является характерным для Apache HTTP. Этот обмен данными будет происходить через сокет UNIX.

Установите эту библиотеку:

Вы установили php-fpm и libapache2-mod-fcgid , но они еще не активированы.

Вначале активируйте модуль php-fpm с помощью следующей команды:

Затем активируйте модуль proxy Apache HTTP:

Теперь активируйте модуль proxy FastCGI в Apache HTTP:

Примечание. Вы можете прочитать конфигурацию этого взаимодействия между программами PHP и Apache HTTP через сокет UNIX с помощью следующего:

Теперь все готово, и можно запускать Apache HTTP. Сначала выполните проверку конфигурации:

После этого можно перейти к повторному запуску Apache HTTP, поскольку он был автоматически запущен при установке библиотеки FastCGI libapache2-mod-fcgid ​​​:

Вы установили модуль php-fpm , настроили Apache HTTP для работы с ним, активировали необходимые модули для работы протокола FastCGI, а также запустили соответствующие службы.

Теперь Apache имеет активированный модуль MPM Event, присутствует и работает PHP-FPM, и сейчас самое время проверить, что все работает должным образом.

Шаг 3 — Проверка конфигурации

Чтобы проверить, что изменения конфигурации вступили в силу, вы выполните несколько тестов. Первый проверит, какой мультипроцессный модуль использует Apache HTTP. Второй проверит, что PHP использует менеджер FPM.

Проверьте сервер Apache HTTP, выполнив следующую команду:

Вывод будет выглядеть следующим образом:

Output
mpm_event_module (shared)

Вы можете повторить то же самое для модуля proxy и FastCGI:

Результат будет выглядеть так:

Output
proxy_module (shared) proxy_fcgi_module (shared)

Если вы хотите увидеть весь список модулей, можно удалить вторую часть команды после -M .

Теперь пришло время проверить, использует ли PHP диспетчер процессов FastCGI. Для этого вы напишете небольшой скрипт PHP, который покажет вам всю информацию, связанную с PHP.

Запустите следующую команду, чтобы написать файл с именем:

Добавьте в файл info.php следующие строки:

Теперь откройте URL-адрес вашего сервера и добавьте info.php в конец следующим образом: http:// your_domain /info.php .

Запись API сервера будет FPM/FastCGI​​​.

Экран PHP, запись API сервера FPM/FastCGI​​

Удалите файл info.php после этой проверки, чтобы в общем доступе не отображалась никакая информация о сервере:

Вы проверили рабочий статус модуля MPM, модули, обрабатывающие FastCGI, а также обработку кода PHP.

Заключение

Вы оптимизировали стек LAMP, поэтому количество подключений для создания новых процессов Apache HTTP увеличилось, PHP-FPM обрабатывает код PHP более эффективно, и в общем ресурсы стали использоваться рациональнее.

Дополнительную информацию о разных модулях и связанных проектах можно найти в документации по проекту сервера Apache HTTP.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Источник

Максимальный лимит подключения на сервере php apache

У меня есть сервер ubuntu 32 ГБ, на котором размещен мой сайт. Я установил XAMPP и запустил свой сайт. Итак, вот мой вопрос: каков предел максимального количества одновременных подключений, которые будет обрабатывать apache, и как я могу это проверить? Насколько я могу его увеличить и как? На моем сервере одновременно должно быть 5000 одновременных пользователей, поэтому для этого мне нужно его настроить.

Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете.

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции — это способ манипулировать массивами и играть с массивами данных. Благодаря.

PHP — это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать.

Laravel Scout — это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он.

Ответы 1

(Total available memory - Memory needed by operating system) / memory each PHP process needs. 

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

Однако вы также можете перевернуть его. 5000 одновременных запросов — это, откровенно говоря, много, поэтому я использую 5000 одновременных пользователей.

Скажем, 5000 пользователей активно используют ваше приложение в данный момент, и, возможно, они делают в среднем каждый 1 запрос каждые 30 секунд или около того. И скажем, что в среднем PHP-скрипт выполняется за 100 мсек.

Это около 166 запросов в секунду, сделанных вашими пользователями. Учитывая, что для выполнения запроса требуется 100 мс, это означает, что вам нужно около 17 подключений для обслуживания всего этого. Что легко для любого старого сервера.

В любом случае, ключ ко всем этим типам дилемм заключается в следующем:

в моем старом проекте у меня такая же конфигурация сервера, но для 5000 пользователей он начал показывать слишком много ошибок HTTP-соединения, поэтому мне нужна информация о том, как увеличить максимальное количество одновременных подключений на сервере xampp apache, вы знаете об этом? У меня есть Google, но я новичок в серверах, поэтому не понимаю.

Нет, извините, я не использую XAMPP. Я обычно использую для этого собственные пакеты ubuntu.

Источник

Читайте также:  Template form html php
Оцените статью