[Precedente: Logging]
[Indice]
[Successivo: Utilizzo con FTP]
PF: Prestazioni
"Che banda può gestire PF?"
"Quanti computer riescono a gestire la mia connessione Internet?"
Non c'è un modo semplice per rispondere a queste domande. Per qualche
applicazione, un 486/66 con un paio di buone interfaccie NIC ISA
potrebbero filtrare ed effettuare il NAT di quasi 5Mbps, ma per altre
applicazioni una macchina più veloce con PCI NIC più efficienti
potrebbero addirittura essere insufficienti. La vera domanda non è il
numero di bit al secondo ma piuttosto il numero di pacchetti al
secondo e la complessità delle regole di configurazione.
Le prestazioni di PF sono determinate da diversi fattori:
- Il numero di pacchetti al secondo. Si ha quasi lo stesso
ammontare di sforzo nel processare un pacchetto con 1500 byte di
payload e un pacchetto con un singolo byte. Il numero di pacchetti al
secondo determinano il numero di volte che la tabella di stato e, in
caso di non corrispondeza, le regole di filtraggio, devono
essere verificate ogni secondo, e quindi determinano le effettive
richieste del sistema.
- Le prestazioni del bus di sistema. Il bus ISA ha un massimo di
banda di 8MB/sec, e quando il processore vi accede, qualunque sia la
sua velocità, deve rallentare se stesso alla velocità effettiva di un
80286 a 8MHz. Il bus PCI ha una banda effettiva
più grande e ha meno impatto sul processore.
- Efficienza della scheda di rete. Alcuni adattatori di rete sono
più efficienti di altri. Le schede basate su Realtek 8139
(rl(4))
tendono ad essere relativamente meno performanti mentre le schede basate
su Intel 21143
(dc(4)) hanno buone prestazioni. Per migliorare le performance,
si possono utilizzare schede di rete gigabit Ethernet, anche in assenza
di reti gigabit ethernet, per il buffering superiore.
- La complessità e la struttura delle regole di configurazione.
Più complesse sono le regole di configurazione e più lento è il sistema.
Più pacchetti vengono filtrati con il keep state e le regole
quick, e migliori saranno le performance. Maggiore è il numero
di righe che devono essere verificate per ogni pacchetto e più basse
saranno le performance.
- Per migliorarle: CPU and RAM. Dato che PF è un processo basato
sul kernel, non utilizzerà spazio di swap. Quindi con RAM sufficiente,
funziona, altrimenti andrà in panico a causa di
pool(9) exhaustion. Non è
necessario un elevato ammontare di RAM -- 32MB dovrebbero essere
sufficienti per circa 30,000 stati, che rappresentano un elevato numero
di stati per un piccolo ufficio o per applicazioni casalinghe.
I più troveranno che un computer "riciclato" è più che sufficiente
per un sistema PF -- un sistema a 300MHZ sarà in grado di gestire
rapidamente un numero elevato di pacchetti, al limite affiancato da
una buona NIC e delle buone regole di configurazione.
I sistemi a multiprocessore aiutano?
PF utilizza solo un processore quindi sistemi a multi processori (oppure multi cores) NON miglioreranno le prestazion di PF. COMUNQUE, in alcune circostanze, facendo lavorare la versione OpenBSD di SMP
(bsd.mp) invece di bsd migliorerà le prestazioni a causa della differenza di come vengono gestiti gli interrupt. In molti casi, bsd.mp peggiorerà le prestazioni. Se cerchi di migliorare le prestazioni, occorre sperimentare con tutto ciò.
Are there any benchmarks?
La gente spesso richiede sistemi che possano testare PF. L'unico
sistema che conta è la performance del tuo sistema nel tuo
ambiente. Un benchmark che non replica il tuo ambiente non ti aiuterà a
pianificare il tuo firewall. La migliore cosa da fare è di effettuare
il benchmark di PF da se stessi sotto le stesse, simili condizioni
hardware e di rete.
PF è usato in alcune grandi applicazioni ad elevato traffico,
e gli sviluppatori sono "power users" di PF. Dovrebbe funzionare molto
bene per le tue applicazioni.
[Precedente: Logging]
[Indice]
[Successivo: Utilizzo con FTP]
www@openbsd.org
$OpenBSD: perf.html,v 1.3 2009/01/21 21:52:45 tobias Exp $