J'écris une application serveur haute performance (sous Linux) et j'essaie d'obtenir un chemin critique rapide. Je suis préoccupé par la pagination de la mémoire et la mémoire échangée sur le disque (latence de l'ordre des millisecondes) pendant mes opérations. Ma question est si j'ai beaucoup de mémoire sur le serveur (disons 16GB) et mon utilisation de la mémoire reste autour de 6-10GB et je sais qu'il n'y a pas d'autres processus sur la même boîte. Puis-je être sûr de ne pas avoir de pages manquantes après le démarrage et le démarrage de l'application?La pagination mémoire se produira-t-il s'il me reste beaucoup de RAM?
Répondre
Ceci n'est pas garanti. Le comportement par défaut de Linux consiste parfois à utiliser la RAM pour mettre en cache des fichiers, ce qui peut améliorer les performances de certains flux de travail. Cela signifie que parfois les pages de mémoire seront permutées même si la mémoire n'est pas entièrement utilisée.
Vous pouvez utiliser mlock/mlockall pour verrouiller les pages du processus en mémoire. Voir man 2 mlock
pour plus d'informations.
Ah mais ma question originale va-t-elle encore s'échanger Linux même s'il me reste de la RAM? –
A répondu à ma vérification –
- 1. L'index s'adapte à la RAM, mais reste en attente
- 2. Valeur unique Total Ram/Free Ram mémoire libre/mémoire totale
- 3. pagination mémoire avec D
- 4. CALayer ram gestion de la mémoire
- 5. weblogic serveur d'administration reste en panne | Problème de RAM
- 6. animation-list conserve la mémoire dans Ram
- 7. Projets sur la pagination de la mémoire
- 8. ember.js reste api avec pagination
- 9. Javascript utilise beaucoup de mémoire
- 10. IIS Worker Processus utilisant beaucoup de mémoire?
- 11. java consomme beaucoup de mémoire RAM lorsque j'utilise httpurlconnecion pour télécharger le fichier? Pourquoi?
- 12. Problème d'utilisation de mémoire RAM de Northscale?
- 13. Unicorn Mémoire de remplissage Utilisation presque toute la RAM
- 14. Nhibernate utilise beaucoup de mémoire
- 15. Pagination pour traiter beaucoup de messages
- 16. Contenu de ListView prend beaucoup de mémoire
- 17. Comment faire pour que mon ordinateur utilise beaucoup de RAM?
- 18. MongoDB utilisant beaucoup de mémoire
- 19. La mémoire est beaucoup plus petite que la mémoire disponible
- 20. SQL Server 2008, récupération de la mémoire RAM
- 21. Win32/MFC: Comment trouver de la mémoire libre (RAM) disponible?
- 22. cProfil prenant beaucoup de mémoire
- 23. WCF Reste problème avec la mémoire
- 24. Android Comment obtenez-vous la mémoire RAM totale dans l'appareil?
- 25. Comment augmenter la mémoire RAM pour cluster dans couchbase?
- 26. Que se passera-t-il si une application est assez grande pour être chargée dans la mémoire RAM disponible?
- 27. GlBufferDataARB me donne la mémoire émet
- 28. Comment la disposition des données dans la mémoire RAM?
- 29. Mémoire RAM adresse d'une variable dans Lua
- 30. L'application reste en mémoire après la sortie
Je ne connais pas Linux, mais je sais que Windows utilisera la mémoire RAM pour le cache disque, et pourra potentiellement sortir de la mémoire du programme pour cela. –
jetez un coup d'oeil à cette publication de stackoverflow. http://stackoverflow.com/questions/578137/can-i-tell-linux-not-to-swap-out-a-particular-processes-memory Il décrit comment verrouiller un processus en mémoire. –
Comme une idée. Vous pouvez écrire un programme de test simple qui alloue cette taille de mémoire à l'intérieur et "touche" régulièrement (utilise) cette mémoire. Exécutez ce programme de test pendant longtemps, puis exécutez la commande 'vmstat' et surveillez la colonne' po' (Pages renvoyées à l'espace de pagination). Vous pouvez donc vous faire une idée du nombre de "sorties de pages" qui se produisent sur votre boîte. –