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