Hallo,
also ich wollte nen Netzwerk Server schreiben und dieser sollte bis zu 10 000 leute behandeln können, natürlich mit einer dementsprechend starken Hardware.
Da ich aber hier nicht einfach drauf los Programmieren könnt ihr euch sicher denken sondern ich wollte mich erstmal genau informieren mit was ich die Performance bis zum schluss ausnutzen kann.
Der Server muss nichts resourcen lastiges machen es werden halt kleinere Packete geschickt mit Informationen was der Server dann halt verarbeiten muss mit kleineren Algorythmen und halt das Ergebnis an den Client zurück. Die Infos werden in einer Mysql Datenbank gespeichert.
Ich wollte das ganze so machen die Infos dauerthaft im Ram zu behalten und in abständen in nem extra Thread in die DB zu speichern um den Programm fluss nicht aufzuhalten.
Ich habe jetzt schon bei manchen Server Programmen einen Thread Pool gesehen der eine Anzahl von Threads zuverfügungstellt und diese sich dann um die ganzen Tasks die Laufen kümmern.
Ich versteh aber noch nicht ganz wie das ganze funktioniert mit dem Thread Pool bis jetzt habe ich immer die ganzen Normalen Thread benutzt und bei Google finde ich auch nichts informatives was mich richtig weiter bringen könnte villt hat ja jemand von euch ne Seite/Beispiel oder ne genaue erklärung wie so ein Thread Pool funktioniert und auf was ich achten muss.
Jetzt noch zum Netzwerk Code, ich habe ich da auch schon ein bisschen Informiert man könnte ja für jeden zu behandelenen Client einen Thread erstellen aber irgentwann würde das System doch bei so vielen Thread in die Knie gehen.
Nun habe ich gelesen das ich unter linux Epoll benutzen soll das sei sowas ähnliches wie Select sein aber jetz weiß ich nicht wie ich das am besten mit dem Epoll angehen soll, weil mehere 1000 Clients mit Epoll zu behandeln in 1 Thread kann doch auch nciht so gut sein oder kann man irgentwie durch den Thread Pool dafür sorgen das sich mehrere Threads sich um das Epoll kümmern weil ich denke nicht das ich Epoll irgentwie mehrmals benutzen kann in mehren Threads.
Ich danke euch schon für euere Hilfe 
also ich wollte nen Netzwerk Server schreiben und dieser sollte bis zu 10 000 leute behandeln können, natürlich mit einer dementsprechend starken Hardware.
Da ich aber hier nicht einfach drauf los Programmieren könnt ihr euch sicher denken sondern ich wollte mich erstmal genau informieren mit was ich die Performance bis zum schluss ausnutzen kann.
Der Server muss nichts resourcen lastiges machen es werden halt kleinere Packete geschickt mit Informationen was der Server dann halt verarbeiten muss mit kleineren Algorythmen und halt das Ergebnis an den Client zurück. Die Infos werden in einer Mysql Datenbank gespeichert.
Ich wollte das ganze so machen die Infos dauerthaft im Ram zu behalten und in abständen in nem extra Thread in die DB zu speichern um den Programm fluss nicht aufzuhalten.
Ich habe jetzt schon bei manchen Server Programmen einen Thread Pool gesehen der eine Anzahl von Threads zuverfügungstellt und diese sich dann um die ganzen Tasks die Laufen kümmern.
Ich versteh aber noch nicht ganz wie das ganze funktioniert mit dem Thread Pool bis jetzt habe ich immer die ganzen Normalen Thread benutzt und bei Google finde ich auch nichts informatives was mich richtig weiter bringen könnte villt hat ja jemand von euch ne Seite/Beispiel oder ne genaue erklärung wie so ein Thread Pool funktioniert und auf was ich achten muss.
Jetzt noch zum Netzwerk Code, ich habe ich da auch schon ein bisschen Informiert man könnte ja für jeden zu behandelenen Client einen Thread erstellen aber irgentwann würde das System doch bei so vielen Thread in die Knie gehen.
Nun habe ich gelesen das ich unter linux Epoll benutzen soll das sei sowas ähnliches wie Select sein aber jetz weiß ich nicht wie ich das am besten mit dem Epoll angehen soll, weil mehere 1000 Clients mit Epoll zu behandeln in 1 Thread kann doch auch nciht so gut sein oder kann man irgentwie durch den Thread Pool dafür sorgen das sich mehrere Threads sich um das Epoll kümmern weil ich denke nicht das ich Epoll irgentwie mehrmals benutzen kann in mehren Threads.

