Измерих максималния брой случаи, които уеб сървърът (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 ядро", "памет: 512MB" и "SSD: 25GB" беше установено, че система от около 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%

Пълната липса на памет беше пречката.

Конфигурацията на многопроцесорния модул (MPM) на Apache е следната. MPM се обяснява просто като настройка на това колко паралелно може да обработва Apache.

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

Интересна е настройката "250" за "MaxRequestWorkers". Това е настройка за максималния брой случаи, които Apache може да обработва едновременно. '250', така че 250 случая могат да бъдат обработени максимално паралелно, но ако погледнем използването на паметта, за всеки случай се използват около 8 MB памет.

Изглежда, че използва 960 MB памет (8M x 120 процеса), а стойността на настройката е "250", но изглежда, че не е възможно да се създадат повече от "120" процеса.
※Паметта на сървъра е почти достигнала лимита си от 1G.

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

Когато е инсталиран и работи само Apache със спецификации "CPU: 2core, memory: 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 GB, може да е възможно да се удвои броят на случаите до около 240 едновременно. Ако паметта се увеличи до 3 GB, изглежда, че може да се извършва повече едновременна обработка, но "MaxRequestWorkers (максимален брой случаи, които могат да се обработват едновременно)" на MPM на Apache е "250", така че ще е необходима настройка и тук, ако паметта се увеличи допълнително. И обратното, ако паметта се намали наполовина, ситуацията ще бъде следната.

【след промяната(memory512GB)】

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

3. резюме

Измерихме максималния брой случаи, които уеб сървърът (Apache) може да обработва едновременно. Беше установено, че система от около 60 души може да се управлява без проблеми с "процесор: 1 ядро", "памет: 512MB" и "SSD: 25GB".

Изследването се основава на предположението, че никой друг софтуер не работи с минимална производителност. Препоръчително е да се избере спецификация с известна свобода на действие, тъй като това е пределна стойност.

Благодарим ви, че гледахте до края.