Bogus: Wie stark wird der server belastet?

Hye,

einige von euch werden meine sites auf http://www.ford-network.at bestimmt schon kennen.
Das ganze ist eine art verzeichniss ähnlich yahoo. das problem bei der ganzen sache ist, das hinter jedem link die anzahl der hits, und evtl. eine 'new' bzw. 'hot' graphic angezeigt werden. So wie das ganze jetzt programmiert ist, muss ich jedesmal alle (ca. 1600) sites neu generieren damit diese angaben aktualisiert werden. da es aber bereits jetzt schon langsam geht, und noch weitere kategorien (ca. 1000 bis) folgen, sowie natürlich unmengen an einträgen, wird das ganze auf diese art unsinnig.

deshalb habe ich das ganze versuchsweise (am localhost) auf SSI-tags welche dieses daten abfragen umgestellt. bei einer anzahl von maximal 20 links pro seite wird der seitenaufbau auf meinem p150 schon extrem langsam. eben wegen der SSI-tags. wie könnte das ganze dann am webserver aussehen? wie stark bremst SSI den seitenaufbau - vorallem wenn pro site mindestens 20 SSI-calls durchgeführt werden?

Hat jemand eine bessere idee um dieses problem zu lösen?
geht es zb. schneller wenn ich statt einem cgi-programm aufzurufen nur eine text-datei einbinde?

wäre über jede art von hilfe sehr, sehr, sehr dankbar. denn dieses problem ist extrem störend.
(zb. auf <www.gastro-network.at> gibt es jetzt 2600 kategorien. das neu generieren der seiten dauert ewig. wenn ich für dieses kategorien zb. ein 'select field' generieren will, bricht der server wegen 'timeout' ab :-(
vielleicht habt ihr ja auch dazu vorschläge...??)

danke schon jetzt und cu

  1. Hi Bogus,

    ich bin mir nicht ganz klar wie Du es genau machst, aber soweit ich es verstehe, rufst Du mit für jeden Link mit SSI ein CGI-Skript auf, daß prüft, wie alt der Link ist, und dann die entsprechende Grafik anzeigt. Wenn Du das so machst, ist das Problem nicht SSI, sondern das CGI-Skript, daß Du 20mal aufrufst. Denn jeder Aufruf eines CGI-Skripts generiert, wenn ich mich recht erinnere, einen gewisser overhead beim Starten, zumindest wenn der CGI-Interpreter nicht wie bei mod_perl direkt in den Apache kompiliert wird. 20mal ein einfaches Skript aufrufen dauert deswegen erheblich länger, als einmal ein komplexes, das das gleiche erledigt. Bei SSI sollte das nicht so sein, weil die Seite dabei einfach einmal durch den SSI-Interpreter des Servers geschickt wird.
    Wenn Du das Problem allein mit SSI erledigen kannst, noch dazu mit einfachen includes, dann sollte das erhebliche schneller sein. Ich sehe aber nicht, wie Du darum rumkommst, die Seiten relativ oft neu zu erzeugen, weil Du ja trotzdem noch neue Links hinzufügen mußt, und soweit ich weiß, muß das Links-Skript dann immer alles neu erzeugen :-(.
    Wenn Du also so oft Änderungen vornimmst, dann wäre es vielleicht sinnvoller, die Seiten überhaupt nicht mehr statisch auszugeben, sondern bei jedem Request dynamisch zu erzeugen, solange Du nicht wirklich sehr viel Hits bekommst, sollte es für den Server erträglich sein - zur Illustration ein paar Benchmarks, die ich vor kurzem gefunden habe (SSI leider nicht):

    http://www.progressive-comp.com/Lists/?l=php3-general&m=92185157620796&w=2

    Grüße
    Stephan

    1. hye stefan

      und soweit ich weiß, muß das Links-Skript dann immer alles neu erzeugen :-(

      erstmal danke für die antwort.
      anscheinend kennst du 'Links' aber nicht mein 'Links'. Mein script nennt sich aktuell 'Network 2.0' und baut auf 'Links 2.0' auf. wurde aber EXTREM verändert. so stimmt auch das mit dem 'Build all' nicht mehr. Ich habe ein 'Building menu' gecodet welches das generieren der sites komplett verändert. so gibt es (die wichtigste neuerung) eine 'build changed' funktion welche nur die sites aktualisiert auf denen ein link eingefügt wurde - und natürlich die darüberliegenden kategorien damit die anzahl der links in jeder kategorie stimmt. somit bleibt mir das generieren sämtlicher sites auf einmal wegen ein paar links erspart.
      'Network' soll eine art profi version von 'Links' werden. welche auf eine datenmenge von ca. 1 mill links und an die 2000-6000 kategorien ausgelegt sein soll. das es bis dorthin ein weiter weg ist, und das die endversion sicherlich nicht mehr mit perl laufen wird ist mir bewusst. aber ich programmiere je nach anforderungen meiner homepages (ford-network.at und gastro-network.at). so gibt es bei letzterem bereits probleme. bei einer anzahl von 1600 kategorien funktioniert das generieren der selectfields nicht mehr - wegen des scheiss cgi-timeout. usw.

      die anzahl der hits auf der page ist viel zu hoch um das ganze direkt mit dynamischen dateien auszugeben.
      hatte ich mir auch schon überlegt.

      vielleicht kannst du mir ja trotzdem noch sagen ob das einfache einbinden von text schneller ist als der aufruf eine scripts (viel schneller oder unwesentlich?)
      achja, falls du näheres über 'Network' wissen willst guck mal auf <www.ford-network.at/LLinks> dort gibts immer aktuelles - zur zeit noch die alte version called 'Language Links'. nur soviel 'Network' ist ne wucht im vergleich zu 'Links'.

      1. Hi Bogus,

        vielleicht kannst du mir ja trotzdem noch sagen ob das einfache einbinden von text schneller ist als der aufruf eine scripts (viel schneller oder unwesentlich?)

        Das Einbinden über SSI ist viel schneller, da du den Perl-Interpreter nicht starten mußt, und schon gar nicht 20mal, wie in der performancetechnisch schlechtesten Version wie oben dargestellt. Also durchaus wesentlich.

        achja, falls du näheres über 'Network' wissen willst guck mal auf <www.ford-network.at/LLinks> dort gibts immer aktuelles - zur zeit noch die alte version called 'Language Links'. nur soviel 'Network' ist ne wucht im vergleich zu 'Links'.

        Danke, aber ich kenne Links, weil ich mich vor ein paar Monaten davon hab' inspirieren lassen, was ähnliches mit PHP und MySQL zu machen (no perl on my servers...). Wir können uns ja gegenseitig die Ideen für neue Features klauen :-)
        http://analogon.com/pythia/
        Ich habe mich für vollständig dynamische Seiten entschieden, weil die meisten solcher kleinen Suchmaschinen meiner Meinung nach nie soviel Hits erhalten werden, daß der Performanceunterschied ein Problem ist, und die Einfachheit der Administration den Performancenachteil durchaus ausgleicht. Meine verschiedenen eigenen Seiten, für die ich es geschrieben habe, haben alle <5000 Hits pro Monat, und da alle nichtkommerziell sind, und recht spezielle Interessen ansprechen, wird sich das so schnell auch wohl nicht ändern... Und wenn doch, werden die Segnungen aus dem Hause Intel & Co. sicher schneller sein :-)

        Grüße
        Stephan

  2. Also, wenn du nur Datum oder so was einfügst, sollte die Sache nicht so abgebremst werden. Anders ist das, wenn du ein CGI-Programm per SSI ausführst. Dann ist es ja praktisch so langsam wie normales CGI. Wenn du auch noch 20 Programme pro Seite startest, dann ist der Server schnell am Ende. Mein Tip. Laß ein CGI-Programm die Sache in ne Datei schreiben, und binde die dann per SSI ein. Wenn du etwas testen willst, findest du auf meiner HP ein Programm, mit dem du Server gut austesten kannst. Es liefert sehr genaue Ergebnisse.