Schrift
[thread]13041[/thread]

File::Tail - exzessive Speichernutzung

Leser: 1


<< >> 5 Einträge, 1 Seite
format_c
 2009-01-23 19:54
#118273 #118273
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hi,

ich versuche eine Logdatei mit File::Tail zu verfolgen und zu verarbeiten.
Leider hat sich herausgestellt, dass der Prozess stetig mehr Speicher
verbraucht. Letztendlich wird der Prozess wegen zu wenig verfuegbaren
freien Speicher gekillt.

Weis jemand eine Moeglichkeit eine Logdatei zu verfolgen und dabei nicht
immer mehr Speicher zu verbrauchen?

Ich habe auch den Puffer explizit begrenzt. Hilft trotzdem nix:
Code: (dl )
1
2
my $syslog_file=File::Tail->new(name=>$pix_log_file, maxbuf => 1024, 
maxinterval=>5, adjustafter=>7);


Gruß Alex
pq
 2009-01-23 20:52
#118275 #118275
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
von wieviel zeilen pro sekunde reden wir denn?
das sollte nicht passieren und du solltest einen bugreport aufmachen.
am besten wäre es natürlich erstmal, du postest ein skript und passende daten, die es
reproduzieren.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
format_c
 2009-01-23 23:13
#118276 #118276
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das hab ich so genau nicht gemessen. Ich denke, dass es so 5-10 Zeilen pro Sekunde sind.

Das ist eine fertige Software: http://www.logging-architecture.net/pla2/

Schade. Das Ding sieht mir sehr inaktiv aus.

Kennt jemand eine aehnlichen Ansatz zum Verarbeiten von Firewall Logs?

Alex
pq
 2009-01-24 01:58
#118277 #118277
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
format_c+2009-01-23 22:13:32--
Das ist eine fertige Software: http://www.logging-architecture.net/pla2/

und woher weisst du, dass das mit dem speicherverbrauch an File::Tail liegt?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2009-01-24 10:01
#118280 #118280
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
von der idee ist es so:
1) springe mit sysseek ans Ende der Datei, dadurch erhälst du die Größe L1 der Datei
2) springe mit sysseek X bytes zurück und lese mit sysreed von X bis L1
3) springe mit sysseek ans Ende der Datei, dadurch erhälst du die neue Größe L2 der Datei
4) springe mit sysseek P=(L2-L1) bytes zurück und lese mit sysreed von P bis L2
5) usw.

HTH
<< >> 5 Einträge, 1 Seite



View all threads created 2009-01-23 19:54.