Linux Prozesse beeinflussen C++ Daemon



  • Hallo Gemeinde,

    ich habe eine Frage zu Prozessen.

    Ich habe einen Netzwerkserver der als Daemon läuft, funktioniert auch alles super, jedoch wenn ich den mal etwas stresse
    ca 1000 Verbindungen schnell auf mache und wieder schließe, kommt dieser leich ins schweitzen, was ich dann habe ist
    ein einzigen "killer-prozess" nun meine Frage, wie kann ich das machen, das ich Quasi einen Pool und wenn dieser Pool voll ist einfach
    ein neuer Kind-Prozess gestartet wird. Was ich damit erreich will ist, das ist mehere Prozesse habe und nicht mehr einen Monster-Prozess

    Im Moment schaut mein Daemon so aus (ps -ax):

    3550 ?  Ss  0:00 /usr/local/bin/g5server 0.0.0.0 8080 /etc/g5server/config.ini
    

    Kann mir da wer ein Denkanstoß geben, ob das überhaupt was bringt und wie man das theoretisch realisiert?
    Ich abereite mit Boost-Asio für das Netzwerk, falls das relevant ist. mein Daemon habe ich nach diesem Howto gebaut:

    http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

    Vielen Dank für eure Hilfe,

    so long
    jd



  • Bei vielen Verbindungen lohnen sich unter Umständen Threads.
    In der Beispiel-Dokumentation zu Boost::Asio gibt's dafür einen guten Ansatz mit einem io_service und einem Threadpool.

    Beachte aber dass du mit der Nutzung von Threads insgesamt eine kleine Leistungseinbuße hast, da die Ressourcen ja immer wieder gesperrt/freigegeben werden müssen.


Anmelden zum Antworten