Измерих максималния брой WEB/AP сървъри (Apache и Tomcat), които могат да работят по едно и също време, като използвах VPS сървър под наем.
Дата на публикуване:1 януари 2021 г.
INFOMARTION > Измерих максималния брой WEB/AP сървъри (Apache и Tomcat), които могат да работят по едно и също време, като използвах VPS сървър под наем.
Преглед.
Измерих максималния брой случаи, които WEB/AP сървърите (Apache и Tomcat) могат да обработват по едно и също време, и бих искал да опиша резултатите. Бяхме любопитни за максималния брой заявки, които могат да бъдат обслужени, затова проведохме проучване. Използвайте това като референция за избор на спецификации на VPS сървър.
Този път измерванията бяха извършени на WEB/AP сървърите (Apache и Tomcat), но моля, вижте статията по-долу за измервания само на WEB (Apache).
Съдържание
1. измерване
1-1. Измервателна среда
По-долу е представена средата, в която ще се извършват измерванията.
■Информация за сървъра под наем
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Информация за сървъра
OS | CentOS 7.4 64bit |
---|---|
Уеб сървър | Apache HTTP Server 2.4.41 |
Сървър на AP | Apache Tomcat 9.0.27 |
Сървър на БД | PostgreSQL 10.2 |
Java | OpenJDK 11 |
1-2. Метод на измерване
Искам да измеря това с помощта на JMeter. JMeter е инструмент за измерване на натоварването, който работи в Java. Инструментът позволява едновременното подаване на голям брой заявки. Бихме искали постепенно да увеличим броя на едновременните заявки с помощта на JMeter и да увеличаваме натоварването, докато обработката престане да бъде по силите ни.
Специфичните условия включват.
- интервал на заявката・・・5 сек.
- Брой едновременни заявки・・・10 случая.(Измерванията постепенно се увеличават с по 10 случая.)
- Измерване на времето・・・60 секунди.
Времето за измерване е "60 секунди", а интервалът на заявката - "5 секунди", така че искате да влезете в системата 12 пъти (60÷5) многократно.
1-3. резултат от измерването
В края на краищата много хора се интересуват от заключението за това с какви спецификации може да работи сървърът и колко може да работи, така че бих искал първо да посоча заключението.
CPU:2core memory:1GB SSD:50GB | Могат да се обработват до 80 едновременни заявки |
---|
Резултатите от това измерване показаха горното. Горепосочените резултати позволяват да се направи следното заключение. Опитайте се да използвате това като критерий при избора на спецификации на сървъра.
CPU:1core memory:512MB SSD:25GB | Могат да се обработват до 20 едновременни заявки. |
---|---|
CPU:2core memory:1GB SSD:50GB | Могат да се обработват до 80 едновременни заявки |
CPU:3core memory:2GB SSD:100GB | Могат да се обработват до 200 едновременни заявки. |
Беше установено, че система с размер около 20 потребители ще работи без проблеми с "CPU: 1core", "memory: 512MB" и "SSD: 25GB".
2. Подробности за резултатите от измерванията
Описахме резултатите от измерванията по-рано, но ако се интересувате от вида на резултатите, които сме описали, моля, проверете и подробностите за резултатите от измерванията, които ще бъдат описани в бъдеще.
2-1. WEB/AP сървър (Apache, Tomcat) измервания
Заявката е хвърлена в сценарий, при който потребителят влиза от екрана за влизане и след влизане се показва екранът със списъка. Между другото, екранът е изграден с помощта на рамката Spring, включително функцията за удостоверяване.
Измерванията показаха следните резултати.
- За 10 едновременни заявки⇒OK
- За 20 едновременни заявки⇒OK
- За 30 едновременни заявки⇒OK
- За 40 едновременни заявки⇒OK
- За 50 едновременни заявки⇒OK
- За 60 едновременни заявки⇒OK
- За 70 едновременни заявки⇒OK
- За 80 едновременни заявки⇒OK
- За 90 едновременни заявки⇒NG
Грешка е възникнала при 90-ия случай. Причината беше грешка при свързването с 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 памет.
Изглежда, че Java използва 320 МВ памет (248 МВ за купчина и 72 МВ за метапространство), а Apache - 640 МВ памет (8 МВ x 80 процеса) и въпреки че стойността на настройката MPM на Apache е "250", изглежда, че не може да създаде повече от "80" процеса.
※Сървърът разполага с 1G памет, така че общата памет за Apache и Java е 960MB, което е почти на горната граница.
Сървърът на AP (от страна на Java) работеше добре, така че тясното място беше WEB сървърът (Apache).
Когато Apache и Tomcat са инсталирани и стартирани, установихме, че при спецификациите "CPU: 2core, memory: 1GB, SSD: 50GB", броят на едновременните достъпи "80" е ограничението.(Предполага се, че настройките на паметта за Java са 248 М за купчина и 72 М за метапространство.)
2-2. разглеждане
Оттук нататък това става съображение, но тъй като паметта е тясното място, ако паметта се промени, броят на процесите, които могат да се обработват едновременно, също ще се увеличи.
【Присъстват.(memory1GB)】
- memory:1GB
- Брой нишки на Apache:80 случая.
- Потребление на памет за всяка нишка в Apache.:8MB
- Потребление на памет на Apache:640MB(80 случая.×8MB)
- Потребление на памет на Tomcat:320MB(248 млн. евро за HEAP.、72 м за метапространството.)
- Консумация на памет от Apache+Tomcat:960MB
【след промяната(memory2GB)】
- memory:2GB
- Брой нишки на Apache:200 случая
- Потребление на памет за всяка нишка в Apache.:8MB
- Потребление на памет на Apache:1600MB(200 случая×8MB)
- Потребление на памет на Tomcat:320MB(248 млн. евро за HEAP.、72 м за метапространството.)
- Консумация на памет от Apache+Tomcat:1920MB
С 2 GB памет може да е възможно да се обработват 200 случая едновременно. Ако паметта се увеличи до 3 GB, изглежда, че може да се извършва повече едновременна обработка, но "MaxRequestWorkers (максимален брой случаи, които могат да се обработват едновременно)" на MPM на Apache е "250", така че ще е необходима настройка и тук, ако паметта се увеличи допълнително. Може да е необходима и настройка на паметта на Java. Обратно, ако паметта се намали наполовина, ще се получи следното.
【след промяната(memory512GB)】
- memory:512GB
- Брой нишки на Apache:20 случая
- Потребление на памет за всяка нишка в Apache.:8MB
- Потребление на памет на Apache:160MB(20 случая×8MB)
- Потребление на памет на Tomcat:320MB(248 млн. евро за HEAP.、72 м за метапространството.)
- Консумация на памет от Apache+Tomcat:480MB
3. резюме
Описани са резултатите от измерването на максималния брой случаи, които WEB/AP сървърите (Apache и Tomcat) могат да обработват едновременно. Беше установено, че система с размер около 20 потребители ще работи без проблеми с "CPU: 1core", "memory: 512MB" и "SSD: 25GB".
Изследването се основава на предположението, че никой друг софтуер не работи с минимална производителност. Препоръчително е да се избере спецификация с известна свобода на действие, тъй като това е пределна стойност.
Благодарим ви, че гледахте до края.
■INFORMATION
Моля, кликнете тук, за да преминете към горната страница на ИНФОРМАЦИЯТА.
■PROFILE
■Данни за контакт.
За запитвания относно статията, моля, свържете се с нас тук.