Backend sehr sehr langsam (Userabhängig)

Gesperrt
engine
Beiträge: 20
Registriert: Mo 2. Jan 2006, 15:48
Kontaktdaten:

Backend sehr sehr langsam (Userabhängig)

Beitrag von engine » Mi 18. Feb 2009, 15:12

Hallo zusammen,

ich habe folgendes Problem:

In der Administration habe ich 2 User:

1) Sysadmin
2) Redakteur

Wenn ich Content/Artikel aufrufe dauert es beim dem Administrator ca 3 sekunden bis sich der Baum aufbaut. Wenn ich mich als Redakteur (eingeschränkte Rechte) einlogge dauert es über 30 Sekunden. Woran kann das liegen? Der Kunde kann so auf jeden Fall nicht arbeiten :-(

Der Seitenbaum umfasst ca. 150-200 Kategorien mit jeweils einem Artikel.

Vielen Dank,

Jörn

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von Dodger77 » Mi 18. Feb 2009, 15:25

Welche Version setzt du ein?

engine
Beiträge: 20
Registriert: Mo 2. Jan 2006, 15:48
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von engine » Mi 18. Feb 2009, 15:26

4.8.10

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von Dodger77 » Mi 18. Feb 2009, 16:16

Kann ich von hier aus bisher nicht bestätigen. Ich habe extra einen Nutzer mit eingeschränkten Rechten (jeweils mit entsprechenden Rechten unter Content bzw. Bereiche getestet) angelegt. Merklich langsamer wird der Kategoriebaum unter "Content -> Artikel" bei einer lokalen 4.8.10 nicht angezeigt.

Müsste man mal schauen, ob das Problem auch bei anderen auftritt, um dem auf den Grund zu gehen. Zur 4.8.11 hat es zwar eine Änderung mit den Berechtigungen in diesem Bereich gegeben, diese dürfte aber keinen positiven Effekt auf die Performance haben.

Lässt sich das Problem in verschiedenen Browsern nachstellen? Tritt das nur beim ersten Laden auf und geht es danach flotter (z.B. beim Auf-/Zuklappen von Kategorien)?

engine
Beiträge: 20
Registriert: Mo 2. Jan 2006, 15:48
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von engine » Mi 18. Feb 2009, 17:09

Gestestet habe ich das im IE und FF.

Beide Browser sind lahm. Wenn der Baum einmal geladen wurde geht es allerdings schneller. Das ausklappen der einzelnen Bäume sgeht fix. Gehe ich dann wieder auf Artikel, dauert es wieder ewig.

Das Merkwürdige ist, dass es mit einem Adminaccount schneller geht...

Vielen Dank,

Jörn

thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von thepoet » Di 1. Sep 2009, 14:57

Würde mich interessieren, ob sich in der Hinsicht in absehbarer Zeit irgenwas ändern wird. Ich habe hier ein System (angefangen mit 4.6, kürzlich auf 4.8.12 hochgezogen) mit ca. 850 Kategorien und 3000 Artikeln (Tendenz im Moment +20 Artikel/Tag) das im Backend unerträglich langsam wird. Als Admin spürt man das hauptsächlich in der Kategorie-Übersicht, aber normale Redakteure warten auch auf die Artikelübersicht deutlich über zehn Sekunden (mit 4.6 zwei bis drei), in der Kategorieübersicht manchmal mehr als eine halbe Minute. Und nein, Hardware, Apache, MySQL und PHP selbst sind nicht das Problem.

Ich habe grad mal ein wenig in db_mysql.inc mitgelogt und festgestellt, dass allein das Anzeigen der aufgeklappten Kategorieübersicht hier 5800 Queries absetzt :(

IMHO rennt das Backend-System mit synchronen HTML-Anfragen langsam aber schmerzhaft an die Grenzen. Gibt's schon irgenwelche Pläne in Richtung v5, diese Teile auf Ajax umzustellen?

Fips
Beiträge: 105
Registriert: Fr 20. Feb 2009, 09:55
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von Fips » Mi 2. Sep 2009, 08:00

Hallo,
dieses Problem tritt bei uns auch auf (Contenido 4.8.12). Wir haben mehrere User mit eingeschränkten Rechten und das System war so langsam, dass wir allen Usern Admin-Rechte gegeben haben und dann konnten sie auch gut und schnell arbeiten. Ist zwar nicht Sinn und Zweck, aber für das Arbeiten unabdingbar, da am Tag mehrere User Daten einpflegen und bearbeiten. Es sind ca. 1000 Kategorien angelegt.
Dies habe ich auch schon im Forum angefragt.
http://forum.contenido.org/viewtopic.ph ... ps#p133535


Fips

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von Dodger77 » Mi 2. Sep 2009, 11:11

Das Problem bzgl. der Kategorieübersicht ist bekannt und wurde z.B. hier:

http://forum.contenido.org/viewtopic.php?f=62&t=23932
http://forum.contenido.org/viewtopic.php?f=62&t=23969

lang und breit diskutiert. Bei der Darstellung unter Content->Kategorie gibt es mindestens zwei Performancefresser:

1. Anzahl der Datenbankabfragen (und -verbindungen)
Da werden aktuell ca. 10 DB-Abfragen je dargestellter Kategorie abgesetzt. Es gibt da viele Ansätze, mit denen das komplett umgebaut werden könnte oder auf bestehender Basis optimiert werden kann. Man bekommt das nach ersten Tests von mir sicher auf unter 100 DB-Abfragen gesamt reduziert unabhängig von der Anzahl der Kategorien. Das Workflow-Plugin verursacht dort aber auch 2 Abfragen je Kategorie, die man evtl. auch vermeiden kann. Das ist insgesamt aber halt ein ordentlicher Aufwand, den erstmal jemand leisten muss.

2. Die Menge des HTML
Außerdem spielt bei der Darstellung auch die Menge an HTML eine Rolle, da man mit ca. 2,5 bis 3 (inkl. Workflow-Plugin) KB je Kategorie rechnen muss. Bei ca. 400 Kategorien sind wir also schon bei ca. 1 MB, das bei jedem Klick übertragen werden muss. Da könnte man natürlich auch einiges Einsparen. Eine wirklich merkbare Verbesserung wird dahingehend aber erst der Einsatz von AJAX bringen. Das ist allerdings ein ziemlich großer Aufwand.

Für die Abfragen bei den Berechtigungen ist auch noch etwas drin, denke ich. Grundsätzlich ist das aber bei einem Sysadmin/Admin natürlich performanter, da für diesen im Prinzip eine Abfrage der Berechtigungen ausreicht. Bei anderen Nutzern müssen evtl. bedeutend mehr Abfragen ausgeführt werden (Bereiche/Aktionen und Kategorien/Aktionen). Da werden schon bei ein paar hundert Kategorien tausende Abfragen zusammenkommen. Dadurch wird da immer ein Unterschied bleiben.

thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von thepoet » Mi 9. Sep 2009, 10:45

Ich habe hier einen für uns brauchbaren Fix eingebaut, indem ich in der conlib/perm.inc eine Timestamp und Lebensdauer für die Berechtigungen eingebaut habe. D.h. erst wenn die letzte Aktualisierung mehr als $perm_lifetime Sekunden zurückliegt, wird der ganze Berechtigungsbaum neu geladen. Zuvor wurde das für jede Kategorie beim Bauen der Baumansicht in der include.con_str_overview.php komplett durchgerattert.

[ToDo: optimalerweise sollte $perm_lifetime über config.local.php gesetzt werden]

Code: Alles auswählen

--- perm.inc.orig	2009-04-24 11:05:22.000000000 +0200
+++ perm.inc	2009-09-09 11:35:32.980384200 +0200
@@ -41,6 +41,8 @@
 	var $actioncache = array ();
 	var $db;
 	var $db_perm;
+	var $perm_timestamp = 0;
+	var $perm_lifetime  = 1800;
 
 	function getGroupsForUser($user)
 	{
@@ -140,7 +142,9 @@
 
 		global $sess, $area_rights, $item_rights, $db, $client, $lang, $auth, $cfg, $changelang, $changeclient;
 
-		$return = "1";
+		if( isset($area_rights) && isset($item_rights) && $this->is_perm_current() )
+			return 1;
+		
 		//if not admin or sysadmin
 		if (!$this->have_perm())
 		{
@@ -169,6 +173,8 @@
 			}
 
 		}
+		
+		$this->perm_timestamp = time();
 
 		return $return;
 	}
@@ -267,7 +273,7 @@
 			{
 				//if have action for area + action +item  check right for client and lang
 				return true;
-			} elseif ($item_rights[$area] != "noright")
+			} elseif ($item_rights[$area] != "noright" && ! $this->is_perm_current() )
 			{
 
 				$groupsForUser = $this->getGroupsForUser($auth->auth[uid]);
@@ -349,6 +355,13 @@
 
 	}
 
+	function is_perm_current()
+	{
+		if( time() - $this->perm_timestamp < $this->perm_lifetime )
+			return true;
+		return false;
+	}
+
 	function have_perm_area_action($area, $action = 0)
 	{
 		global $area_rights, $client, $lang, $cfg;

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von Dodger77 » Mi 9. Sep 2009, 11:09

Ich habs mal verschoben nach Bugs. Sollte man sich mal ansehen.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von derSteffen » Sa 9. Jan 2010, 17:33

Hallo,

wo müßte denn der Code rein? Also an welche Position in der conlib/perm.inc?

Vielen Dank

MfG Steffen

DerFrank
Beiträge: 72
Registriert: Do 17. Dez 2009, 12:37
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von DerFrank » Do 14. Jan 2010, 20:56

Noch Probleme mit Kategorien? Hier vorab ein Screenshot: http://tr.im/Kpyo

Kommt bei ausreichendem Interesse bald auch als CE-Version
aitsu open source cms framework für contenido bei googlecode...

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Backend sehr sehr langsam (Userabhängig)

Beitrag von idea-tec » Fr 15. Jan 2010, 08:55

Frank ... bekommt ihr aitsu nicht verkauft?
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Gesperrt