AB è l'abbreviazione di ApacheBench.
Il comando ab crea più thread di accesso concorrente per simulare che più visitatori accedono contemporaneamente a un indirizzo URL. I suoi target di test sono basati su URL, quindi può essere utilizzato per testare sia lo stress di carico Apache, sia altri stress del server web come nginx, lighthttp, tomcat, IIS, ecc.
Il comando ab ha requisiti bassi per il computer che emette il carico e non occupa molta CPU o memoria. Tuttavia, causerà un carico enorme sul server target, e il suo principio è simile agli attacchi CC. Devi anche prestare attenzione ai test e all'uso personale, altrimenti avrai troppo carico in una volta. Può causare l'esaurimento delle risorse al server target e, nei casi gravi, persino un crash.
1. Introduzione all'Apache Bench
ApacheBench è uno strumento di test di stress web che include server Apache, abbreviato in ab. AB è anche uno strumento da riga di comando con bassi requisiti nativi per l'avvio dei payload, e molti thread di accesso concorrente possono essere creati secondo il comando AB, simulando più visitatori che accedono contemporaneamente a un certo indirizzo URL, così da poter essere utilizzato per testare la pressione di carico del server target. In generale, lo strumento AB è piccolo e semplice, rapido da imparare e può fornire gli indicatori di performance di base necessari, ma non ci sono risultati grafici e non possono essere monitorati.
2. Installazione del banco Apache
Prima devi installare il server Apache, scaricare l'indirizzo:Il login del link ipertestuale è visibile.,
Il mio computer è un sistema Win10 a 64 bit, quindi ho scaricato "httpd-2.4.33-win64-VC15.zip", link:Il login del link ipertestuale è visibile.
Si consiglia di scaricare l'ultima versione, poiché le versioni più vecchie di ab non supportano il parametro -r.
3. Uso da banco Apache
Comprendere i parametri
Descrizione del parametro: Format: ab [opzioni] [http://]hostname[:p ort]/path
-n richieste Numero di richieste da eseguire //Il numero totale di richieste avviate in questo test -c Concorrenza Numero di richieste multiple da effettuare // Numero di richieste (o concorrenza) generate contemporaneamente -t limite di tempo Secondi al massimo. Aspettare le risposte //Il numero massimo di secondi in cui un test viene eseguito di default. -r Non uscire al socket errori di ricezione. Lancia un'eccezione per continuare il compito di prova -p postfile File contenente dati per POST // Un file contenente dati che devono essere POST, in un formato di file come "p1=1&p2=2". Il metodo d'uso è -p 111.txt
-T content-type Intestazione Content-type per POSTing L'intestazione di tipo Contenuto utilizzata per i dati POST, come -T "application/x-www-form-urlencoded". (co-p) -v verbosità Quante informazioni di risoluzione dei problemi stampare Imposta il livello di dettaglio per visualizzare le informazioni – un valore pari a 4 o superiore mostrerà le informazioni dell'intestazione (header), un valore di 3 o superiore mostrerà un codice di risposta (404, 200, ecc.), e un valore pari o superiore mostrarà avvertimenti e altre informazioni. -V mostra il numero di versione ed esce. -C attributo Aggiungi cookie, ad esempio -C "c1=1234,c2=2,c3=3" (ripetibile) -C cookie-name=valore Aggiungi un cookie alla richiesta: linea. La forma tipica è una coppia di parametri name=value. Questo parametro può essere ripetuto, diviso da una virgola. Consiglio: Puoi usare il principio di implementazione della sessione per passare il parametro JSESSIONID e ottenere la funzione di mantenimento della sessione, come -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Stampa i risultati in tabelle HTML // Risultati in uscita in formato tabella HTML. Di default, è una tabella con due colonne su sfondo bianco. -Uso HEAD invece di GET -x attributi Stringa da inserire come attributi della tabella -y attributi Stringa da inserire come attributi tr -z attributi Stringa da inserire come attributi td o th -H attributo Aggiungi Header line, ad esempio. 'Accetto-Codifica: gzip' Inserito dopo tutte le normali righe di intestare. (ripetibile) -Un attributo Aggiungi Autenticazione WWW di base, gli attributi sono un nome utente e una password separati da due punti. -P attributo Add Basic Proxy Authentication, gli attributi sono un nome utente e una password separati da due punti. -X proxy:port Proxyserver e numero di porta da utilizzare -V Stampa numero di versione ed uscita -k Usa la funzione HTTP KeepAlive -d Non mostrare percentili serviti al tavolo. -S Non mostrare stimi di fiducia e avvisi. -g nome file Output dati raccolti in file formato gnuplet. -e file name Output file CSV con percentuali servite -h Visualizza le informazioni sull'utilizzo (questo messaggio) Ci sono molti parametri, generalmente possiamo usare -c e -n parametri. Per esempio:
Sblocca il "httpd-2.4.33-win64-VC15.zip", vai su \Apache24\bin e avvia con la riga di comando cmd, come mostrato nella figura sottostante:
SSL non compilato; nessun supporto https: SSL non è compilato in; Non c'è supporto per https, il che significa che il sito web non supporta https.
Risultati del test:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL non compilato; Nessun supporto HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Questa è ApacheBench, Versione 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Il login del link ipertestuale è visibile. Concesso in licenza alla Apache Software Foundation,Il login del link ipertestuale è visibile.
Benchmarkingwww.itsvse.com(sii paziente) Completato 100 richieste Completato 200 richieste Completate 300 richieste Completato 400 richieste Completato 500 richieste Completato 600 richieste Completato 700 richieste 800 richieste completate Completato 900 richieste Completato 1000 richieste Completato 1000 richieste
Software server: Nome host del server: www.itsvse.com Porta server: 80
Percorso del documento: / Lunghezza del documento: 178 byte
Livello di convivenza: 10 Tempo impiegato per i test: 44,916 secondi Richieste complete: 1000 Richieste fallite: 0 Risposte non 2xx: 1000 Totale trasferito: 349000 byte HTML trasferito: 178000 byte Richieste al secondo: 22,26 [#/sec] (media) Tempo per richiesta: 449.164 [ms] (media) Tempo per richiesta: 44,916 [ms] (media, su tutte le richieste concorrenti) Tasso di trasferimento: 7,59 [Kbytes/sec] ricevuti
Tempo di Connessione (ms) Media[+/-sd] Mediana massima
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Percentuale delle richieste servite entro un certo periodo di tempo (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (richiesta più lunga) Analisi dei parametri:
Percorso del documento: pagina di test Lunghezza del documento: La dimensione della pagina Livello di concorrenza: numero di concorrenti testate contemporaneamente Tempo impiegato per i test: La durata dell'intero test Richieste complete: Il numero di richieste completate Richieste fallite: Il numero di richieste fallite Errori di scrittura: 0 Totale trasferito: la quantità di rete trasferita durante tutto il processo HTML trasferito: La quantità di contenuto HTML trasferito durante il processo Richieste al secondo: una delle metriche più importanti, equivalente alle transazioni al secondo in LR e media tra parentesi, indica che si tratta di una media Tempo per richiesta: Le due metriche più importanti, equivalenti al tempo medio di risposta delle transazioni in LR, la media tra parentesi indicano che si tratta di una media Tempo per richiesta: La media del tempo effettivo di esecuzione per ogni richiesta di connessione Tasso di trasferimento: traffico medio al secondo sulla rete, che può aiutare a escludere il problema di un traffico di rete eccessivo che causa lunghi tempi di risposta
|