Jump to content
xt:Commerce Community Forum

Bis wie viel Artikel ist der Shop ausgelegt


Just4fun

Recommended Posts

Hallo,

wir haben in unserem shop ca 15 000 Artikel der ist aber so langsam das es nimmer geht das dauert alles ewig. Server ist dein VDS bei Internet X,

was stimmt da nicht es dauert alles ewig und 2 tage. die suche geht gar nicht richtig das dauert auch alles.

gruß

Link to comment
Share on other sites

wie wäre es denn mal mit einem leistungsstarkeren server ?

Rootserver mit schön viel Arbeitsspeicher und einer schnellen Cpu...

Eventuell sollte man das ganze auch auf 2 Server auslegen der Apache auf einem eigenen und die Datenbank auf dem anderen...

Link to comment
Share on other sites

Das ist bei 15.000 Artikeln dann wohl doch etwas übertrieben. Auf einem guten WebPack von HostEurope sind 15.000 Artikel überhaupt kein Problem, dafür braucht man wirklich keine teuren root-Server. Zumindest solange man nicht 10.000 Besucher am Tag hat.

wie wäre es denn mal mit einem leistungsstarkeren server ?

Rootserver mit schön viel Arbeitsspeicher und einer schnellen Cpu...

Eventuell sollte man das ganze auch auf 2 Server auslegen der Apache auf einem eigenen und die Datenbank auf dem anderen...

Link to comment
Share on other sites

Hallo,

wir haben in unserem shop ca 15 000 Artikel der ist aber so langsam das es nimmer geht das dauert alles ewig. Server ist dein VDS bei Internet X,

was stimmt da nicht es dauert alles ewig und 2 tage. die suche geht gar nicht richtig das dauert auch alles.

gruß

Mojn,

bei einem Bekannten -www.elektrohandel-roll.de- der ca. 6000 Artikel hat und bei 1und1 gehostet ist, gabs ähnliche Probleme und Mahnung von 1und1 wegen zuviel Trafic auf dem DB-Server.

1. Haben den DB-Cache eingeschaltet im Admin - Cache.

Das führte zwar zur deutlichen Traffic-Entlastung aber das /cache Verzeichnis lief voll. Dafür musste erst im XT was geändert werden.

2. Den größten Gewinn in Sachen Tempo gabs, als wir die MySQL Datenbank von einer 5er ind eine 4er kopiert haben. Lt. 1und1 haben die Probleme mit der MySQL Version 5.

Vielleicht hilft dir dieser Erfahrungsbericht.

Viele Grüße

Michael

Link to comment
Share on other sites

aber das /cache Verzeichnis lief voll. Dafür musste erst im XT was geändert werden.

Darf man fragen, was ihr da geändert habt? In unserem DB-Cache liegen schon so viele Files, dass ich da mit FTP gar nicht mehr rankomme ;)

Generell kann man vieles tun, um den Shop zu beschleunigen. Tipps dazu findet man zahlreich hier im Forum (z.B. anzeige neuer Artikel und der Artikelanzahl hinter den Kategorien ausschalten, nicht benötigte Boxen aus der boxes.php auskommentieren, Suchfunktion nicht in der Artikelbeschreibung suchen lassen, und letztendlich: SQL-Queries optimieren, wobei letzteres fast schon eine Lebensaufgabe ist und eigentlich von den Entwicklern erledigt werden sollte :D )

Und zur eigentlichen Frage: Hier im Forum sind Leute unterwegs, die haben XT mit einigen Optimierungen erfolgreich für zehntausende oder gar hunderttausende Artikel laufen. Bei solchen Dimensionen ist ein Root Server aber schon von Vorteil - egal wo ;)

Cheers,

IaN

Link to comment
Share on other sites

Darf man fragen, was ihr da geändert habt? In unserem DB-Cache liegen schon so viele Files, dass ich da mit FTP gar nicht mehr rankomme ;)

:-))

Bei uns war es nach 10 Tagen mit Cache kurz vorm Exitus, da die Anzahl der Files und der verfügbare Platz fast erreicht war...

Um es mir einfach zu machen und nicht zu viel Zeit an der Stelle zu investieren habe ich eine nicht ganz elegante, aber dafür sehr effektive und vor allem funktionierende Methode gewählt. Ich habe ein kleine Funktion geschrieben, die einfach die Files im /cache/ brutal löscht, wenn sie älter sind als die im Admin eingestellte Cache-Life-Time. (Bei uns auf 1200 gestellt !).

Dann die Funktion im Index des Templates aufgerufen. (Ich weiss - das kostet zwar etwas Zeit, da es nun jedesmal aufgerufen wird - aber bei der Menge an Code der in der application_top aufgerufen wird, fällt das auch nicht mehr auf...). Dann für den Admin-Teil das Cache disabled, da es hier zu "lustigen" Effekten beim Export z.B. kam (nicht durch das Löschen sondern durch den Cache überhaupt)

function losch_cache(){

/// löschen der Cache DB Files !!!

if(!file_exists(SQL_CACHEDIR))return;

$handle=opendir(SQL_CACHEDIR);

while ($file = readdir ($handle)) {

  if ($file != "index.html" && $file != "." && $file != ".." && (substr($file,-4)=='.xtc' OR substr($file,-5)=='.html')  ) {

    if (file_exists(SQL_CACHEDIR.$file) && filemtime(SQL_CACHEDIR.$file) < (time() - DB_CACHE_EXPIRE)) {

      if (file_exists(SQL_CACHEDIR.$file)) @unlink(SQL_CACHEDIR.$file);

    }

  }

}

closedir($handle);

return;

}

Übrigens gabs noch ein doofes Problem mit der Suche bzw. mit dem vom Provider zugelassenen Memory und einer hohen Anzahl gefundenen Artikel mit aufwendiger Description. Hierzu musst ich die splitPageResults ein wenig trimmen...

Und zur eigentlichen Frage: Hier im Forum sind Leute unterwegs, die haben XT mit einigen Optimierungen erfolgreich für zehntausende oder gar hunderttausende Artikel laufen. Bei solchen Dimensionen ist ein Root Server aber schon von Vorteil - egal wo ;)

Klar - ein Root-Server ist immer von Vorteil...

Leider ist das nun mal nicht ganz billig und wir bewegen uns im OpenSource Bereich und wollen alle möglichst kostengünstig auskommen.

Wenn einmal die Anzahl der Besucher/Bestellungen pro Tag die Anzahl der eingestellten Artikel übersteigt, kann man sich auch ne Sun 10k mit InterShop leisten..:-))

Link to comment
Share on other sites

  • 2 months later...

:-))

Bei uns war es nach 10 Tagen mit Cache kurz vorm Exitus, da die Anzahl der Files und der verfügbare Platz fast erreicht war...

Um es mir einfach zu machen und nicht zu viel Zeit an der Stelle zu investieren habe ich eine nicht ganz elegante, aber dafür sehr effektive und vor allem funktionierende Methode gewählt. Ich habe ein kleine Funktion geschrieben, die einfach die Files im /cache/ brutal löscht, wenn sie älter sind als die im Admin eingestellte Cache-Life-Time. (Bei uns auf 1200 gestellt !).

Dann die Funktion im Index des Templates aufgerufen. (Ich weiss - das kostet zwar etwas Zeit, da es nun jedesmal aufgerufen wird - aber bei der Menge an Code der in der application_top aufgerufen wird, fällt das auch nicht mehr auf...). Dann für den Admin-Teil das Cache disabled, da es hier zu "lustigen" Effekten beim Export z.B. kam (nicht durch das Löschen sondern durch den Cache überhaupt)

function losch_cache(){

/// löschen der Cache DB Files !!!

if(!file_exists(SQL_CACHEDIR))return;

$handle=opendir(SQL_CACHEDIR);

while ($file = readdir ($handle)) {

  if ($file != "index.html" && $file != "." && $file != ".." && (substr($file,-4)=='.xtc' OR substr($file,-5)=='.html')  ) {

    if (file_exists(SQL_CACHEDIR.$file) && filemtime(SQL_CACHEDIR.$file) < (time() - DB_CACHE_EXPIRE)) {

      if (file_exists(SQL_CACHEDIR.$file)) @unlink(SQL_CACHEDIR.$file);

    }

  }

}

closedir($handle);

return;

}

Übrigens gabs noch ein doofes Problem mit der Suche bzw. mit dem vom Provider zugelassenen Memory und einer hohen Anzahl gefundenen Artikel mit aufwendiger Description. Hierzu musst ich die splitPageResults ein wenig trimmen...

Klar - ein Root-Server ist immer von Vorteil...

Leider ist das nun mal nicht ganz billig und wir bewegen uns im OpenSource Bereich und wollen alle möglichst kostengünstig auskommen.

Wenn einmal die Anzahl der Besucher/Bestellungen pro Tag die Anzahl der eingestellten Artikel übersteigt, kann man sich auch ne Sun 10k mit InterShop leisten..:-))

Hallo habe deinen Beitrag gelesen.. sorry für die Frage aber ich weiss noch nicht genau wo ich es einbinden muss. Könnt Ihr mir vielleicht direckt sagen wo ich es machen muss.

Danke in vorraus...

Link to comment
Share on other sites

Hallo Tobi030,

ich habe meine Templates etwas anders als "normal" gemacht - daher habe ich es im Template einsetzten können.

Du kannst es in der /index.php einbauen.

Die Funktion ganz ans Ende des Programms (oder auch als externe Datei - wie du magst) nach dem letzten Befel "include ('includes/application_bottom.php');" und den Funktionsaufruf setzt du vor der Zeile $smarty->display(CURRENT_TEMPLATE.'/index.html');

einfach: losch_cache();

Viele Erfolg!

Michael

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...