Hallo zusammen,
Ich versuche momentan, ein Skript auf Nodejs umzubauen. Momentan ist es so, dass ein Javascript-Code alle x Sekunden eine .php Datei aufruft um den aktuellen Status zu übertragen.
Da es jedoch tausende Aktive User gibt, ist der Server damit ein wenig überlastet. Und ich kann nicht prüfen ob es ein fake-Aufruf ist oder nicht. Da bin ich bei Nodejs besser.
Beim versuch auf Node umzustellen, stoße ich jedoch vor Probleme wie "transport close", "ping timeout" u.ä.
Hier einmal das Skript:
Jetzt sieht es so aus, dass ich in der Konsole sehe wie die User sich verbinden.
Dann passiert es so bei circa 2500, dass im log ganz schnell hintereinander "disconnected" kommt. Alle mit ping-timeout.
Das sind so 300-400 disconnects.
Kurz danach sehe ich, wie diese alle wieder rein kommen und sich Verbinden.
Wie gehe ich da am besten vor, um rauszufinden wieso das so ist?
Kann es sein dass der Server überfordert ist mit der Webseite?
Serverdaten:
Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz (12 core(s))
Debian 8.9
220GB SSD
128GB RAM
Das ganze dediziert, sprich der Server ist "real" und hat nur diese eine Webseite.
Ich selber Programmiere seit über 10 Jahren. Habe Erfahrung mit php, mysql, html, javascript, c++ u.v.m
Bin aber ehrlich gesagt mit meinem Server-Wissen so langsam am ende.
Mir fehlt die "Idee" was es sein kann und wie ich das Thema anpacke.
Wäre super wenn mir da jemand hilft!
Danke !!!
Edit: Es ist auch bei mir momentan so, dass ich die Datei
https://hostname:3000/socket.io/socket.io.js
Nicht aufrufen kann. Es kommt dort zu einem 522-Fehler. Ich komme an die Datei erst dran, wenn sich alles langsam beruhigt.
Ich versuche momentan, ein Skript auf Nodejs umzubauen. Momentan ist es so, dass ein Javascript-Code alle x Sekunden eine .php Datei aufruft um den aktuellen Status zu übertragen.
Da es jedoch tausende Aktive User gibt, ist der Server damit ein wenig überlastet. Und ich kann nicht prüfen ob es ein fake-Aufruf ist oder nicht. Da bin ich bei Nodejs besser.
Beim versuch auf Node umzustellen, stoße ich jedoch vor Probleme wie "transport close", "ping timeout" u.ä.
Hier einmal das Skript:
Code:
var https = require('https');
var mysql = require('mysql');
var fs = require('fs');
var hostname = 'hostname';
var port = 3000;
//assign certificate
var options = {
key: fs.readFileSync('./zert.key'),
cert: fs.readFileSync('./zert.cert'),
};
//create https-server
server = https.createServer(options);
//start server and listen to givven port
server.listen(port, hostname, 34, function() {
console.log("Server listening on https://%s:%s", hostname, port);
});
// use socket.io
var io = require('socket.io').listen(server);
// define interactions with client
io.sockets.on('connection', function(socket) {
console.log("Open-Connections: %s", io.engine.clientsCount);
socket.on('disconnect', function(data) {
console.log("user disconnected reason: %s", data);
});
});
Code:
Open-Connections: 1 Open-Connections: 12 ... Open-Connections: 2100 Open-Connections: 2400 ...
Das sind so 300-400 disconnects.
Kurz danach sehe ich, wie diese alle wieder rein kommen und sich Verbinden.
Wie gehe ich da am besten vor, um rauszufinden wieso das so ist?
Kann es sein dass der Server überfordert ist mit der Webseite?
Serverdaten:
Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz (12 core(s))
Debian 8.9
220GB SSD
128GB RAM
Das ganze dediziert, sprich der Server ist "real" und hat nur diese eine Webseite.
Ich selber Programmiere seit über 10 Jahren. Habe Erfahrung mit php, mysql, html, javascript, c++ u.v.m
Bin aber ehrlich gesagt mit meinem Server-Wissen so langsam am ende.
Mir fehlt die "Idee" was es sein kann und wie ich das Thema anpacke.
Wäre super wenn mir da jemand hilft!
Danke !!!
Edit: Es ist auch bei mir momentan so, dass ich die Datei
https://hostname:3000/socket.io/socket.io.js
Nicht aufrufen kann. Es kommt dort zu einem 522-Fehler. Ich komme an die Datei erst dran, wenn sich alles langsam beruhigt.

Kommentar