Outils pour utilisateurs

Outils du site


informatique:linux:kernel-doc

Kernel Doc

Documentation du noyau sur le système

Le noyau est linux est documenté, pour avoir une version de cette documentation sur le système il faut installer la paquetage suivant :

kernel-doc

La documentation se trouve dans /usr/share/doc/kernel-doc-<version>/Documentation/

Gestion de la mémoire

La gestion de la mémoire dans Linux est prise en charge par le sous-système appelé «VM».

Sur un système 32-bits Intel, la mémoire est scindée en deux zones principales, la mémoire normale et la mémoire haute. Avec un noyau “normal” 32 bits (par opposition au noyau «hugemem»), un peu moins de 1Gb de mémoire est alloué à la mémoire normale et le reste est alloué à la mémoire haute,

Zone DMA       Premiers 16Mb de mémoire
Zone Normale   16Mb à ~1Gb
Zone Highmem   ~1Gb à la fin

La plupart des opérations du noyau sont effectuées en zone normale, il s'agit donc de la zone la plus critique du système. Le noyau y conserve entre autres les tables de pages des processus qui permettent de faire le lien entre les adresses virtuelles vues par les applicatifs et les adresses réelles, ainsi que les tables d'inodes des systèmes de fichiers.

La mémoire haute est utilisée pour les «buffers» des systèmes de fichiers et les allocations des applications.

Lorsque le remplissage de la zone normale atteint une certain point, le thread noyau appelé «kswapd» est réveillé et commence a libérer la mémoire. Si la pression mémoire sur la zone normale devient trop élevée, la mémoire va être libérée de manière synchrone, et si malgré tout le noyau ne parvient pas à libérer suffisamment de mémoire, il va alors arrêter des processus, c'est le OOM (Out Of Memory) «killer».

Il est important de noter que OOM-killer peut intervenir même s'il reste du swap sur le système et même s'il reste de la mémoire haute, juste par le fait que la pression mémoire sur la zone normale est trop forte.

Pour contourner ce problème, il peut y avoir plusieurs possibilités:

  • Utiliser un système 64-bits sur le matériel qui le supporte. L'architecture 64-bits utilise un adressage différent qui ne fait pas de scission de la mémoire entre la zone normale et la zone haute.
  • Augmenter la valeur de «lower_zone_protection» pour forcer le noyau à libérer la mémoire plus tôt et ainsi retarder le risque d'être â court de mémoire.
  • Utiliser un noyau «hugemem» sur Red Hat Enterprise Linux 4. Le noyau «hugemem» permet d'augmenter la taille de la zone «normale» jusqu' 4Gb (si le système dispose de la mêmoire physique bien évidemment)

Diagramme du noyau

informatique/linux/kernel-doc.txt · Dernière modification: 2018/09/06 19:10 (modification externe)