# Cannot allocate memory



## carmei3 (13. Apr. 2012)

Ich habe einen Virtuellen Server nach Der Perfekt Server - Debian Squeeze (Debian 6.0) mit BIND und Courier [ISPConfig 3] eingerichtet.

nun habe ich etliche Problem und weis nicht was das Ursächliche ist

das folgende ca 210 mal pro sekunde bis ich den Prozess gekillt habe
nach neustart kam das bisher nicht mehr

```
...
amavis[4018]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
 amavis[4019]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
amavis[4023]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
amavis[4022]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
amavis[4024]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
 amavis[4025]: (!)Net::Server: 2012/04/13-17:10:39 Couldn't get lock on file "/var/run/amavis/amavisd.lock" [Cannot allocate memory]\n  at line 253 in file /usr/share/perl5/Net/Server/PreForkSimple.pm
```


```
postfix/smtpd[5704]: fatal: shared-lock database /etc/aliases.db for open: Cannot allocate memory
```
....
postfix/smtpd[12614]: fatal: shared-lock database /etc/aliases.db for open: Cannot allocate memory
postfix/master[16024]: warning: process /usr/lib/postfix/smtpd pid 12614 exit status 1
postfix/master[16024]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
/USR/SBIN/CRON[14653]: (root) CMD (/usr/local/ispconfig/server/server.sh > /dev/null 2>> /var/log/ispconfig/cron.log)
fatal: select lock: Cannot allocate memory
postfix/master[16024]: warning: process /usr/lib/postfix/showq pid 18351 exit status 1
postfix/master[16024]: warning: /usr/lib/postfix/showq: bad command startup -- throttling
postfix/smtpd[18367]: fatal: shared-lock database /etc/aliases.db for open: Cannot allocate memory
postfix/master[16024]: warning: process /usr/lib/postfix/smtpd pid 18367 exit status 1
postfix/master[16024]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
[/CODE]
Speiche sollte ausreichen
Mem:    786432k total,   507568k used,   278864k free,        0k buffers
Swap:  3145728k total,        0k used,  3145728k free,   108804k cached


Liebe Grüße Carmen


----------



## nowayback (14. Apr. 2012)

Moinsen,

das es bei dir knapp ist mitm Ram siehst du ja warscheinlich selbst, aber dein Problem sieht eher nach einer vollen Festplatte aus. 

Was sagt denn

```
df -h
```
Grüße
nwb


----------



## carmei3 (14. Apr. 2012)

Das kann es nicht sein es ist nur das System drauf und eine Seite 
aber die trotzdem die Antwort

Filesystem            Size  Used Avail Use% Mounted on
/dev/hdv1              60G  2.7G   54G   5% /
tmpfs                 2.0M     0  2.0M   0% /dev/shm


Liebe Grüße Carmen


----------



## etron770 (16. Apr. 2012)

Ich habe das auch schon gehabt und habe alle Dienste die ich nicht unbedingt benötige deaktiviert. Bei mir hat schon das deaktivieren von bind DNS  geholfen (was ja bei der Perfect Installation mit dabei ist )

Server4you vserver: Cannot allocate memory obwohl massig frei sein sollte - Server Support Forum

p.s weiss jemand wie ich bei einem Vserver Debian Squeeze  die numothersockWerte anzeigen lassen kann?


----------



## carmei3 (16. Apr. 2012)

nein das hat nicht geholfen, ich habe zusätzlich zu bind auch noch probehalber amavis deaktiviert.

Liebe Grüße Carmen


----------



## etron770 (16. Apr. 2012)

Dann probiere es mal damit:
Numothersocks – socket: cannot allocate memory | Der Blog von Florian Fritsch


----------



## Till (16. Apr. 2012)

> Das kann es nicht sein es ist nur das System drauf und eine Seite


Es geht um RAM, hat also nichts mit der Anzahl der gehosteten Seiten zu tun somdern mit den gestarteten Programmen wie apache, postfix etc.

Poste mal bitte die Ausgabe von:

uptime

und:

cat /proc/user_beancounters


----------



## carmei3 (16. Apr. 2012)

die Postfix allocate memories sind weg nachdem ich das von etron770 ausprobiert habe (Numothersocks – socket: cannot allocate memory | Der Blog von Florian Fritsch)

gerade renn amavis wieder mit den 20 Fehlern cannot allocate memory
uptime
08:46:32 up  1:36,  0 users,  load average: 1.99, 2.02, 1.66

und jo sagt ja auch das noch mem frei ist
top - 08:50:57 up  1:40,  0 users,  load average: 1.99, 1.97, 1.73
Tasks:  73 total,   3 running,  70 sleeping,   0 stopped,   0 zombie
Cpu(s): 32.8%us, 16.3%sy,  8.2%ni, 41.6%id,  0.5%wa,  0.0%hi,  0.6%si,  0.0%st
Mem:    786432k total,   597280k used,   189152k free,        0k buffers
Swap:  3145728k total,        0k used,  3145728k free,   169924k cached

manchmal sind dann 3 oder mehr prozesse von amavis offen

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27211 amavis    20   0  203m  87m 3328 S    9 11.3   2:44.50 amavisd-new
22453 amavis    20   0     0    0    0 R    1  0.0   0:00.03 amavisd-new
22454 amavis    20   0  203m  85m 2164 R    1 11.2   0:00.03 amavisd-new

von amavis kommt auch die 32% CPU Auslastung

cat /proc/user_beancounters 	

das ist nicht vorhanden


Liebe Grüße  Carmen


----------



## Till (16. Apr. 2012)

Dein Server hat sehr wenig RAM, daher wirst Du das setup ein wenig zurechtstutzen müssen, damit es ohne Fehler läuft.

Das Reduzieren der Dovecot Prozesse war schon ein guter Anfang, dann solltest Du noch die max. Anzahl der amavis Prozesse reduzieren. In der postfix main.cf einfügen:

amavis_destination_concurrency_limit = 1

und dann postfix neu starten. Dann spamd deaktivieren, da er nicht benötigt wird.

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove


----------



## carmei3 (17. Apr. 2012)

```
diese Fehlermeldung erhalten Sie, da Ihr VServer die Maximale-Anzahl von LOCKS erreicht: 
 
 *** linux-vs:~# cat /proc/virtual/1181/limit | grep LOCKS 
LOCKS:        -5               0/    1000           1000/    1000        69300 *** 
 Wir haben diese Limitierung für Ihren vServer auf 100.000 LOCKS erhöht und Ihren vServer einmal neugestartet, damit die neue Limitierung greift.
```
Also Speicher war es nicht.
Nun stellt sich die Frage was hat 1000 locks verursacht oder ist das normal

Liebe Grüße Carmen


----------



## Till (17. Apr. 2012)

Die Locks wurden wahrscheinlich dadurch verursacht dass in dem Moment kein Speicher mehr verfügbar war, die Fehlermeldung "Cannot allocate memory" ist da eindeutig: Der Prozess hat Speicher angefordert aber es war keiner mehr verfügbar bzw. der Host der VM hat keinen bereitgestellt und deshalb schlug der Prozess Fehl. Auf die Angaben zum freien Speicher in einer VM kann man nicht allzu viel geben, es kann durchaus sein dass Dein Hoster den  Server "überbucht" hat, dass also die Summe des Speichers der allen VM zur Verfügung gestellt wurde kleiner als der verfügbare RAM ist, in solchen Situationen cann es zu Memory allocation errors auf dem host kommen selbst wenn in der VM scheinbar noch speicher da ist.

Wenn der Server jetzt läuft und sich Dein Hoster hoffentlich des Problems angenommen hat, dann sollte alls io sein.


----------



## carmei3 (18. Apr. 2012)

Nachdem die Fehler immer noch aufgetreten sind hat der Hoster die Grenze nochmlas angehben und auf 1Mio gesetzt. Nun läuft der Server seit mehreren Stunden ohne Fehlermeldung

Kann ich mir anzeigen lassen welcher Prozess die Locks anfragt?

Hauptspeicher ist nicht verändert worden ...


Liebe Grüße Carmen


----------



## nowayback (19. Apr. 2012)

Moinsen,

ne kannste nicht wirklich... du kannst nur abschätzen welcher Prozess wieviel RAM braucht und dann sehen dass du soviel wie möglich sparst... btw. der Sinn - außer zum Test - von deinem Setup erschließt sich mir noch nicht ganz...

Wenn du nur dein privates Zeug verwalten willst, brauchste ISPC nicht, wenn nicht, sind deine HW Specs zu gering 

Hoffe du nimmst mir das nicht übel


Grüße
nwb


----------



## carmei3 (19. Apr. 2012)

Na da laufen ein paar Seiten drauf und das Mailsystem, 
das ganze ist schneller als zu der Zeit als es beim Provider als Webspace lag.

Nach Auskunft des Hosters, der den Fehler untersucht hat liegt es definitiv nicht an zu wengi Speicher, den könnte ich für 2 Euro mehr auf 1 Gb und für 5 Euro mehr im Monat auf 2Gb erweitern. Aber er sagt das das definitiv derzeit nicht nötig is, ich das aber gerne aktivieren kann. Sprich der Anbieter der daran Geld verdient, sagt es sein nicht nötig. Es hat ja auch geholfen die zulässigen Locks zu erhöhen. Wie wirkt sich das denn auf die Anforderung von Speicher aus? 
Denn mehr Speicher habe ich ja nicht und der Vserver läuft ohne Fehler.
Irgendwie ist Deine Ansicht darüber entgegengesetzt zu der des Hosters ...



> Wenn du nur dein privates Zeug verwalten willst, brauchste ISPC nicht, wenn nicht, sind deine HW Specs zu gering


Meine Kinder werden so langsam älter und ich bin es leid immer an der Konsole zu sitzen um die Sonderwünsche bei E-mails Cronjobs und Urls zu erfüllen 

Liebe Grüße Carmen


----------

