Ho misurato il numero massimo di server WEB/AP (Apache e Tomcat) che possono gestire contemporaneamente utilizzando un server VPS in affitto.


Data di pubblicazione:1° gennaio 2021.



INFOMARTION > Ho misurato il numero massimo di server WEB/AP (Apache e Tomcat) che possono gestire contemporaneamente utilizzando un server VPS in affitto.

Panoramica.

Ho misurato il numero massimo di casi che i server WEB/AP (Apache e Tomcat) possono elaborare contemporaneamente e vorrei scrivere i risultati. Eravamo curiosi di conoscere il numero massimo di richieste che potevano essere servite, quindi abbiamo condotto un sondaggio. Utilizzatelo come riferimento per la selezione delle specifiche del server VPS.

Questa volta le misurazioni sono state effettuate sui server WEB/AP (Apache e Tomcat), ma si rimanda all'articolo seguente per le misurazioni solo sul WEB (Apache).

Ho misurato il numero massimo di casi che il server web (Apache) può gestire contemporaneamente utilizzando un server VPS in affitto.

Indice dei contenuti

  1. misura
  2. Dettagli sui risultati delle misurazioni
  3. sintesi

1. misura

1-1. Ambiente di misura

L'ambiente in cui verranno effettuate le misurazioni è il seguente.

■Informazioni sul server di noleggio

CPU2core
memory1GB
SSD50GB

■Informazioni sul server

OSCentOS 7.4 64bit
Server webApache HTTP Server 2.4.41
Server APApache Tomcat 9.0.27
Server DBPostgreSQL 10.2
JavaOpenJDK 11

1-2. Metodo di misurazione

Vorrei misurarlo utilizzando JMeter. JMeter è uno strumento di misurazione del carico eseguito in Java. Lo strumento consente di lanciare un gran numero di richieste contemporaneamente. Vorremmo aumentare gradualmente il numero di richieste simultanee utilizzando JMeter e aumentando il carico fino a quando l'elaborazione non può più essere gestita.

Le condizioni specifiche includono.

  • intervallo di richiesta・・・5 sec.
  • Numero di richieste simultanee・・・10 casi.(Le misure sono aumentate gradualmente di 10 casi ciascuna.)
  • Misurare il tempo・・・60 secondi.

Il tempo di misurazione è "60 secondi" e l'intervallo di richiesta "5 secondi", quindi si desidera accedere al sistema 12 volte (60÷5) ripetutamente.

1-3. risultato della misurazione

Alla fine, molte persone sono interessate alla conclusione di quali specifiche il server può gestire e quanto può gestire, quindi vorrei dichiarare prima la conclusione.

CPU:2core
memory:1GB
SSD:50GB
È possibile elaborare fino a 80 richieste simultanee

I risultati di questa misurazione hanno mostrato quanto sopra. I risultati di cui sopra suggeriscono che si può dedurre quanto segue. Cercate di utilizzare questo criterio nella scelta delle specifiche del server.

CPU:1core
memory:512MB
SSD:25GB
È possibile elaborare fino a 20 richieste simultanee.
CPU:2core
memory:1GB
SSD:50GB
È possibile elaborare fino a 80 richieste simultanee
CPU:3core
memory:2GB
SSD:100GB
È possibile elaborare fino a 200 richieste simultanee.

È stato rilevato che un sistema con una dimensione di circa 20 utenti funzionerebbe senza problemi con "CPU: 1core", "memoria: 512MB" e "SSD: 25GB".

2. Dettagli sui risultati delle misurazioni

Abbiamo descritto i risultati delle misurazioni in precedenza, ma se siete interessati al tipo di risultati che abbiamo descritto, vi invitiamo a controllare i dettagli dei risultati delle misurazioni che verranno descritti in futuro.

2-1. Misure del server WEB/AP (Apache, Tomcat)

La richiesta è stata lanciata in uno scenario in cui l'utente accede dalla schermata di login e dopo l'accesso viene visualizzata la schermata dell'elenco. Tra l'altro, la schermata è costruita utilizzando il framework Spring, compresa la funzione di autenticazione.

Le misurazioni hanno dato i seguenti risultati.

  • Per 10 richieste simultanee⇒OK
  • Per 20 richieste simultanee⇒OK
  • Per 30 richieste simultanee⇒OK
  • Per 40 richieste simultanee⇒OK
  • Per 50 richieste simultanee⇒OK
  • Per 60 richieste simultanee⇒OK
  • Per 70 richieste simultanee⇒OK
  • Per 80 richieste simultanee⇒OK
  • Per 90 richieste simultanee⇒NG

Si è verificato un errore al 90° caso. La causa era un errore di connessione ad Apache. Lo stato del server in quel momento era il seguente.

  • Utilizzo della CPU・・・26%
  • utilizzo della memoria・・・100%

Il collo di bottiglia era rappresentato dalla totale mancanza di memoria.

Per i più smanettoni, la configurazione di Apache Multi-Processing Module (MPM) è la seguente. L'MPM è semplicemente spiegato come l'impostazione di quanto Apache è autorizzato a elaborare in parallelo.

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

L'impostazione di interesse è "250" per "MaxRequestWorkers". Si tratta di un'impostazione per il numero massimo di casi che Apache può elaborare contemporaneamente. '250', in modo da poter elaborare al massimo 250 casi in parallelo, ma osservando l'utilizzo della memoria, sono stati utilizzati circa 8 MB di memoria per ogni caso.

Java sembrava utilizzare 320MB di memoria (248M per l'heap e 72M per il metaspazio) e Apache 640MB di memoria (8M x 80 processi), e sebbene il valore di MPM di Apache sia '250', sembrava che non potesse creare più di '80' processi.
※Il server ha 1G di memoria, quindi la memoria totale per Apache e Java è di 960MB, che è quasi al limite massimo.

Il server AP (lato Java) funzionava bene, quindi il collo di bottiglia era il server WEB (Apache).

Quando Apache e Tomcat sono installati e funzionanti, abbiamo scoperto che con le specifiche "CPU: 2core, memoria: 1GB, SSD: 50GB", il numero di accessi simultanei "80" è il limite.(L'ipotesi è che le impostazioni di memoria per Java siano 248M per l'heap e 72M per il metaspazio.)

2-2. considerazione

Da qui diventa una considerazione, ma poiché la memoria è il collo di bottiglia, se la memoria viene modificata, aumenterà anche il numero di processi che possono essere elaborati simultaneamente.

【Presente.(memory1GB)】

  • memory:1GB
  • Numero di thread Apache:80 casi.
  • Consumo di memoria per thread in Apache.:8MB
  • Consumo di memoria di Apache:640MB(80 casi.×8MB)
  • Consumo di memoria di Tomcat:320MB(248 milioni di euro per HEAP.、72 m per il metaspazio.)
  • Consumo di memoria di Apache+Tomcat:960MB

【dopo la modifica(memory2GB)】

  • memory:2GB
  • Numero di thread Apache:200 casi
  • Consumo di memoria per thread in Apache.:8MB
  • Consumo di memoria di Apache:1600MB(200 casi×8MB)
  • Consumo di memoria di Tomcat:320MB(248 milioni di euro per HEAP.、72 m per il metaspazio.)
  • Consumo di memoria di Apache+Tomcat:1920MB

Con 2 GB di memoria, è possibile elaborare 200 casi contemporaneamente. Se la memoria viene aumentata a 3 GB, sembra che si possa eseguire una maggiore elaborazione concorrente, ma il "MaxRequestWorkers (numero massimo di casi da elaborare in modo concorrente)" dell'MPM di Apache è "250", quindi sarà necessaria una messa a punto anche in questo caso se la memoria viene aumentata ulteriormente. Potrebbe essere necessaria anche una messa a punto della memoria Java. Al contrario, se la memoria viene dimezzata, la situazione è la seguente.

【dopo la modifica(memory512GB)】

  • memory:512GB
  • Numero di thread Apache:20 casi
  • Consumo di memoria per thread in Apache.:8MB
  • Consumo di memoria di Apache:160MB(20 casi×8MB)
  • Consumo di memoria di Tomcat:320MB(248 milioni di euro per HEAP.、72 m per il metaspazio.)
  • Consumo di memoria di Apache+Tomcat:480MB

3. sintesi

Vengono descritti i risultati della misurazione del numero massimo di casi che i server WEB/AP (Apache e Tomcat) possono elaborare contemporaneamente. È stato rilevato che un sistema con una dimensione di circa 20 utenti funzionerebbe senza problemi con "CPU: 1core", "memoria: 512MB" e "SSD: 25GB".

Il sondaggio si basa sul presupposto che nessun altro software stia funzionando a prestazioni marginali. Si consiglia di scegliere una specifica con un po' di margine, poiché si tratta di un valore marginale.

Grazie per aver guardato fino alla fine.




■INFORMATION

Fare clic qui per accedere alla pagina superiore di INFORMAZIONI.


■PROFILE

Cliccare qui per un profilo.


■Dettagli di contatto.

Per richieste di informazioni sull'articolo, contattateci qui.