Se sei un webmaster, potresti essere spesso preoccupato per le prestazioni delle tue applicazioni web. Potresti porre domande come "come eseguo il test di carico della mia applicazione?" o "la mia applicazione sarà in grado di gestire molti utenti?" In questi casi, Apache Bench può essere di grande aiuto. Apache Bench è uno strumento gratuito e open source per misurare le prestazioni di un server Web con un'interfaccia a riga di comando semplice e facile da usare; può aiutarti a capire come funziona la tua attuale installazione di Apache.
In questo tutorial, ti mostreremo come installare e utilizzare Apache Bench su Linux.
Prerequisiti
- Un nuovo VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud.
- Sul tuo server è configurata una password di root.
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo con almeno 1GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il seguente comando per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Passaggio 2:installazione di Apache Bench
Apache Bench fa parte del pacchetto del server web Apache, quindi non è necessario installare Apache Bench se il server web Apache è installato sul tuo sistema.
Per il sistema operativo Ubuntu/Debian, installa lo strumento Apache Bench con il seguente comando:
apt-get install apache2-utils -y
Per il sistema operativo RHEL/CentOS, installa lo strumento Apache Bench con il seguente comando:
yum install httpd-tools -y
Puoi visualizzare tutte le opzioni disponibili con lo strumento Apache Bench utilizzando il seguente comando:
ab
Dovresti vedere la seguente schermata:
Di seguito una breve spiegazione delle opzioni più comunemente utilizzate:
- -n: Specificare il numero di richieste di connessione inviate al server web.
- -c: Specifica il numero di richieste di connessione simultanee inviate al server web.
- -t: Specifica il numero di secondi in cui il comando ab deve continuare a inviare richieste.
Nota: A volte potresti ricevere un errore di "connessione scaduta". Il motivo è la tua richiesta di connessione bloccata da un firewall o il server web Apache non è stato in grado di gestire ulteriori richieste.
Fase 3:esecuzione di uno stress test
A questo punto, lo strumento Apache Bench è installato. Ora puoi eseguire uno stress test sul tuo server web in locale o utilizzando il nome di dominio.
Eseguiamo uno stress test sul tuo server web Apache inviando 800 richieste su 300 connessioni simultanee.
ab -n 800 -c 300 http://your-domain-name/
Questo funzionerà per 800 richieste con una simultaneità di 300 come mostrato di seguito:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: Apache/2.4.29 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.459 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8953600 bytes HTML transferred: 8734400 bytes Requests per second: 1743.53 [#/sec] (mean) Time per request: 172.064 [ms] (mean) Time per request: 0.574 [ms] (mean, across all concurrent requests) Transfer rate: 19056.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 7.8 0 20 Processing: 8 92 124.3 44 437 Waiting: 4 92 124.4 43 437 Total: 22 98 128.9 44 453 Percentage of the requests served within a certain time (ms) 50% 44 66% 50 75% 53 80% 56 90% 435 95% 445 98% 450 99% 452 100% 453 (longest request)
Nell'output sopra, puoi vedere che Apache ha gestito 1743,53 richieste al secondo e ci sono voluti un totale di 0,459 secondi per soddisfare le richieste totali.
Eseguiamo un altro stress test sul tuo server web Nginx e confrontiamolo con il risultato di Apache inviando 800 richieste su 300 connessioni simultanee.
ab -n 800 -c 300 http://your-domain-name/
Dovresti vedere il seguente output:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: nginx/1.14.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.184 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8930400 bytes HTML transferred: 8734400 bytes Requests per second: 4354.95 [#/sec] (mean) Time per request: 68.887 [ms] (mean) Time per request: 0.230 [ms] (mean, across all concurrent requests) Transfer rate: 47474.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 12 7.5 9 32 Processing: 5 33 12.8 30 56 Waiting: 4 26 12.9 22 49 Total: 15 46 13.6 46 70 Percentage of the requests served within a certain time (ms) 50% 46 66% 56 75% 58 80% 60 90% 64 95% 66 98% 70 99% 70 100% 70 (longest request)
Nell'output sopra, puoi vedere che Apache ha gestito 4354,95 richieste al secondo e ci sono voluti un totale di 0,184 secondi per soddisfare le richieste totali.
Puoi vedere che Nginx può gestire più richieste di Apache. Dopo aver confrontato il risultato di entrambi i server, avrai un'idea di quale scegliere per la tua applicazione web.
Conclusione
Nella guida sopra, abbiamo imparato come testare le prestazioni del server web con Apache Bench. Ora puoi esplorare lo strumento Apache Bench ed eseguirlo con diverse opzioni per misurare le prestazioni del tuo server web; provalo oggi su VPS Hosting da Atlantic.Net!