Beiträge von ThomasChr

    Wenn du Lust hast könntest du das erstellen von dem Backtrace nich scripten. Mach einfach nur mal "bt", das sollte dann nur den ersten Treffen, und dann mal ein paar hundert Backtraces. Danach ein "cat DATEI | sort | uniq -c | sort -n" sollte dir die Funktion liefern wo er häufig angetroffen wurde. Außerdem sehen wir die anderen Funktionen auch. Vielleicht ergibt sich ein Muster.

    Auch wenn du das nicht mehr versuchen willst, Berichte mal wenn es gelöst ist.
    Bin gespannt was es ist. Jedenfalls hats -imho- nix mit der Hardware, der Virtualisierung und wahrscheinlich auch nichts mit dem Betriebssystem zu tun. Da bin ich mir eigentlich relativ sicher, weils ja klar ein User-Mode-CPU Spin ist.

    Thomas

    Also im ersten Backtrace finden wir garnichts sinnvolles:

    Code
    * 1	Thread 0xf74c2700 (LWP 19698) "srcds_linux" 0xf76e8cd9 in ?? ()

    Die anderen beiden scheinen zumindest Funktionsnamen zu beinhalten:

    Code
    * 1	Thread 0xf74c2700 (LWP 19698) "srcds_linux" 0xf2c59713 in ConcatTransforms(matrix3x4_t const&, matrix3x4_t const&, matrix3x4_t&) () from /home/csgo/gsm/serverfiles/csgo/bin/server.so* 1	Thread 0xf74c2700 (LWP 19698) "srcds_linux" 0xf5fcdea3 in CM_LeafOcclusionPass(COcclusionInfo&, int, float, float) () from /home/csgo/gsm/serverfiles/bin/engine.so


    Leider wirds natürlich jetzt hier schwierig ohne den Programmcode, das Binary oder zumindest einen aussagekräftigen Funktionsnamen zu sehen was genau da passiert.
    Du kannst ja mal schauen ob du bei noch ein paar Backtraces einen bestimmten Funktionsnamen oft siehst - dann deutet das daraufhin dass zumindest diese Funktion was damit zu tun hat.

    Ich denke dass der Server irgendwas zu oft macht. Ein Problem mit dem Hostsystem würde ich ausschließen.
    Du kannst ja mal schnell einen

    Code
    sysbench --num-threads=1 --test=cpu --cpu-max-prime=20000 run


    testen. Aber solange der Prozessor da um die 30 Sekunden braucht ist das absolut normal.
    Der Wert sollte ähnlich sein wie der deines Freundes der die Probleme nicht hat.

    Damit schließen wir zumindest aus dass CS soviel Prozessorlast zieht weil der Prozessor so langsam ist.
    Aber das hatte ich eigentlich von vornherein nicht vermutet...

    Wie man dann hier weiterkommen soll ist schwierig. Eventuell, da es ja kein OpenSource Programm ist, mal einen Support-Case erzeugen?

    Thomas


    Ja, scheint als wäres der Hauptthread.

    Wenn pstack nicht geht, nimm einfach mal gdb und mach "thread apply all bt".
    Achtung: Während du mit gdb im Programm hängst steht es.

    Ich nutze dazu folgenden Befehl, dann hängt es nur kurz:

    Code
    gdb <<GDBEND > ~/stackdump.txt
    attach 16001
    info threads
    thread apply all bt
    detach
    quit
    GDBEND


    (für 16001 musste natürlich die richtige pid einsetzen)

    Von den Backtraces ein paar machen ubd mit dazu schreiben welcher Thread (id) gerade viel cpu brät.
    Vielleicht finden wir was.

    Thomad

    Okay, also einen Schritt weiter.
    Der accept mit 'EAGAIN' ist kein Fehler. Es liegen keine Daten auf dem Socket vor (und der Socket ist non-blocking).

    Das viele Abfragen von gettimeofday(), teilweise nach 50 oder weniger Mikrosekunden finde ich schon sehr krude.
    Schwer zu sagen ob das normal ist, es sieht jedenfalls nicht normal aus.
    Soetwas könnte man z.B. machen wenn man präzise irgendwas messen muss.

    Hast du mal geschaut welcher Thread das ist? htop zeigt ind er Standardeinstellung Threads an.
    Vom vmstat sieht es so aus als würde ein Core im UserMode im Kreis rennen.
    Das heißt zwischen den Aufrufen von gettimeofday() ist wohl noch viel im Kreis gespringe dazwischen was die CPU zum brennen bringt.

    Interessant wäre auch ein Pstack - kannst du das ein paar mal auf den Prozess ausführen der soviel CPU braucht?
    Außerdem würde ich gerne den Server runterladen damit ich mir den Assembler-Code zum pstack ansehen kann.
    Ich denke da werden keine Debug-Informationen gelinkt sein :(

    Thomas

    Schneid mal bitte ein paar Sekunden lang "vmstat 1" mit wenn es langsam ist. Außerdem bitte mal mit top sehen welcher Prozess/Thread das genau ist.

    Danach könnten wir den Prozess ja mal mit strace quälen. Wobei das könntest auch gleich machen, bitte ein paar Sekunden strace vom schuldigen Prozess/Thread.
    Ich denke das sollte erstmal etwas Licht ins Dunkle bringen.

    Bin gespannt...

    Thomas

    PS: CS:GO ist ein Counterstrile-Gameserver, korrekt?

    Also auf einem iPhone 6 über LTE war die Seite nach 15 Sekunden mit einem weißen Body zu sehen. Nach 28 Sekunden (nach dem Klick auf Login) war sie vollständig geladen.
    Zum Vergleich: Die Desktop-Variante von amazon läd in ca. 5 Sekunden.

    Thomas

    Ich schimpfe ungern mit, aber ja, dass WCP ist schon ziemlich unerträglich langsam und hat noch dazu Probleme wenn man mit vielen offenen Tabs gleichzeitig arbeitet.

    Ich musste da mal zwölf Subdomains mit dazugehörigen Datenbanken anlegen. Das war grausam...

    Ein Grund mehr warum ich Parallels nicht mag. Wobei sogar Plesk mittlerweile deutlich schneller ist als das WCP.

    Zum Glück muss man das ja nicht oft nutzen und VCP/CCP sind deutlich schneller und angenehmer zu bedienen!

    Ob netcup da aber mal so einfach was ändern kann wo es doch ein Fremdprodukt ist? Ich bezweifle es...

    Thomas

    PS: Ich hab mich da bislang nur nicht beschwert weil ich
    a) verstehe dass netcup bei einem Fremdprodukt evtl. wenig Möglichkeiten hat, und
    b) Für mich Webseiten einfach sehr schnell sein sollten wenn ich oft mit ihnen Arbeite. Alles Bunte und grafische kostet -imho- nur Zeit, lenkt ab und kann weg.
    Aber das geht wohl vielen Admins so die ihre flinke Linux Bash jeder Sanduhrdrehenden Windows GUI vorziehen :)

    Vielleicht weil man sich das Geld für eine Windows-Lizenz sparen will?
    Vielleicht weil man den Home-Rechner nicht 24 Stunden laufen lassen will?
    Vielleicht weil ein Windows-Server zwar leichter aussieht, aber teilweise deutlich komplizierter zu Verwalten ist als ein Linux-Server?
    Vielleicht weil sich (zumindest hier) weniger Leute mit Windows-Server auskennen?

    Also Gründe warum man Linux vorschlägt gibt es genug.

    Gleichzeitig hat ja niemand das teurere Windows ausgeschlossen, aber für einen Chatbot bräuchte ich nicht extra einen Windows-Server aufsetzen...

    Deshalb würde man ja gerne genau wissen was das Programm tut um zu entscheiden ob Windows zwingend notwendig ist.
    Die Erfahrung zeigt dass es meistens mehrere Lösungen gibt und man selbst auf Anhieb nicht auf alle kommt. Deshalb ja ein Forum :)

    Thomas

    Tatsächlich scheint man auch ohne (größere) Probleme Wine für Non-Gui Windows Anwendungen verwenden zu können: WineHQ - Text mode programs (CUI: Console User Interface)

    Aber ob das der richtige Weg ist kann man erst sagen nachdem man genau weiß was das für ein ominöses Programm ist.
    Und wenn Wine nicht auf Anhieb mit dem Programm funktionieren will ist wohl ein gutes Stück Handarbeit nötig!

    Thomas

    PS: Auch auf einem Linux Server kann man relativ einfach Remote Desktop nutzen, das wird nur eigentlich nicht gemacht weil es fast nie nötig ist und nur die mögliche Angriffsfläche erhöht!

    Keiner hat Angst dass du was illegales machst, es ist eher das jemand deinen Server hackt und (in deinem Namen) was illegales macht.
    Stell dir einfach vor du machst einen (zugegebenermaßen groben) Fehler und jemand nutzt deinen Server unter deinem Namen zum verteilen von sehr illegalem Zeugs. Was glaubst du wie lange es dauert bis das bemerkt wird, der Server abgeschalten wird und sowohl Netcup als auch die Polizei ein paar Fragen an dich haben?

    Linux ist kein Hexenwerk und -theoretisch- kann auch ein vorsichtiger Laie seinen Server sicher halten. Aber der Wille zum Lernen und Verstehen wollen sollte da sein.

    Erwarte also nicht dass du hier eine Schritt für Schritt Anleitung bekommst die du nur nachmachen musst ohne zu Verstehen was du da eigentlich tust.

    Was du hier aber gerne bekommen kannst sind Tipps und Suchbegriffe mit denen du dein Ziel sicherlich erreichst.
    Dafür brauchen wir aber deine Mithilfe, und deshalb solltest du uns sagen was das genau für ein Programm ist damit wir dir sagen können ob es Alternativen für Linux gibt, ob du es für Linux kompilieren kannst oder ob du Windows nehmen musst.

    Ob ich auf einem Linux Server für ein Programm welches (wahrscheinlich) Netzwerkports nutzt WINE nehmen würd, bzw. ob das geht weiß ich auch nicht. Ich probiers gerne für dich fix aus, aber ohne das Programm zu kennen wird das nix.

    Thomas

    Es gibt mehrere Methoden.So lädst du den Letsencrypt Client selber runter und lässt ihn automatisch ein Zertifikat für domain.de ausstellen und im Apachen konfigurieren:

    Code
    cd ~
    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    ./letsencrypt-auto --help
    ./letsencrypt-auto --apache --domain domain.de,www.domain.de


    (Aktivieren der Konfiguration mit 'le' und 'ssl', bei mir ist es die Nummer 3 und heißt '000-default-le-ssl.conf')

    Alternativ (zumindest bei Ubuntu) kannst du letsencrypt auch über die Paketquellen deiner Distribution installieren, und das Zertifikat manuell erstellen lassen:

    Code
    apt-get install letsencrypt
    letsencrypt certonly --webroot -w /var/www/html -d domain.de -d www.domain.de -n -m root@domain.de --agree-tos


    (Das Webroot muss letsencrypt wissen, weil es hier eine Directory '.well-known' anlegt, und dort eine Datei hinterlegt um zu prüfen ob der Server wirklich die Domain besitzt.
    Die Datei wird danach gelöscht, die Directory '.well-known' nicht. Ist aber leer, also stört nicht!)

    - Das Zertifikat steht nun hier:

    Code
    /etc/letsencrypt/live/domain.de/


    - Und zwar sind es die Dateien:

    Code
    cert.pem: Das Server-Zertifikat welches der Apache ausliefert
    privkey.pem: Der Geheime Key für das Server-Zertifikat
    chain.pem: Alle Zwischen-Zertifikate zwischen 'cert.pem' und dem Root-Zertifikat, cert.pem nicht mit drin!
    fullchain.pem: Alle Zwischen-Zertifikate zwischen 'cert.pem' und dem Root-Zertifikat, cert.pem mit drin!

    - Wenn man dem Apachen also die Datei 'fullchain.pem' als Zertifikat und 'privkey.pem' als Key einträgt müsste alles gehen.
    Also in die Apachen-Config '/etc/apache2/sites-available/default-ssl.conf' und eintragen:

    Code
    SSLCertificateFile /etc/letsencrypt/live/domain.de/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/domain.de/privkey.pem

    - Und den Apachen reloaden:

    Code
    systemctl reload apache2

    - Das Zertifikat gilt 3 Monate, renew geht so:

    Code
    letsencrypt renew -m root@domain.de --agree-tos


    (Es wird versucht alle Letsencrypt Zertifikate zu erneuern.
    Wenn das Zertifikat noch genug Tage übrig hat wird es nicht renewed, wenn es renewed wurde sind die Dateien unter '/etc/letsencrypt/live/domain.de/' neu!)

    - Und den Apachen danach reloaden:

    Code
    systemctl reload apache2

    Sonst noch Fragen?

    Wenn du nicht klarkommst und dein System als Image von netcup verfügbar ist kann ichs auch kurz installieren und dich durch die Schritte bis zum Zertifikat führen.

    Das erneuern des Zertifikates solltest du per Cronjob machen - sind ja nur zwei Befehle ('letsencrypt --renew' und 'apache2 reload')

    Thomas

    Oder mit xRDP :)

    Nur nehme ich an dass man das nicht bei dem "Hoster mit den Kometen" machen kann.

    Übrigens brauchen wir hier wohl sowieso nicht mehr diskutieren, ich denke nicht dass der TO sich nochmal melden wird. Sein Programm scheint streng geheim zu sein und unsere Antworten sind ihm scheinbar nicht zufriedenstellend genug....

    Thomas