Tips zur Organisation von Coppermine bei Migration Tips zur Organisation von Coppermine bei Migration
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Tips zur Organisation von Coppermine bei Migration

Started by amadeus, September 24, 2009, 07:06:37 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

amadeus

Hallo,

ich habe die Aufgabe aus einer alten Bildergalerie ~180000 Bilder aus den Jahren 2003 - 2009 in Coppermine zu übernehmen.
Die technische Seite der Übernahme ist soweit gelöst.
Nun die Frage, welche PHP und Coppermine Einstellungen sind vorzunehmen um Coppermine möglichst perfomant zu halten bei der Menge an Bildern?

Zur Verdeutlichung, ist es z.B. besser die Jahre als Kategorien einzuteilen? (In der alten Galerie war es so das alle Bilder sozusagen als Alben in der Kategorie *keine Kategorie* hintereinander weg zu sehen waren)
Da die Zugriffe am bestimmten Tagen sehr gehäuft auftreten, was ist z.B mit den PHP Einstellungen memory_limit und max_execution_time etc?

Gruße, amadeus


Αndré

Wenn ich mich recht erinnere, wurde dieses Thema irgendwo im Englischen Bereich schonmal besprochen. Leider habe ich den Thread gerade nicht zur Hand. Eventuell findest du ihn ja über die Suchfunktion. Vielleicht fällt mir der Titel demnächst auch wieder ein 8)

Joachim Müller

Bei dieser großen Menge an Bildern kannst Du in der Tat auf Performance-Probleme stossen. Das liegt aber weniger an cleverem Design von Kategorien, Unterkategorien und Alben, sondern mehr an der Größe der Datenbank und der daher relativ langsamen Datenbankabfragen. Das Ziel ist also, die Anzahl der Datenbankabfragen relativ gering zu halten. Dazu solltest Du allen unnötigen Schnick-Schnack abschalten, der Abfragen kostet - dazu gehören vor allem Meta-Alben auf der Index-Seite (ganz besonders "random" ist da ein Ressourcenfresser). Außerdem brauchst Du natürlich entsprechend Dampf auf Seiten des Servers: mit Shared Hosting bei einem Billighoster ist da natürlich kein Blumentopf zu gewinnen, wohl aber mit einem dedicated server, entsprechender Rechenleistung und viel RAM.
Ansonsten würde ich mir bei der Erstellung der Kategorie-Struktur darüber Gedanken machen, wie die Besucher der Seite möglichst einfach an das Gesuchte kommen: wird es Ihnen logisch erscheinen, anhand einer Jahr -> Monat -> Tag Struktur zu navigieren? In den seltensten Fällen ist das hilfreich, wenn Du nicht eine sehr filigrane Verstichwortung realisieren kannst und die Besucher über die Suche zum Ziel kommen. Aber aufgepasst: die Suche ist natürlich auch nicht gerade ein Ressourcenschoner bei der Menge an Daten!
Damit wir mehr sagen können würde ich Dich daher bitten, erst mal ein paar Details abzulassen, um was für Material es sich handelt, wie die derzeitige Struktur ist und wie die Besucher der Seite wohl aussehen werden.

Quote from: amadeus on September 24, 2009, 07:06:37 PMIn der alten Galerie war es so das alle Bilder sozusagen als Alben in der Kategorie *keine Kategorie* hintereinander weg zu sehen waren
Wieviele Dateien pro Album im Schnitt? Oder anders gefragt: auf wie viele Alben verteilen sich die 180.000 Bilder?

Quote from: amadeus on September 24, 2009, 07:06:37 PM
Da die Zugriffe am bestimmten Tagen sehr gehäuft auftreten, was ist z.B mit den PHP Einstellungen memory_limit und max_execution_time etc?
Da gibt es nicht die eine Super-Einstellung. Kommt natürlich auf die zur Verfügung stehenden Ressourcen in Hardware an. Letztendlich kann Dir das aber nur der erfahrene Admin mitteilen, indem er die Logs anschaut, Bottlenecks aufzeigt und entsprechend Ressourcen zuweist. Wir reden hier über einen dedicated server, oder?
Bringe am besten mal mehr Butter bei die Fische. Ein Link wäre auch genehm.

amadeus

Hallo,

danke erst einmal für die Antworten.

Ja, es ist ein dedicated Server mit Quad-Core AMD Opteron, 1354 Processor mit 6 GB Ram.
Bei den alten Alben sind im Schnitt bis 100 Bilder, bei den neueren Alben einzelne bis über 200.
Die Alben verteilen sich folgendermassen.

2003    15 Alben  ~ 1000 Bilder Schnitt   66 Bilder
2004    77 Alben  ~ 8900 Bilder Schnitt 109 Bilder
2005  202 Alben  ~30200 Bilder Schnitt 149 Bilder
2006  278 Alben  ~43700 Bilder Schnitt 157 Bilder
2007  306 Alben  ~39100 Bilder Schnitt 128 Bilder
2008  543 Alben  ~68100 Bilder Schnitt 125 Bilder
2009 bis jetzt 391 Alben ~ 105000 Bilder  Schnitt ca 250 Bilder
An jedem Wochenende kommen ca. 3-4 Alben dazu.

Bis jetzt ist geplant auf der Startseite lediglich die Kategorien anzuzeigen. In die Kategorien kommen die Jahre also 2008, 2007
Darunter soll es gleich mit den Alben in *keine Kategorie* losgehen.
Die Betrachter sollen gar nicht lange klicken.

Link zur "alten" Coppermine Galerie auf dem alten Server >http://www.hi-living.de/galerie/index.php<
Die Migration ist noch nicht abgeschlossen, daher gibt es auf der Startseite der Community links im Menü noch Galerie alt & Galerie neu.
http://www.hi-living.de
"Vor" der Coppermine sitzt da noch ein Newsscript, da dieses die Zugriffe auf die Alben zählen kann, das soll ja die Coppermine 1.5 dann auch können.
Wenn die 1.5 draußen ist, fliegt das Newsscript raus.

Auf dem neuen Server ist die Coppermine ebenfalls 1:1 mit allen Daten installiert, auch ohne vollständige Migration, da wir dort die neue Community drumherum entwickeln. Dort steht aber noch keine Domain zur Verfügung, lediglich die IP Adresse.
http://85.25.141.115/galerie/

Ob auf der Startseite index.php, noch Sachen dazukommen steht noch nicht genau fest, aber wenn du sagst das das Leistung klaut, lassen wir es wohl.
Warum wir die alten Bilder noch drinlassen? Weil wir sehen das die User immer noch sich die alten Bilder ansehen ;-)

Die Betrachter haben sich daran gewöhnt das die neuesten Bilder immer "oben" stehen, wenn sie ältere sehen wollen gehen sie (scrollen) nach "unten", von da ab "blättern" sie zurück bis sie das gewünschte Album gefunden haben.
Daher sind in der Ursprungsgalerie alle Alben in der "*keine Kategorie*" gelistet, die User können also beliebig einfach zurückblättern.
Das es jetzt in Jahre eingeteilt wird ist dem Perfomancegedanken geschuldet. Das Coppermine dann "nicht so viel zu zun hat" wenn nur ein Jahr gleich zu sehen ist. Oder ist das falsch gedacht?

Das soll es ersteinmal von mir mit den Infos gewesen sein, braucht ihr noch andere?

Gruß amadeus

amadeus

Ganz vergessen... Sorry, die Uhrzeit...
Die Bilder werden ab und zu in der Woche, ein manchmal zwei Alben, meist aber am Wochenende gemacht.
Das bedeutet das am Samstag die Bilder von Freitag zu sehen sind, am Sonntag die von Samstag.
An diesen Tagen sind bis zu 100 Betrachter gleichzeitig auf der Galerie und klicken sich durch.
Das ist es eigentlich was uns Probleme bereitet. Ich habe es erlebt das sich die Seite searchnew.php nicht mehr aufgebaut hat.
Erst Nachts als die Betrachter weg waren war es möglich weiter Alben zu erstellen.
Wenn nix los ist, tuts der alte Server noch in akzeptabler Geschwindigkeit, aber nur dann ;-)

Gruße, amadeus

Joachim Müller

Mehrere Hundert Alben innerhalb einer Kategorie halte ich für absoluten Overkill; da nutz absolut niemand die Pagination. Ich würd mir daher unbedingt eine zusätzliche Navigationsebene einbauen; in Eurem Fall eine Monatsebene, so dass die Organisation dreistufig wird: Jahr (Kategorie) -> Monate (Kategorie) -> Event (Album). Ist ja eh kein Problem, wenn der Galerie-Index nicht Eure Startseite ist und die Benutzer nochmals vorsortiert werden und auf die neuesten Events zuerst treffen.
Außerdem halte ich die Verwendung des iframes für absolut nicht mehr zeitgemäß: ich würde mit Abstand die meiste Anstrengung darauf legen, den Iframe loszuwerden. Denn was machen denn Eure Besucher: sie schauen sich die Fotos an von Events, auf denen sie selbst Gäste waren. Wenn sie sich selbst oder Freunde auf Bildern sehen, dann legen sie die Seite in den Browser-Favoriten ab oder senden einen Link an Freunde. Das wird aber durch die Iframes erschwert oder unterbunden.
Ebenfalls sehr grenzwertig finde ich, dass der Link zum Bilderarchiv auf eine Suchseite führt; das wäre nicht das, was ich erwarten würde als Benutzer.

Quote from: amadeus on September 26, 2009, 01:30:54 AM
Das ist es eigentlich was uns Probleme bereitet. Ich habe es erlebt das sich die Seite searchnew.php nicht mehr aufgebaut hat.
Der Upload-Prozess (oder genau genommen die Größenberechnung für Thumbnails, Intermediates und Fullsizes) sind mit Abstand die allergrößten Ressourcenfresser überhaupt. Wenn's bei Euch also eng zu geht mit den Ressourcen würde ich in Stoßzeiten die Bilder schon auf dem Client vorbehandeln (also in die richtige Größe bringen) oder ein Skript verwenden, das die Auslastung etwas verteilt (timer.php bzw. das massImportPlugin).

Quote from: amadeus on September 26, 2009, 01:21:13 AM"Vor" der Coppermine sitzt da noch ein Newsscript, da dieses die Zugriffe auf die Alben zählen kann, das soll ja die Coppermine 1.5 dann auch können.
Wenn die 1.5 draußen ist, fliegt das Newsscript raus.
Wenn's nur darum geht, die Zugriffe zu loggen, dann benutzt doch einen richtigen Zugriffszähler. Meine Empfehlung: Google Analytics.
In Wirklichkeit benötigt Ihr aber das News-Skript, um die Besucher mit sanfter Gewalt dahin zu schubsen, wo sie hinwollen: zu den jeweils neuesten Bildern. Das kann man aber ganz einfach mit einer vor die Galerie geschalteten Landing Page realisieren, die dann per cpmFetch die neusten Events herauspickt und darstellt. Wie sowas geht kannst Du Dir gerne mal anschauen unter osterburken.net: da wird auf der Startseite allerlei Neues kumuliert aus Galerie und Forum. Der Content aus der Galerie wird dabei mit cpmFetch dargestellt.