C-Programm anstelle von PHP
Thomas Schmieder
- webserver
Guten Abend liebe Gemeinde,
ob Ihr mir bei meinem Anleigen helfen könnt und wollt, weiß ich fühestens nach dem Absenden dieses Postings, aber ich will es mal wagen.
Es gibt da mehrere Fragen.
Ich berechne derzeit mit einem PHP-Script aus der Datei ip_traffic.log den Traffic auf meinem Webserver. Das passiert so viermal täglich (dafür könnte ich ein ChronJob gebrauchen), damit ich rechtzeitig merke, wenn mal wieder der Wurm drin steckt.
Inzwischen habe ich aber über eine Million Zeilen pro Monat. Diesen werden es wohl so 1.600.000 werden. Das PHP-Script ist da langsam am Ende. Die Ausführungszeit beträgt schon über 75 Sekunden und ich mag die Variable in der php.ini nicht noch weiter raufsetzen.
Nun habe ich ja mal C gelernt. Allerdings habe ich das nie auf dem Linux-Rechner angewandt sondern nur aud DOSen. Kann mir da einer kurz erklären, was ich machen muss, damit das auf dem Linux-Rechner klappt? (Das war die erste Frage)
Für den Fall, dass ich das hinbekomme, möchte ich das Ergebnis trotzdem in HTML (also über die PHP-Schnittstelle) ausgeben. Kann ich dafür popen() benutzen und wie müßte ich das machen? (das war die zweite Frage)
Wenn ich bei PHP bleiben sollte für die Auswertung (wegen der schönen Diagramme die da möglich sind -> gd-lib), wie kann ich die Variable für die maximale Ausführeungszeit nur für dieses Script hochsetzen? (das war dann die dritte Frage)
Gibt es in der bash eine Möglichkeit, Spaltenwerte zu addieren? Ich habe bisher keinen Befehl finden können, der rechnet (außer zählen).
Auf die Gefahr, dass diese Fragen alle ind das SelfC-Forum gehören (das ich leider nicht finden kann) schicke ich dieses Posting jetzt ab.
Außerdem gefällt es mir hier (bis auf einige Lernzyklen) ganz gut!
[image:http://bitwoks.de/~images/Absturz.gif
Liebe Grüße
Tom
Hallo,
[...] Nun habe ich ja mal C gelernt.
Ich weiss ja nicht, wass dein Script alles so macht, aber vielleicht solltest
du erstmal das optimieren. Es koennte ueberigens sein, dass du durchaus keine
grossen Geschwindigkeitsunterschiede feststellen kannst. Wenn dein Script nur
eine Datei einliest und auswertet, duerfte das teuerste eh I/O-Operationen
sein.
Allerdings habe ich das nie auf dem Linux-Rechner angewandt sondern nur aud
DOSen. Kann mir da einer kurz erklären, was ich machen muss, damit das auf
dem Linux-Rechner klappt? (Das war die erste Frage)
Wenn du dich strikt an ANSI-C haelst, duerfte kein grosser Unterschied
bestehen.
Für den Fall, dass ich das hinbekomme, möchte ich das Ergebnis trotzdem in
HTML (also über die PHP-Schnittstelle) ausgeben.
Warum ausgerechnet ueber PHP? Das man auch mit C CGI-Programme schreiben kann,
weisst du?
Kann ich dafür popen() benutzen und wie müßte ich das machen? (das war die
zweite Frage)
Entweder popen() (bzw. einen Aehnlichen Mechanismus), oder komplizierter: eine
HTTP-Request. Je nach dem, ob php als Executable vorhanden ist oder nicht.
Wenn ich bei PHP bleiben sollte für die Auswertung (wegen der schönen
Diagramme die da möglich sind -> gd-lib),
Die GDlib ist in C geschrieben :-)
Gruesse,
CK
Hallo Christian,
danke für die Antwort so mitten in der Nacht. Aber tagsüber war es in meinem Büro nicht zum Aushalten, darum sitze ich jetzt hier.
Ich weiss ja nicht, wass dein Script alles so macht, aber vielleicht solltest
du erstmal das optimieren.
Das würde ich gerne tun. Wahrscheinlich könnte ich es tunen, wenn ich nicht Zeilenweise einlese, sondern immer ein ganzes Array mit Zeilen vollknalle?? (das erste Fragezeichn ist für mich, das zweite für Dich, nicht dass sich wieder ein Deutschfanatiker beschwert)
Es koennte ueberigens sein, dass du durchaus keine
grossen Geschwindigkeitsunterschiede feststellen kannst. Wenn dein Script nur
eine Datei einliest und auswertet, duerfte das teuerste eh I/O-Operationen
sein.
Das befürchte ich auch.
Wenn du dich strikt an ANSI-C haelst, duerfte kein grosser Unterschied
bestehen.
Welche Entwicklungsumgebungen für C kann man denn für Linux empfehlen? Ich bin natürlich von der guten alten Broland IDE (C 2.0) verwöhnt gewesen. Auf Grafik lege ich allerdings keinen Wert.
Für den Fall, dass ich das hinbekomme, möchte ich das Ergebnis trotzdem in
HTML (also über die PHP-Schnittstelle) ausgeben.
Warum ausgerechnet ueber PHP? Das man auch mit C CGI-Programme schreiben kann,
weisst du?
nö, bisher nicht. Aber darum stelle ich meine Fragen ja seit kurzem HIER. Ist so ziemlich das einzige Fprum, wo kompetente Antworten kommen.
Kann ich dafür popen() benutzen und wie müßte ich das machen? (das war die
zweite Frage)
Entweder popen() (bzw. einen Aehnlichen Mechanismus), oder komplizierter: eine
HTTP-Request. Je nach dem, ob php als Executable vorhanden ist oder nicht.
Was bedeutet: PHP als Executable... Muss ich da eine zweite Instanz starten?
Grüße aus Brausnchweig. Wird so langsam kühler hier. Puhh, heute waren hier 36 Grad draussen. Drinnen bin ich "nur" bis 29 gekommen.
Tom
hi,
Wahrscheinlich könnte ich es tunen, wenn ich nicht zeilenweise einlese, sondern immer ein ganzes Array mit Zeilen vollknalle?? (das erste Fragezeichn ist für mich, das zweite für Dich, nicht dass sich wieder ein Deutschfanatiker beschwert)
Hier! *g* zuviele Fragezeichen erhöhen die Lesbarkeit eines Textes nur bedingt, damit du's weißt. Setzen.
Wenn dein Script nur eine Datei einliest und auswertet, duerfte das teuerste eh I/O-Operationen sein.
Das befürchte ich auch.
was ist daran zu befürchten? Es klingt eher beruhigend - falls du keinen älteren 486er benutzt
Welche Entwicklungsumgebungen für C kann man denn für Linux empfehlen?
wir haben vor einiger Zeit mal nen Disput dazu geführt, los gings mit Nachfragen zum gcc. Ich kann dir aber fürs Archiv auch keinen Suchstring anbieten, weiß selber nicht mehr genau, wonach ich suchen müßte. Auf jeden Fall gibts im Forums-Archiv dazu was, versuchs mal.
Was bedeutet: PHP als Executable... Muss ich da eine zweite Instanz starten?
warum beharrst du hier nur auf PHP? Christian hat dir doch zu erklären versucht, daß du _dasselbe_ (was Funktionalität angeht) auch mit C/C++ machen kannst. Die Frage geht eher dahin, auf welcher Plattform deine Anwendung letzten Endes laufen soll oder ob es konsequent eine CGI-Anwendung wird.
aktuelle Temperatur in Berlin-Mitte: 29 Grad Celsius
Christoph S.
Hallo Thomas,
ja ich denke das komplette einlesen ist weitaus schneller als jede Zeile.
Ich würde hingegen nur die neuen Zeilen einlesen und die alten irgendwo schon fertig bearbeitet ablegen. Man konnte dann meintewegen einmal am Tag die ganze Datei neu einlesen und den Rest des Tages nur die Veränderungen, oder wie auch immer die Sachen prüfen - da gibt es sicher viele Ansätze.
Dafür, wie man an die Neuerungen kommt, gibt es sicher diverse Lösungen, je nachdem wie sicher Du prüfen willst.
Eine einfache wäre sicher sich die Zeilenanzahl zu merken und dann von dort an immer weiterzuarbeiten und die Zeilenanzahl erhöhen. das Ablegen aller End-Werte dann entweder in einer dauernden Session, oder in einer zweiten datei. Denke das ist weitaus schneller als jedesmal 1.6Mio Zeilen einlesen.
Man könnte auch noch andere Mechanismen einbauen, die den Traffic für diesen Prozess minimieren, so z.B. das man zuerst schaut wieviele neuen Einträge, sind diese so Minimal(meinetwegen 10 oder 20), das keine grafische Änderung entsteht, wird das Script garnicht ausgeführt, dann allerdings auch nicht die Zeilenanzahl hochsetzen.
Ich denke so ist es am besten, denn C ist in deinem Fall wahrscheinlich nicht in dem Maße schneller wie Du Dir das vorstellst.
Michael R.
Hallo,
ja ich denke das komplette einlesen ist weitaus schneller als
jede Zeile.
Wie kommst du denn auf diesen Trichter? Warum sollte es schneller
sein ca. 200MB (1,6 Mio. Zeilen, pro Zeile ca. 170 Byte) komplett in
den Speicher zu schreiben und dann da zu verarbeiten als 1,6 Mio mal
ca. 170 Bytes auszulesen und zu verarbeiten?
Du vergisst, dass der Speicher kein beliebig schnelles Medium ist.
Ganz im Gegenteil, bei der Kommunikation mit dem RAM ist sehr viel
Overhead enthalten. Mal ganz abgesehen davon dass das alloziieren
von 200MB Speicher auch sehr leicht in die Hose gehen kann.
Nene, wie immer gilt es einen Mittelweg zu finden. Zeichenweise
einzulesen ist sicher Quark. Aber die ganze Datei einzulesen ist
noch viel mehr Quark.
Ich würde hingegen nur die neuen Zeilen einlesen und die alten
irgendwo schon fertig bearbeitet ablegen.
Woher weisst du, dass es alte Zeilen gibt? :-)
Dafür, wie man an die Neuerungen kommt, gibt es sicher diverse
Lösungen, je nachdem wie sicher Du prüfen willst.
Alte groesse im Gedaechtnis behalten, neue Groesse in Erfahrung
bringen und per fseek() den Datei-Pointer an die richtige Stelle in
der Datei setzen.
Eine einfache wäre sicher sich die Zeilenanzahl zu merken und dann
von dort an immer weiterzuarbeiten und die Zeilenanzahl erhöhen.
Sinnlos. Dann muesste man ja die Zeilen trotzdem alle einlesen.
Ich denke so ist es am besten, denn C ist in deinem Fall
wahrscheinlich nicht in dem Maße schneller wie Du Dir das
vorstellst.
Das haengt davon ab, was in dem Script alles geschieht. Das sagte
ich ja bereits.
Gruesse,
CK
Hallo,
ja ich denke das komplette einlesen ist weitaus schneller als
jede Zeile.
Wie kommst du denn auf diesen Trichter? Warum sollte es schneller
sein ca. 200MB (1,6 Mio. Zeilen, pro Zeile ca. 170 Byte) komplett in
den Speicher zu schreiben und dann da zu verarbeiten als 1,6 Mio mal
ca. 170 Bytes auszulesen und zu verarbeiten?
Da ist schon was dran. 200MB einzulesen ist Quatsch. Die Datei hat Stand heute 115MB. Eine Woche habe ich noch, bis der Monat wieder voll ist. Rein nach Milchmädchenrechnung werden es demnach 153MB. (wenn ich hier noch viel poste, könnten es auch 150k mehr werden *gg*).
Du vergisst, dass der Speicher kein beliebig schnelles Medium ist.
Ganz im Gegenteil, bei der Kommunikation mit dem RAM ist sehr viel
Overhead enthalten. Mal ganz abgesehen davon dass das alloziieren
von 200MB Speicher auch sehr leicht in die Hose gehen kann.
Nene, wie immer gilt es einen Mittelweg zu finden. Zeichenweise
einzulesen ist sicher Quark. Aber die ganze Datei einzulesen ist
noch viel mehr Quark.
Das Einlesen in Blöcken sit da bestimmt eleganter. Nur liegen die Zeilenenden dann irgendwie, aber garantiert nicht auf Blockgrenze.
Ich werde wohl nicht drum herumkommen, doch beide Wege zu gehen: C UND das blockweise Lesen. Ein Speicherzugriff dauert ca. 8ns, ein Plattenzugriff dauert dagegen 8ms. Der bytestream ist real bis ca. 10Mbyte pro Sek. hochzupuschen. Also das würde schon was bringen.
Ich würde hingegen nur die neuen Zeilen einlesen und die alten
irgendwo schon fertig bearbeitet ablegen.
Woher weisst du, dass es alte Zeilen gibt? :-)
Genau das ist das Problem. Man muss wahrscheinlich im BIN-Mode blind reingreifen in die Datei, éinen Block lesen, den Rest der ersten Zeile wegschmeißen, den Anfang der letzten Zeile wegschmeißen, dann den neuen Einsprungspunkt berechnen für den nächsten Block (es ändert sich ja zum Glück nix mehr am alte Teil der Datei) usw usw.
Aber dafür halte ich PHP nicht für geeignet.
Dafür, wie man an die Neuerungen kommt, gibt es sicher diverse
Lösungen, je nachdem wie sicher Du prüfen willst.
Alte groesse im Gedaechtnis behalten, neue Groesse in Erfahrung
bringen und per fseek() den Datei-Pointer an die richtige Stelle in
der Datei setzen.
Eine einfache wäre sicher sich die Zeilenanzahl zu merken und dann
von dort an immer weiterzuarbeiten und die Zeilenanzahl erhöhen.
Sinnlos. Dann muesste man ja die Zeilen trotzdem alle einlesen.
Ja, wir haben variable Satzlänge. Ein DirectAccess ist also nicht möglich.
Ich denke so ist es am besten, denn C ist in deinem Fall
wahrscheinlich nicht in dem Maße schneller wie Du Dir das
vorstellst.
Das wäre eben auszuprobieen. Nur ich trau mich nicht. Mit C kann man sooo schön daneben greifen und dann ist der Server platt. Ich habe zwar noch einen "Übungsserver", aber da habe ich auch nur einen richtigen Fehlversuch frei.
Muss ich mich also vorher noch mit DiskImage ziehen beschäftigen. Ihr seht: Kettenreaktion.
Das haengt davon ab, was in dem Script alles geschieht. Das sagte
ich ja bereits.
Gruesse,
CK
Danke erstmal für den Dialog. Das hilft mir schon sehr, um meine Gedanken zu sortieren.
Grüße aus Braunschweig
Tom
Tag,
Das Einlesen in Blöcken sit da bestimmt eleganter. Nur liegen die
Zeilenenden dann irgendwie, aber garantiert nicht auf Blockgrenze.
Deswegen sollst du ja auch keine Bloecke, sondern Zeilen einlesen ;-)
Gerade bei einer Sprache wie PHP koennte ich mir vorstellen, dass sie
intern mit Lese-Puffern arbeitet.
Ich werde wohl nicht drum herumkommen, doch beide Wege zu
gehen: C UND das blockweise Lesen.
Warum? Dateien sind keine Streams, fuer sowas gibt es doch fgets().
Ansonsten benutze halt I/O-Vektoren (vread()). Die Puffer dort
duerften effizienter sein, als du es implementieren koenntest.
Genau das ist das Problem. Man muss wahrscheinlich im BIN-Mode
blind reingreifen in die Datei, éinen Block lesen, den Rest der
ersten Zeile wegschmeißen, den Anfang der letzten Zeile
wegschmeißen, dann den neuen Einsprungspunkt berechnen für den
nächsten Block (es ändert sich ja zum Glück nix mehr am alte Teil
der Datei) usw usw.
Wenn es wirklich neue Zeilen gibt und du nur einen Teil verarbeiten
musst, dann ist der Weg, den ich unten Beschrieben habe (fseek()),
der sinnvollste.
Eine einfache wäre sicher sich die Zeilenanzahl zu merken
und dann von dort an immer weiterzuarbeiten und die
Zeilenanzahl erhöhen.
Sinnlos. Dann muesste man ja die Zeilen trotzdem alle einlesen.
Ja, wir haben variable Satzlänge. Ein DirectAccess ist also nicht
möglich.
Doch. Habe ich doch geschrieben: alte Groesse der Datei speichern,
vor dem oeffnen einen stat() absetzen und mit fseek() den Filepointer
an die Stelle neuegroesse-altegroesse setzen. Dann solltest du am
Anfang der ersten neuen Zeile stehen.
Ich denke so ist es am besten, denn C ist in deinem Fall
wahrscheinlich nicht in dem Maße schneller wie Du Dir das
vorstellst.
Das wäre eben auszuprobieen. Nur ich trau mich nicht. Mit C kann
man sooo schön daneben greifen und dann ist der Server platt.
Hae?
Mit C kann man genau so viel oder wenig kaputt machen wie mit PHP.
Das Schlimmste, was dir passieren kann, ist ein core dump, solange
du nicht mit produktiven Daten testest.
Gruesse,
CK
Hallo,
Da ist schon was dran. 200MB einzulesen ist Quatsch. Die Datei hat Stand heute 115MB. Eine Woche habe ich noch, bis der Monat wieder voll ist. Rein nach Milchmädchenrechnung werden es demnach 153MB. (wenn ich hier noch viel poste, könnten es auch 150k mehr werden *gg*).
Dann frage ich mich, warum es nicht besser wäre, diese Logdatei öfters zu wechseln, also beispielsweise wöchentlich oder aucht täglich.
Dann könntest Du auch die Auswertungen der 'inaktiven' Dateien des zu beobachtenden Zeitraums mittels cron-job bereits vorberieten, wodurch das Berechnen der aktuellen Auswertung im wesenlichen darin besteht, die bestehende Auswertung um die Daten aus dem aktiven Logfile zu ergänzen. Das würde für die Präsentationsaufbereitung viel Zeit sparen, da sich ja die Werte aus der Vergangenheit nicht mehr ändern können, also auch deren Einfluß auf die Auswertung konstant ist.
Wie Du das dann realisierst, ob in PHP oder C ist schon eher nebensächlich, da die aktuell zu verarbeitende Datenmenge wesentlich geringer ist.
Grüße
Klaus
Hallo,
Da ist schon was dran. 200MB einzulesen ist Quatsch. Die Datei hat Stand heute 115MB. Eine Woche habe ich noch, bis der Monat wieder voll ist. Rein nach Milchmädchenrechnung werden es demnach 153MB. (wenn ich hier noch viel poste, könnten es auch 150k mehr werden *gg*).
Dann frage ich mich, warum es nicht besser wäre, diese Logdatei öfters zu wechseln, also beispielsweise wöchentlich oder aucht täglich.
Dann könntest Du auch die Auswertungen der 'inaktiven' Dateien des zu beobachtenden Zeitraums mittels cron-job bereits vorberieten, wodurch das Berechnen der aktuellen Auswertung im wesenlichen darin besteht, die bestehende Auswertung um die Daten aus dem aktiven Logfile zu ergänzen. Das würde für die Präsentationsaufbereitung viel Zeit sparen, da sich ja die Werte aus der Vergangenheit nicht mehr ändern können, also auch deren Einfluß auf die Auswertung konstant ist.
Wie Du das dann realisierst, ob in PHP oder C ist schon eher nebensächlich, da die aktuell zu verarbeitende Datenmenge wesentlich geringer ist.
Grüße
Klaus
Hallo Klaus,
da gibt es natürlich viele Philosophien. Ich hatte ja schon erwähnt, dass für jden Dateiwechsel der iptraf (der läuft im Hintergrund) gestoppt werden muss, damit hinterher eine neue Datei angelegt wird. Ich kopiere natürlich die aktuell laufende Log-Datei öfter. Sie kann man dann auch mit shell-Kommands zerlegen. z.B. lassen sich mit grep alles Tage separieren.
Ich denke, ich müsste mich einfach mal mehr mit der Shellprogrammierung und mit Perl auseinandersetzen. Es fehlt einfach die Zeit, ein intelligentes Konzept hierfür auszudenken, aufzubauen, auszuprobieren, zu implementieren, die Kollegen einzuweisen, die es dann täglich durchführen, Rechte zu vergeben und endlich wieder Ruhe zu haben...
Provisorien halten sich immer am Längsten.
Gruß
Tom
Hallo,
danke für die Antwort so mitten in der Nacht. Aber tagsüber war es in
meinem Büro nicht zum Aushalten, darum sitze ich jetzt hier.
Oh, ich bin stattdessen daheim vor dem PC gesessen ;-)
Ich weiss ja nicht, wass dein Script alles so macht, aber vielleicht
solltest du erstmal das optimieren.
Das würde ich gerne tun. Wahrscheinlich könnte ich es tunen, wenn ich nicht
Zeilenweise einlese, sondern immer ein ganzes Array mit Zeilen vollknalle??
Das kann ich dir so auf Anhieb leider nicht beantworten. Ich weiss nicht, wie
du deine Funktion implementiert hast
Wenn du dich strikt an ANSI-C haelst, duerfte kein grosser Unterschied
bestehen.
Welche Entwicklungsumgebungen für C kann man denn für Linux empfehlen?
Keine.
Ich mag keine IDEs :-)
Für den Fall, dass ich das hinbekomme, möchte ich das Ergebnis
trotzdem in HTML (also über die PHP-Schnittstelle) ausgeben.
nö, bisher nicht.
Klar geht das. Genau wie mit Perl oder Bash oder Shell oder jeder beliebigen
anderen Programmiersprache, die Environment-Variablen auslesen koennen und in
die Standard-Ausgabe schreiben koennen.
Aber darum stelle ich meine Fragen ja seit kurzem HIER.
Ist so ziemlich das einzige Fprum, wo kompetente Antworten kommen.
Danke :-)
Was bedeutet: PHP als Executable...
PHP als eine ausfuehrbare Datei. Executable eben :-)
Muss ich da eine zweite Instanz starten?
Genau das macht popen() doch. Es startet eine Shell-Instanz und fuehrt darin
den Prozess aus.
Aber wie gesagt, du brauchst PHP eigentlich nicht.
Grüße aus Brausnchweig. Wird so langsam kühler hier. Puhh, heute waren hier
36 Grad draussen. Drinnen bin ich "nur" bis 29 gekommen.
Hier sinds immer noch 32°C :/ schlafen kann ich erstmal vergessen.
Gruesse,
CK
Hallo Tom,
[...]
Wenn ich bei PHP bleiben sollte für die Auswertung (wegen der schönen Diagramme die da möglich sind -> gd-lib), wie kann ich die Variable für die maximale Ausführeungszeit nur für dieses Script hochsetzen? (das war dann die dritte Frage)
zu PHP und C kann ich Dir nicht viel sagen, ich kenne mich eher mit Perl aus...
Aber zu GD (die gibt es auch unter Perl bzw. wird wohl das Gleiche sein):
Das ist sehr schön! Ich habe damit auch schon "rumgespielt", aber habe es irgendwann (für meine Zwecke) verworfen, weil man damit keine Einheitlichkeit hinbekommt. Ich kann Dir jetzt nicht mehr genau sagen, was mich störte, aber ich brauchte mehrere Charttypen, die einfach irgendwie vom Design nicht so zueinander paßten.
Die Lösung war ein Roxenserver (http://www.roxen.com). Ist im Prinzip wie der Apache, nur noch einfacher zu Konfigurieren und hat wirklich gute Module, u.a. für Grafik.
In Verbindung mit einer DB kannst Du da schnell Charts basteln, siehe auch mein kleines Projekt (http://www.w3research.com).
Gibt es in der bash eine Möglichkeit, Spaltenwerte zu addieren? Ich habe bisher keinen Befehl finden können, der rechnet (außer zählen).
-> Perl, kein Problem! Oder besser: Daten in MySQL importieren und dann weitermachen....
Alles Gute,
Reiner
Hallo Reiner,
nun bin ich gerade wieder auf der ESC-Taste gelandet (der blöde VI hat mich dazu gebracht) und alles, was hier schon geschreiben hatte, war wieder weg...
Die Lösung war ein Roxenserver (http://www.roxen.com). Ist im Prinzip wie der Apache, nur noch einfacher zu Konfigurieren und hat wirklich gute Module, u.a. für Grafik.
In Verbindung mit einer DB kannst Du da schnell Charts basteln, siehe auch mein kleines Projekt (http://www.w3research.com).
Gibt es in der bash eine Möglichkeit, Spaltenwerte zu addieren? Ich habe bisher keinen Befehl finden können, der rechnet (außer zählen).
-> Perl, kein Problem! Oder besser: Daten in MySQL importieren und dann weitermachen....
Das mit Roxen werde ich mal etwas später ausprobieren. Sie Qualität von Deiner Site kann ich (noch) nicht leisten. Sieht natürlich gut aus.
Die MySQL-Lösung habe ich noch nicht probiert. Ich habe inzwischen allerdings auch 1.600.000 Zeilen pro Monat. Da wird MySQL auch schon leicht stöhnen, oder?
Außerdem müssen die Bytewerte von Strings befreit werden.
Beispiel:
Wed May 22 19:15:45 2002; TCP; eth0; 52 bytes; from 194.25.16.162:80 to 217.5.85.41:1794; first packet (SYN)
Wed May 22 19:15:50 2002; TCP; eth0; 40 bytes; from 217.5.85.41:1794 to 194.25.16.162:80; Connection reset; 10 packets, 1177
bytes; opposite direction 10 packets, 3870 bytes
Wed May 22 19:15:50 2002; TCP; eth0; 52 bytes; from 217.5.85.41:1795 to 194.25.16.162:80; first packet (SYN)
Ich werde da mal dranbleiben
Gruß
Tom
Hallo Tom,
Die MySQL-Lösung habe ich noch nicht probiert. Ich habe inzwischen allerdings auch 1.600.000 Zeilen pro Monat. Da wird MySQL auch schon leicht stöhnen, oder?
das sehe ich kein Problem.
Außerdem müssen die Bytewerte von Strings befreit werden.
Beispiel:
Wed May 22 19:15:45 2002; TCP; eth0; 52 bytes; from 194.25.16.162:80 to 217.5.85.41:1794; first packet (SYN)
Wed May 22 19:15:50 2002; TCP; eth0; 40 bytes; from 217.5.85.41:1794 to 194.25.16.162:80; Connection reset; 10 packets, 1177
bytes; opposite direction 10 packets, 3870 bytes
Wed May 22 19:15:50 2002; TCP; eth0; 52 bytes; from 217.5.85.41:1795 to 194.25.16.162:80; first packet (SYN)
Das kannst Du mit Reg.Expressions lösen.
Reiner