Pourquoi mon VPS manque de mémoire?

J'ai un serveur virtuel virtuel Linux avec une mémoire de 1 Go, mais je continue d'avoir des erreurs comme:

fork failed: Cannot allocate memory 

Cependant, je ne pense pas que je manque de mémoire. Si je cours gratuitement:

 root@server44:~# free -m total used free shared buffers cached Mem: 1024 133 890 0 0 0 -/+ buffers/cache: 133 890 Swap: 0 0 0 root@server44:~# man swapon man: fork failed: Cannot allocate memory 

J'ai 890 Mo gratuitement, mais la fourchette échoue. Une idée pourquoi? Est-ce que le serveur de mon serveur fonctionne sur la perte de mémoire? Mon hôte est FsckVPS exécutant HyperVM.

Quelle technologie de virtualisation utilisez-vous? Avec OpenVZ / Virtuozo au moins, la commande "libre" ne montre pas votre mémoire réelle disponible. Souvent, il montre beaucoup plus grand que le montant qui est réellement affecté à votre tranche VPS.

En outre, il existe plusieurs limites de mémoire différentes qui limitent différents types de mémoire (dans les termes OpenVZ, ils sont kmemsize, lockedpages, privvmpages, shmpages, vmguarpages, oomguarpages, etc.).

Si vous utilisez OpenVZ, vérifiez / proc / user_beancounters pour voir quelle limite vous frappez, vérifiez la colonne 'failcnt'.

Est-ce que votre hôte a trop surchargé la RAM sur l'hôte qui exécute votre machine virtuelle? Il se pourrait que vous ayez 128Mb de RAM "dédiée" et que le reste soit disponible pour une rafale si aucune autre VM ne l'utilise à l'époque. Si vous nous indiquez plus de détails sur l'environnement dans lequel vous travaillez (quelle technologie VM, possible quel fournisseur d'hébergement et quels sont leurs produits), nous pourrions peut-être vous dire de vérifier cela.

La surcharge de la ressource RAM sur un hôte VM est généralement une mauvaise idée à mon avis, mais de nombreux fournisseurs d'hébergement le font si la technologie le permet.