Thread Shared Memory zu klein (fork)
(5 answers)
Opened by pq at 2005-07-25 17:35
ist vielleicht nicht unbedingt ein mod_perl-problem an sich, aber dort ist
es aufgefallen. auf rechner A laufen meine apache-prozesse mit 75MB shared und 25MB unshared. also jeder prozeß hat 100MB, aber 75MB werden geteilt. nun habe ich einen neuen rechner B, auf dem sind die prozesse auch 100MB groß, aber leider werden nur ca. 3.5MB geshared (was bei 2GB RAM nicht schlimm ist, aber eben ärgerlich. vergleiche zwischen A und B sind schwierig). apache (1.3.29) und perl (5.6.1) ist komplett gleich, ich habe nur ein paar wenige unterschiede in der config gefunden (-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 z.B.) ich kann das ganze mit einem simplen perl-einzeiler reproduzieren. Code: (dl
)
1 my $s = "_" x 10000000; dieses skript erzeugt auf rechner A zwei prozesse mit je 20MB, und shared sind davon ca. 20MB. kommentiere ich die zeile aus, verändere also $s, dann hat jeder prozeß wirkliche 20MB. auf rechner B jedoch werden niemals 20MB geshared, immer nur ca. 1MB. ich vermute einfach nur eine falsche konfiguration, ich habe schon per hand die werte in /proc/sys/kernel/shmmax und /proc/sys/kernel/shmall erhöht, aber kein effekt. system: 2.6.10-5-amd64-xeon #1 SMP Fri May 20 13:59:46 UTC 2005 x86_64 unknown OS: debian 3.0 (ubuntu) ipcs -ml: Code: (dl
)
1 ----- Gemeinsamer Speicher: Grenzen ----- <!--EDIT|pq|1122298605--> 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: ![]() ![]() |