Я измерил максимальное количество случаев, которые веб-сервер (Apache) может обрабатывать одновременно, используя арендованный сервер VPS.


Дата публикации:31 декабря 2020 года.



INFOMARTION > Я измерил максимальное количество случаев, которые веб-сервер (Apache) может обрабатывать одновременно, используя арендованный сервер VPS.

Обзор.

Я измерил максимальное количество случаев, которые веб-сервер (Apache) может обрабатывать одновременно, и хотел бы написать о результатах. Нам было интересно узнать максимальное количество запросов, которое можно обслужить, поэтому мы провели опрос. Используйте это как справочник для выбора технических характеристик VPS-сервера.

В этот раз измерения проводились только на WEB (Apache), но, пожалуйста, обратитесь к статье ниже для измерений на WEB/AP серверах (Apache и Tomcat).

Я измерил максимальное количество WEB/AP серверов (Apache и Tomcat), которые могут работать одновременно, используя арендованный сервер VPS.

Оглавление

  1. измерение
  2. Подробная информация о результатах измерений
  3. резюме

1. измерение

1-1. Измерительная среда

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

■Информация о сервере аренды

CPU2core
memory1GB
SSD50GB

■Информация о сервере

OSCentOS 7.4 64bit
Веб-серверApache HTTP Server 2.4.41

1-2. Метод измерения

Я хотел бы измерить это с помощью JMeter. JMeter - это инструмент для измерения нагрузки, который работает на языке Java. Инструмент позволяет одновременно бросать большое количество запросов. Мы хотим постепенно увеличивать количество одновременных запросов с помощью JMeter и повышать нагрузку до тех пор, пока обработка не перестанет справляться.

К специфическим условиям относятся.

  • интервал запроса・・・5 сек.
  • Количество одновременных запросов・・・10 случаев.(Измерения постепенно увеличивались на 10 случаев в каждом.)
  • Время измерения・・・60 секунд.

Время измерения - "60 секунд", а интервал запроса - "5 секунд", поэтому вы хотите получить доступ к системе 12 раз (60÷5).

1-3. результат измерения

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

CPU:2core
memory:1GB
SSD:50GB
Одновременно может быть обработано до 120 запросов.

Результаты этого измерения показали вышесказанное. Из приведенных выше результатов можно сделать следующие выводы. Постарайтесь использовать это в качестве критерия при выборе технических характеристик сервера.

CPU:1core
memory:512MB
SSD:25GB
Одновременно может быть обработано до 60 запросов.
CPU:2core
memory:1GB
SSD:50GB
Одновременно может быть обработано до 120 запросов.
CPU:3core
memory:2GB
SSD:100GB
Одновременно может быть обработано до 240 запросов.

Даже со спецификациями "процессор: 1 ядро", "память: 512 МБ" и "SSD: 25 ГБ", было обнаружено, что система из примерно 60 человек может работать без проблем.

2. Подробная информация о результатах измерений

Мы описали результаты измерений ранее, но если вас интересует, какие результаты мы описали, пожалуйста, ознакомьтесь также с подробностями результатов измерений, которые будут описаны в будущем.

2-1. измерения WEB-сервера (Apache)

Повторные запросы были брошены на страницы, созданные в HTML. Это простая страница, не требующая обработки PHP или сложного JavaScript.

Измерения показали следующие результаты.

  • Для 10 одновременных запросов⇒OK
  • Для 20 одновременных запросов⇒OK
  • Для 30 одновременных запросов⇒OK
  • Для 40 одновременных запросов⇒OK
  • Для 50 одновременных запросов⇒OK
  • Для 60 одновременных запросов⇒OK
  • Для 70 одновременных запросов⇒OK
  • Для 80 одновременных запросов⇒OK
  • Для 90 одновременных запросов⇒OK
  • Для 100 одновременных запросов⇒OK
  • 110 одновременных запросов⇒OK
  • Для 120 одновременных запросов⇒OK
  • Для 130 одновременных запросов⇒NG

Ошибка произошла в 130-м случае. Причиной была ошибка соединения с Apache. Состояние сервера в это время было следующим.

  • Загрузка процессора・・・26%
  • скорость использования памяти・・・100%

Узким местом было полное отсутствие памяти.

Для тех, кто не очень в курсе, конфигурация многопроцессорного модуля Apache (MPM) выглядит следующим образом. MPM просто объясняется как настройка того, сколько Apache разрешено обрабатывать параллельно.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

Для параметра "MaxRequestWorkers" интерес представляет значение "250". Это настройка для максимального количества дел, которые Apache может обрабатывать одновременно. '250', поэтому 250 случаев могут быть обработаны максимально параллельно, но если посмотреть на использование памяти, то на каждый случай используется около 8 МБ памяти.

Казалось, что он использует 960 МБ памяти (8M x 120 процессов), а значение настройки было '250', но казалось, что невозможно создать более '120' процессов.
※Память сервера почти достигла своего предела в 1 Гб.

При реальной работе сервера, если PHP и Java также включены, предел составляет около 100 случаев, а если есть место, то 80 случаев могут обрабатываться одновременно параллельно.

Когда установлен и запущен только Apache, с характеристиками "CPU: 2 ядра, память: 1GB, SSD: 50GB", количество одновременных обращений "120" оказалось предельным.

2-2. рассмотрение

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

【Присутствуют.(memory1GB)】

  • memory:1GB
  • Количество потоков Apache:120 случаев
  • Потребление памяти на поток в Apache.:8MB
  • Потребление памяти Apache:960MB(120 случаев×8MB)

【после изменения(memory2GB)】

  • memory:2GB
  • Количество потоков Apache:240 случаев.
  • Потребление памяти на поток в Apache.:8MB
  • Потребление памяти Apache:1920MB(240 случаев.×8MB)

Если увеличить объем памяти до 2 Гб, то можно удвоить количество дел до примерно 240 одновременно. Если увеличить память до 3 ГБ, то, кажется, можно будет выполнять больше одновременной обработки, но "MaxRequestWorkers (максимальное количество одновременно обрабатываемых дел)" в MPM Apache составляет "250", поэтому при дальнейшем увеличении памяти потребуется настройка и здесь. И наоборот, если память уменьшится вдвое, это будет выглядеть следующим образом.

【после изменения(memory512GB)】

  • memory:512GB
  • Количество потоков Apache:60 случаев.
  • Потребление памяти на поток в Apache.:8MB
  • Потребление памяти Apache:480MB(60 случаев.×8MB)

3. резюме

Мы измерили максимальное количество случаев, которые веб-сервер (Apache) может обрабатывать одновременно. Было установлено, что система из примерно 60 человек может без проблем работать с "CPU: 1core", "memory: 512MB" и "SSD: 25GB".

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

Спасибо, что досмотрели до конца.