J'ai une installation Ubuntu 12.10 (kernel 3.9.0-rc2) fonctionnant sous VMWare. Je lui ai donné 512 Mo de RAM.
cat/proc/meminfo montre:
MemTotal: 507864 KB
MemFree: 440180Processus tué en raison de trop de mémoire?
Je veux utiliser le swap (pour une raison quelconque) j'ai donc écrit un programme C qui alloue un tableau de 500Mo (en utilisant malloc ()) et le remplit de déchets. Cependant, le programme est tué avant qu'il ne puisse remplir tout le tableau et un message "Killed" apparaît à l'écran.
Je voulais demander si c'est un comportement normal et quelle est la raison derrière tout cela? À mon avis, le swap devrait être utilisé parce que la RAM libre est insuffisante.
Modifier: Je n'ai pas mentionné que j'ai un échange de 1 Go. cat/proc/swaps montre:
/dev/sda5 Taille: 1046524 Utilisé: 14672.
La quantité "Utilisé" augmente lorsque j'exécute le programme de restauration de mémoire. Mais comme vous pouvez le voir, il y a beaucoup d'échanges. Alors pourquoi le programme a-t-il dû être «tué»?
Google pour «surchargement de mémoire Linux»; et oui c'est configurable et peut être désactivé. BTW, vous voulez probablement dire Ubuntu 12.10, le noyau Linux est à la version 3.8 sur http://kernel.org/ (et Ubuntu 12.10 a probablement un noyau plus tôt). BTW, votre mémoire de 512 Mo n'est pas entièrement disponible pour les données: le noyau, le programme et d'autres processus mangent aussi cette mémoire! –
Vérifiez la sortie 'ulimit' si les données de 500 Mo sont autorisées. –
@ott: ulimit montre illimité. –