Schrift
[thread]11706[/thread]

Speichergrenzen



<< >> 6 Einträge, 1 Seite
biologist
 2008-04-25 16:27
#108868 #108868
User since
2008-04-25
4 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen!

Seit einigen Monaten habe ich für einen größeren Kunden ein Tool (in Perl geschrieben) laufen, welches die ananymisierten Logdaten der Webserver analysiert. Hier werden Nutzerzahlen nach verschiedenen Eckpunkten analysiert und dabei komplette Klickpfade rekonstruiert. Dies funktioniert auch wunderbar, jedoch sollen nun größere Datenmengen analysiert werden.

Bislang habe ich dies so gehalten, dass ich die Daten zur Sortierung in mehrfach geschachtelten Hashes und Arrays im Speicher gehalten habe. Nun meine Frage: wenn ich Perl auf einem 64 Bit Linux laufen lasse, wieviel Speicher kann und darf ein Perl-Prozess dann maximal allozieren? Das tägliche Logfile ist momentan etwa 1GB groß und basierend auf meinen Berechnungen dürfte das Bearbeiten im Peak etwa 5GB Ram in Anspruch nehmen. Ist dies möglich oder sollte ich, wie ich es momentan überlege, eher eine Datenbank zur "Zwischenlagerung" der Daten in Anspruch nehmen und das Ganze dann sequentiell machen?
Taulmarill
 2008-04-25 16:37
#108870 #108870
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
5GB sollte unter 64bit Linux kein Problem sein, sofern auch physisch so viel Speicher zur Verfügung steht. Sobald das OS swappen muss, wirds hässlich langsam.

perl selbst hat keine eingebaute Speichergrenze. Du solltest aber darauf achten, dass bei so großen Datenmengen perl selbst dann auch mit 64bit Unterstützung compiliert wurde.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Hagen
 2008-04-25 17:17
#108881 #108881
User since
2007-09-06
233 Artikel
BenutzerIn
[default_avatar]
Gehört zwar nicht so ganz zum Thema, aber kannst du (mir) mal kurz erklären, wie man so eine Speicherberechnung durchführt ... oder ist das eher ein probieren/messen?
Gruß
Hagen
biologist
 2008-04-25 18:00
#108885 #108885
User since
2008-04-25
4 Artikel
BenutzerIn
[default_avatar]
Ist in der Tat eher probieren. Bei meinen bisherigen Datenmengen lag der Speicherbedarf etwa beim 4,3fachen der Input-Daten. Ist auch nur ungefähr.
biologist
 2008-04-25 18:01
#108886 #108886
User since
2008-04-25
4 Artikel
BenutzerIn
[default_avatar]
Taulmarill+2008-04-25 14:37:41--
5GB sollte unter 64bit Linux kein Problem sein, sofern auch physisch so viel Speicher zur Verfügung steht. Sobald das OS swappen muss, wirds hässlich langsam.

perl selbst hat keine eingebaute Speichergrenze. Du solltest aber darauf achten, dass bei so großen Datenmengen perl selbst dann auch mit 64bit Unterstützung compiliert wurde.

Ich würds an für sich gerne mal austesten. Auch wenn das OS swappen muss, könnte ich mir vorstellen, wird das Ganze immernoch schneller sein, als wenn ich alles in ne DB schreibe und dann sequentiell wieder raushole. Aber schonmal danke für die Antwort.
Relais
 2008-04-27 11:23
#108907 #108907
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schau Dir doch einmal Tie::File an. Das Modul erlaubt es Dir sogar größere Datenmengen als in den Speicher passen würden, so zu bearbeiten, als wären sie im Hauptspeicher. Die Standardeinstellung ist allerdings, nur 20 MB zu verwenden, die solltest Du dann vielleicht etwas erhöhen.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
<< >> 6 Einträge, 1 Seite



View all threads created 2008-04-25 16:27.