Web Server Benchmarking: Apache 2.4 vs Nginx 1.6.2



Documenti analoghi
Il Web Server e il protocollo HTTP

Sistema di Gestione dei Contenuti Multimediali

Il web server Apache Lezione n. 3. Introduzione

Introduzione alle applicazioni di rete

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

REQUISITI TECNICI HR INFINITY ZUCCHETTI

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Caratteristiche di una LAN

La sicurezza nel Web

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

Progettazione Web Applicazioni client-server

Installazione & Configurazione Php e MySQL su Mac Os X. Php

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

COMPETENZE INFORMATICHE DI BASE PER ADULTI

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Virtualizzazione VirtualBox su Host Windows

Introduzione a phpmyadmin

PROTOS GESTIONE DELLA CORRISPONDENZA AZIENDALE IN AMBIENTE INTRANET. Open System s.r.l.

Node.js + Drupal. Luca Lusso. giovedì 1 dicembre 11

Corso di PHP. Prerequisiti. 1 - Introduzione

la tua presenza e il tuo BUSINESS ON-LINE

Presentazione Data Base

GENERALE. Cos è la rete IRC? Differenza tra Mirc e DeXdcc?

Elementi sull uso dei firewall

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di OutLook

Inizializzazione degli Host. BOOTP e DHCP

Internet Access Monitor. Informazioni sul prodotto

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi

Introduzione a Dev-C++

P2-11: BOOTP e DHCP (Capitolo 23)

VMware. Gestione dello shutdown con UPS MetaSystem

Dal software al CloudWare

Overview su Online Certificate Status Protocol (OCSP)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Progetto Virtualizzazione

M-BOX V Profilo di Prodotto

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Zeroshell e ripartizione di carico RDP

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Siti web centrati sui dati (Data-centric web applications)

Pacchettizzazione e distribuzione del software

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Approccio stratificato

Cosa è un foglio elettronico

Guida all utilizzo di Moodle per gli studenti

I vostri documenti sempre disponibili e sincronizzati.

Realizzazione di una chat su protocollo HTTP

Setup e installazione

Cenni di programmazione distribuita in C++ Mauro Piccolo

Università Degli Studi dell Insubria Centro Sistemi Informativi e Comunicazione (SIC) Rete Wireless di Ateneo UninsubriaWireless

Individuare Web Shell nocive con PHP Shell

Maxpho Commerce 11. Maxpho Cloud Services. Data: 18 Gennaio 2012 Versione: 1.1 Autore: Maxpho Srl

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

PORTALE CLIENTI Manuale utente

Dal protocollo IP ai livelli superiori

Approfondimento di Marco Mulas

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

2.1 Configurare il Firewall di Windows

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di MS Outlook

Architettura di un sistema operativo

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

Applicazioni web centrati sui dati (Data-centric web applications)

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

appunti delle lezioni Architetture client/server: applicazioni client

Il protocollo BitTorrent

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Introduzione ad EasyPHP

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

IL BUDGET 04 LE SPESE DI REPARTO & GENERALI

DBMS e Linguaggi di programmazione nell'era di Internet

Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro

Office e Applicativi sw

Gestione di un magazzino: sviluppo di un applicazione web-database

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Schedulatore per la comunicazione con le Porte di Dominio

ICARO Terminal Server per Aprile

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Una Soluzione di NAT Traversal per un sistema di comunicazione VOIP per una PMI

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Flessibile Altamente personalizzabile Semplice ed intuitivo Integrato con MS Office Completo e potentissimo Multiversione (Cloud, C/S e stand alone)

Lo scenario: la definizione di Internet

File, Modifica, Visualizza, Strumenti, Messaggio

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Facoltà di Farmacia - Corso di Informatica

Transcript:

Web Server Benchmarking: Apache 2.4 vs Nginx 1.6.2 Ciro Amati, Stefania Cardamone Universitá degli Studi di Salerno February 16, 2015

Overview Introduzione Server Web Configurazione Software Hardware Parametri Workload Statici Dinamici Conclusioni

Introduzione Server Web Server Web E un applicazione software Esecuzione: server fisico Protocollo utilizzato per la comunicazione: HTTP (o HTTPS) HTTP request. Il client effettua una richiesta al Web Server HTTP response. Il Web Server risponde alla richiesta

Introduzione Server Web Web Server piú diffusi

Introduzione Server Web Apache HTTP Server Sviluppatore: Apache Software Foundation Piattaforma server Web modulare piú diffusa UNIX/Linux Microsoft

Introduzione Server Web Apache HTTP Server Vantaggi: Affidabilitá Facilitá di implementazione Modularitá Ottima documentazione Svantaggi: Enorme consumo di memoria del demone Basato su un architettura multithreaded: un thread coinvolge l utilizzo di grandi quantitativi di memoria Sottoposto ad attacchi di tipo DoS (slow-loris)

Introduzione Server Web Nginx Sviluppatore: Igor Sysoev E anche un server proxy di posta elettronica (IMAP / POP3) Multipiattaforma: Unix Linux varianti di BSD Mac OS X Solaris Microsoft Windows

Introduzione Server Web Nginx Vantaggi: Web servers di tipo asincrono (Apache é basato su un architettura process-based e necessita di 1 thread per ogni richiesta da soddisfare) Basato su un architettura che consente di servire piú richieste con uno solo o con pochissimi thread Consumo di memoria quasi nullo o modesto Ottima documentazione Svantaggi: Puó essere scaricato solo sotto forma di sorgenti da ricompilare Documentazione ufficiale in russo

Configurazione Software Software Server: Apache 2.4 Nginx 1.6.2 MySQL + PHPMyAdmin Client: Httperf 0.9.0

Configurazione Hardware OS utilizzati... Client Server Esito MacOS MacOS Negativo MacOS Windows Negativo Windows MacOS Negativo Linux MacOS Negativo MacOS Linux Negativo Linux Linux Positivo

Configurazione Hardware Hardware Ubuntu 13.10 Memoria 5,7 GiB Processore Intel Core i5-460m 2.53 Ghz Rete: Fast Ethernet 100Mbps Carico server a riposo: Memoria occupata 800 MiB Cpu utilizzata : meno del 10 %

Parametri Parametri (1) Performance misurate in termini di: Numero di richieste servite al secondo Tempo di risposta per ogni nuova connessione Throughput Risposte al secondo * [ header HTTP + dimensione file (su server)]

Parametri Parametri (2) rate: specifica il numero di connessioni al secondo (req/s) num-conn: specifica il numero totale di connessioni da creare num-call: specifica il numero di chiamate per connessione Reply rate: (min, avg, max) specifica quante connessioni ha effettuato per secondo Reply time: specifica quanto tempo il server impiega per gestire la richiesta. Nell esempio della slide precedente ci sono voluti 10,8 millisecondi tra linvio del primo byte della richiesta e la ricezione del primo byte della risposta

Parametri Parametri (3) client-timo: specifica il numero di volte che una sessione di connessione non é riuscita a causa della scadenza del timeout socket-timo: il numero di volte che una connessione TCP fallisce con un timeout a livello di socket connrefused: il numero di volte che il server rifiuta una connessione TCP fd-unavail: il numero di volte che il processo httperf va oltre i file descrittori. Quando questo conteggio é diverso da zero, il test risulta nullo perché il client é stato sovraccaricato

Workload Workload Il load/stress test di un server web permette di verificare se e come un sito web funziona al crescere delle richieste E simulata la navigazione da parte di molti utenti contemporaneamente si verificano i tempi di risposta delle varie pagine web analisi dei codici di risposta verifica se il server inizia a restituire pagine con errori

Workload Workload statici - dimensione file: Piccola (20KB) Media (100KB) dinamici Il test é stato effettuato utilizzando MySQL (entrambi i server) E stato utilizzato il database del precedente benckmark La query é effettuata sulla tabella Country, la quale genera una lista di 240 righe e 15 colonne Il file PHP generato dalla richiesta, ha dimensione circa 30KB *Download tabella Country

Statici Statici (20KB) Parametri httperf: Numero connessioni: 50000 Timeout(s): 5 Dimensioni file (KB): 20

Statici Statici (20KB) - Server Apache Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 100 0,8 100 2023,4 0 250 0,8 250 5058 0 400 0,9 400 8093,1 0 450 0,9 450 9104,5 0 500 1,0 500 10115,9 0 550 1,6 550 11127,8 0 580 845,1 362 7280,6 1139 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 580 0 0 0 75 1064 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Statici Statici (20KB) - Server Nginx Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 100 0,8 100 2017,6 0 250 0,8 250 5044 0 400 0,5 400 8070,1 0 450 0,5 450 9078,7 0 500 0,7 500 10087,2 0 550 1,1 550 11096,2 0 580 495,3 490,2 9710,8 980 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 580 0 0 0 0 980 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Statici Statici (20KB) - Benchmark on Response Time Rate 100 250 400 450 500 550 Apache 0,8 0,8 0,9 0,9 1,0 1,6 Nginx 0,8 0,8 0,5 0,5 0,7 1,1

Statici Statici (20KB) - Benchmark on Reply Rate Rate 100 250 400 450 500 550 580 Apache 100 250 400 450 500 550 362 Nginx 100 250 400 450 500 550 490,2

Statici Statici (20KB) - Benchmark on Throughput Rate 100 250 400 450 500 550 580 Apache 2023,4 5058 8093,1 9104,5 10115,9 11127,8 7280,6 Nginx 2017,6 5044 8070,1 9078,7 10087,2 11096,2 9710,8

Statici Statici (100KB) Parametri httperf: Numero connessioni: 50000 Timeout(s): 5 Dimensioni file (KB): 100

Statici Statici (100KB) - Server Apache Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 50 0,8 50 4899 0 75 0,8 75 7348,5 0 100 0,8 100 9798 0 125 4025,2 121,6 9120,3 2999 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 125 0 105 0 426 2468 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Statici Statici (100KB) - Server Nginx Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 50 0,7 50 4898,3 0 75 0,7 75 7347,5 0 100 0,8 100 8697,3 0 125 2435,8 131,8 10011,9 1805 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 125 0 117 0 0 1688 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Statici Statici (100KB) - Benchmark on Response Time Rate 50 75 100 Apache 0,8 0,8 0,8 Nginx 0,7 0,7 0,8

Statici Statici (100KB) - Benchmark on Reply Rate Rate 50 75 100 125 Apache 50 75 100 121,6 Nginx 50 75 100 131,8

Statici Statici (100KB) - Benchmark on Throughput Rate 50 75 100 125 Apache 4899 7348,5 9798 9120,3 Nginx 4898,3 7347,5 8697,3 10011,9

Dinamici Dinamici (30KB) - Server Apache Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 100 2,7 100 3551,3 0 200 2,6 200 7102,4 0 300 3,4 300 10653,5 0 350 1483,2 207 7204,9 3427 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 350 0 27 0 84 3316 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Dinamici Dinamici (30 KB) - Server Nginx Rate Response time(ms) Reply rate(avg) Thrghpt (KB/s) Err. 100 2,6 100 3551,3 0 200 2,5 200 7102,3 0 300 3,2 300 10653,5 0 350 1150,7 298 10430 1405 Errori Rate client-timo socket-timo connrefused connreset fd-unavail other 350 0 12 0 63 1330 0 Si riporta evidenziata in giallo la riga corrispondente all ultimo test senza errori

Dinamici Dinamci (30KB) - Benchmark on Response Time Rate 100 200 300 Apache 2,7 2,6 3,4 Nginx 2,6 2,5 3,2

Dinamici Dinamici (30KB) - Benchmark on Reply Rate Rate 100 200 300 350 Apache 100 200 300 207 Nginx 100 200 300 298

Dinamici Dinamici (30KB) - Benchmark on Throughput Rate 100 200 300 350 Apache 3551,3 7102,3 10653,5 7204,9 Nginx 3551,3 7102,3 10653,5 10430

Conclusioni Conclusioni Lavoro procedente Ubuntu 13.04 Memoria 3,7 GiB DDR3 Intel Core i5-450m @2,4 GHz Rete: Fast Ethernet 100Mbps Server Client Apache 2.4 Nginx 1.6 Httperf 0.9.0 Nostro lavoro Ubuntu 13.10 Memoria 5,7 GiB Intel Core i5-460m 2.53 Ghz Rete: Fast Ethernet 100Mbps Server Client Apache 2.4 Nginx 1.6.2 Httperf 0.9.0

Conclusioni Conclusioni Dai test effettuati possiamo riscontrare che, rispetto al lavoro del precedente anno, i nostri risultati sono quasi equivalenti, tranne in alcuni test per il valore di response time. Per i test statici, abbiamo riscontrato un miglioramento di 0,1ms e 0,3ms per il response time, a ogni singolo test. Per i test dinamici, i risultati sono del tutto equivalenti al benchmark dell anno precedente. Dal punto di visto software, Apache non ha rilasciato nuove versioni. Nginx é passato dalla versione 1.6.0 alla 1.6.2, ma con poche differenze sostanziali. Per cui, le differenze riscontrate, dipendendo sicuramente dal miglioramento dell hardware utilizzato. Dal punto di vista delle prestazioni, infine, si é potuto riscontrare che i risultati riportati da Nginx sono leggermente inferiori rispetto ad Apache, per quasi tutti i test. In conclusione possiamo affermare che, nonostante Apache sia il Web Server piú diffuso al mondo, Nginx pu essere un valido concorrente.