<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">ciao a tutta la lista.</div><div>Vorrei chiedere il seguente presentando la situazione.</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">La nostra rete è cresciuta a dismisura e dobbiamo riorganìzzare i client con i vari punti di accesso.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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.<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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).</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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. <br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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? </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">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?<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Grazie.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">py.Re</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color:
 transparent; font-style: normal;"><br></div></div></body></html>