Ich habe eine Redmine-Instanz (Bitnami Stack), die ungewöhnlich langsam ist. Da ich nur versuche, dem auf den Grund zu gehen, habe ich einige Theorien, die ich hier diskutieren möchte. Wenn jemand Ideen dazu hat, kann er gerne helfen :-)
System:
Bitnami Stack mit Redmine 1.4.x wurde wie folgt auf Bitnami Stack mit Redmine 2.1.0 aktualisiert:
- mysqldump'd die alte Datenbank
- installierte neuen Bitnami Stack mit Redmine 2.1.0
- importierte den Dump sauber mit der Neuerstellung aller Tabellen
- Rechen db: migrieren und so weiter
Der Stack wird auf einer virtuellen Maschine mit OpenSUSE 12.1 ausgeführt. Die Ressourcen sollten kein Problem sein, da immer mehrere Gigabyte an freiem RAM vorhanden sind und CPU-Spitzen bei Redmine-Anforderungen nur bis zu 50% von 2 CPU-Kernen ausmachen. Außerdem greifen nur wenige Benutzer darauf zu.
Was absolut wichtig sein kann: Die Benutzeranmeldung erfolgt über LDAP (ActiveDirectory).
Problem:
Bei jeder Anfrage reagiert Redmine ungewöhnlich langsam. Manchmal dauert es 3 Sekunden, manchmal sogar bis zu 10 Sekunden, um die Seite zu liefern.
Meine Gedanken:
- Ich weiß nicht, ob in den LDAP-Einstellungen von Redmine die Option "On-the-Fly-Benutzererstellung" aktiviert ist. Ich kann diese erst heute überprüfen. Aber könnte das Fehlen eines Schecks hier ein Problem sein? Die Authentifizierung dauert einen Moment, wenn Sie sich normal und bestätigt anmelden. Wenn der Benutzer jedoch nicht im laufenden Betrieb erstellt wird, wird nur eine Sitzung beibehalten oder bei jeder Anforderung erneut authentifiziert, sodass dies das Problem sein könnte.
- Ist Redmine 2.x vielleicht so viel langsamer als 1.4.x, dass es einfach normal ist?
- Ist die Apache2 + Passenger-Konfiguration von Bitnami fehlerhaft?
- MySQL-Indizes wären kein Problem, da MySQL auf der CPU sehr ruhig ist, oder?
Eine weitere Sache, die mir sehr seltsam erscheint, aber möglicherweise ein falsches Messergebnis ist (muss morgen überprüft werden, wenn ich die Maschine sehe):
Ich habe versucht zu überprüfen, ob es sich um ein Netzwerkproblem handelt (Netzwerk reagiert langsam, möglicherweise DNS oder ähnliches; Server befindet sich im lokalen Netzwerk). Es schien, als wären Anfragen auf localhost (Browser direkt auf der OpenSUSE-VM) schnell, Anfragen über das Netzwerk jedoch nicht. Normalerweise würde ich an ein Netzwerkproblem denken, aber das Seltsame ist: Wenn man tatsächlich die Verbindungszeiten misst, ist das Netzwerk höllisch schnell. Ping ist gut, auch statische Lieferzeiten. Es schien, als würden nur Redmine-seitig berechnete Seiten langsam vom Anwendungsserver gesendet, während Apache noch schnell ist - aber nur, wenn es sich bei der Anforderung um eine Remote-LAN-Anforderung handelt. Sehr seltsam ... aber wie ich oben erwähnt habe, muss ich diesen noch einmal überprüfen. Es scheint mir nur unlogisch.
quelle
hi
die Hardware-Interrupt-Zeit?Antworten:
Versuchen Sie, die Redmine-Protokolle erneut zu überprüfen, wenn Probleme bei der Verarbeitung der Seiten oder Benutzeranmeldungen auftreten, wenn Sie der Meinung sind, dass die LDAP AD-Anmeldung fehlerhaft ist.
Überprüfen Sie auch die Apache- und mySQL-Protokolle. Der Webserver ist möglicherweise mit etwas anderem beschäftigt, oder Ruby steckt möglicherweise beim Rendern eines nicht unterstützten Plugins fest. MySQL führt möglicherweise eine lange laufende Abfrage aus und so weiter.
Wenn Sie alle Dienste neu starten, die die Redmine-Instanz bedienen - läuft sie am Anfang schnell und verlangsamt sich nach einer Weile oder ist sie von Anfang an langsam?
Wie im Kommentarbereich erwähnt, können auch Festplatten-E / A-Vorgänge fehlerhaft sein. Versuchen Sie, Webserver-Protokolle zu beenden, während Sie auf die Redmine-Weboberfläche klicken, um eine Vorstellung davon zu bekommen, was beim Rendern am meisten Zeit in Anspruch nimmt.
Versuchen Sie auch, Ihre Netzwerkverbindung zur Redmine-Instanz zu testen (nicht nur mit Ping / ICMP), sondern versuchen Sie auch, statischen Inhalt zu laden (Download) oder einige Dateien über Port 80 oder 443 zu übertragen (Upload).
Versuchen Sie, den Paketverlust, die Umlaufzeit und den Jitter (wie viele Pakete nicht in der richtigen Reihenfolge ankommen) zu messen, um eine Vorstellung davon zu erhalten, ob das Netzwerk nicht fehlerhaft ist.
quelle