ciao a tutta la lista.
Vorrei chiedere il seguente presentando la situazione.

La nostra rete è cresciuta a dismisura e dobbiamo riorganìzzare i client con i 
vari punti di accesso.
In pratica mi è stato chiesto (secondo alcune ragioni) di effettuare una 
scansione della sottorete 10.0.0.0/8 ed elencare gli IP privati attivi con 
alcuni loro servizi.
Ebbene, mi sono subito rivolto al grandioso nmap che però ha un difetto: si 
'pappa' tutte le risorse del nostro server mandandolo in crash se al server 
vengono richieste risorse aggiuntive. E ha crashato ben due volte. Il 
'serverone' è un quad-core Xeon con OS Centos 5 che può richiedere - se vuole - 
risorse supplementari ad altre macchine sorelle. Ho lanciato nmap da una altro 
serverone con OS Centos 6 e ha crashato anch'esso.

Ho dunque implementato uno scanner in python (utilizzando i thread) e ho 
vissuto un limite di python stesso: python non può creare più di circa 1000 
threads al secondo e esce dallo script con errore tipo "can't create a new 
thread". Da questo ho limitato il numero di thread/sec a 512 con una gestione 
massima di thread attivi a 2048 (per altro codice).
Resta però che una sottorete 10/0 è immensa e anche se non ho fretta, 512 
thread al secondo sono pochi. E mi sono informato sul multiprocessing in 
python. 

Da qui la domanda per chi ha esperienza: se volessi implementare uno scanner 
utilizzando il multiprocessing di python invece che i thread, avrei lo stesso 
limite al numero di processi da creare di circa 1000/sec o posso creare un 
numero di processi superiore e dunque uscirmene più velocemente da questo 
dovere di scansione della 10/8? 

Per favore, che la risposta non sia "crea codice e testa il tutto" in quanto 
comunque sarebbe un impegno lungo e magari qualcuno ha già esperienza in tal 
senso ... e magari il problema del limite resta lo stesso anche utilizzando il 
multiprocessing.

Inoltre: se compilo il mio script in un binario, il binario rischia di 
ereditare la stessa limitazione (1000 th/sec) o forse l'OS lo gestisce meglio e 
posso spingere il mio scanner attuale a prestazioni superiori?


Grazie.
py.Re
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a