Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Migration Debian etch -> lenny : inflation empreinte memoire de bind9

8 réponses
Avatar
Pascal Hambourg
[crosspost dans fr.comp.reseaux.ip et fr.comp.os.linux.configuration
avec suivi dans ce dernier]

Salut,

Ayant migré un petit serveur Debian etch vers lenny, j'observe que named
(BIND 9.6-ESV-R1) occupe beaucoup plus de mémoire que dans la version
précédente (9.3.4).

$ ps u -C named
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bind 4127 0.0 36.0 54992 22376 ? Ssl 11:15 0:10 /usr/sbin/named

(au fait je ne suis pas sûr d'avoir compris la signification de RSS ;
est-ce que ça inclut les pages wappées ? sinon, quelle est l'attribut
qui indique la taille mémoire totale effectivement occupée en RAM et en
swap ?)

Alors que sous etch c'était de l'ordre de 3 Mo pour RSS. C'est un poil
gênant car la machine n'a que 64 Mio de RAM. Le serveur BIND n'est pas
chargé, il sert une dizaine de zones contenant une vingtaine
d'enregistrements au plus et les quelques clients du réseau local en
récursif. Il n'y avait jusqu'ici aucune limite de ressource explicite
dans la configuration, aussi j'ai essayé de jouer sur les options
affectant les ressources dans named.conf :

max-cache-size 2M; // valeur minimum
recursive-clients 100; // au lieu de 1000 par défaut
empty-zones-enable no;
acache-enable no;
files 1024;

Mais sans différence significative, ce qui ne m'étonne guère car je
doute que BIND réserve dès son lancement toute la mémoire dont il
pourrait avoir besoin. Au démarrage named occupe 15 Mo, puis rapidement
il monte et se stabilise à 22 Mo.

D'où peut venir cette inflation de l'occupation mémoire ? De quel côté
chercher ? Comment la réduire ?

8 réponses

Avatar
didier gaumet
Le Thu, 12 Aug 2010 16:52:23 +0200,
Pascal Hambourg a écrit :

Bonjour,

[...]
(au fait je ne suis pas sûr d'avoir compris la signification de RSS ;
est-ce que ça inclut les pages wappées ?



d'après le man de ps, moi je comprends que non:

rss RSS resident set size, the non-swapped physical memory
that a task has used (in kiloBytes).
(alias rssize, rsz).

sinon, quelle est l'attribut
qui indique la taille mémoire totale effectivement occupée en RAM et
en swap ?)


[...]

toujours d'après le man de ps, ce qui s'en rapproche c'est vsz:

vsz VSZ virtual memory size of the process in KiB
(1024-byte units). Device mappings are
currently excluded; this is subject to change. (alias vsize).

pour moi: VSZ=RSS+SWAP avec SWAP=(swap effectif + swap réservé)
ce qui semblerait cohérent avec le man de top.

Prends ma réponse avec des pincettes: je réponds par curiosité par
rapport au sujet, malheureusement pas par compétence en rapport avec
celui-ci :-(
Avatar
Erwan David
didier gaumet écrivait :

Le Thu, 12 Aug 2010 16:52:23 +0200,
Pascal Hambourg a écrit :

Bonjour,

[...]
(au fait je ne suis pas sûr d'avoir compris la signification de RSS ;
est-ce que ça inclut les pages wappées ?



d'après le man de ps, moi je comprends que non:

rss RSS resident set size, the non-swapped physical memory
that a task has used (in kiloBytes).
(alias rssize, rsz).

sinon, quelle est l'attribut
qui indique la taille mémoire totale effectivement occupée en RAM et
en swap ?)


[...]

toujours d'après le man de ps, ce qui s'en rapproche c'est vsz:

vsz VSZ virtual memory size of the process in KiB
(1024-byte units). Device mappings are
currently excluded; this is subject to change. (alias vsize).

pour moi: VSZ=RSS+SWAP avec SWAP=(swap effectif + swap réservé)
ce qui semblerait cohérent avec le man de top.

Prends ma réponse avec des pincettes: je réponds par curiosité par
rapport au sujet, malheureusement pas par compétence en rapport avec
celui-ci :-(



Et quid des pages de codes partagées avec d'autres processus ? (soir
multi-threading soit bibliothèques partagées)

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
didier gaumet
Le Fri, 13 Aug 2010 18:19:18 +0200,
Erwan David a écrit :

Et quid des pages de codes partagées avec d'autres processus ? (soir
multi-threading soit bibliothèques partagées)



Ben... toujours à prendre avec des pincettes vu mon inculture sur le
sujet: je les pense comptabilisées vu que les bibliothèques apparaissent
dans le pmap du processus que j'ai examiné pour voir?
Avatar
Erwan David
didier gaumet écrivait :

Le Fri, 13 Aug 2010 18:19:18 +0200,
Erwan David a écrit :

Et quid des pages de codes partagées avec d'autres processus ? (soir
multi-threading soit bibliothèques partagées)



Ben... toujours à prendre avec des pincettes vu mon inculture sur le
sujet: je les pense comptabilisées vu que les bibliothèques apparaissent
dans le pmap du processus que j'ai examiné pour voir?



Oui, mais comptabilisées une ou plusieurs fois ?

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
didier gaumet
Le Fri, 13 Aug 2010 19:35:54 +0200,
Erwan David a écrit :

didier gaumet écrivait :

> Le Fri, 13 Aug 2010 18:19:18 +0200,
> Erwan David a écrit :
>
>> Et quid des pages de codes partagées avec d'autres processus ?
>> (soir multi-threading soit bibliothèques partagées)
>
> Ben... toujours à prendre avec des pincettes vu mon inculture sur le
> sujet: je les pense comptabilisées vu que les bibliothèques
> apparaissent dans le pmap du processus que j'ai examiné pour voir?

Oui, mais comptabilisées une ou plusieurs fois ?



à priori, plusieurs fois:

:~$ ps -axl
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.h tml
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
[...]
0 1000 7615 7609 20 0 31408 4944 - Ss pts/0 0:00
[...]

:~$ pmap 7615
7615: bash
0000000000400000 868K r-x-- /bin/bash
00000000006d9000 36K rw--- /bin/bash
00000000006e2000 24K rw--- [ anon ]
0000000000de7000 3136K rw--- [ anon ]
00007f9b28e72000 44K r-x-- /lib/libnss_files-2.11.2.so
00007f9b28e7d000 2044K ----- /lib/libnss_files-2.11.2.so
00007f9b2907c000 4K r---- /lib/libnss_files-2.11.2.so
00007f9b2907d000 4K rw--- /lib/libnss_files-2.11.2.so
[...]
total 31412K
Avatar
Pascal Hambourg
didier gaumet a écrit :
Pascal Hambourg a écrit :

sinon, quelle est l'attribut
qui indique la taille mémoire totale effectivement occupée en RAM et
en swap ?)


[...]

toujours d'après le man de ps, ce qui s'en rapproche c'est vsz:

vsz VSZ virtual memory size of the process in KiB
(1024-byte units). Device mappings are
currently excluded; this is subject to change. (alias vsize).



Je pense que ça c'est plutôt la mémoire virtuelle qui comprend les pages
non allouées donc sans incidence sur l'occupation mémoire. Parce que si
je fais la somme des VSZ de tous les processus, ça dépasse largement la
quantité de RAM + swap utilisée.

pour moi: VSZ=RSS+SWAP avec SWAP=(swap effectif + swap réservé)
ce qui semblerait cohérent avec le man de top.



A quoi correspond la colonne SWAP au juste ? La valeur est largement
supérieure à la quantité de swap totale utilisée. Je ne vois pas où
trouver la quantité de swap effectif occupée par un processus.
Avatar
didier gaumet
Le Fri, 13 Aug 2010 20:59:39 +0200,
Pascal Hambourg a écrit :

A quoi correspond la colonne SWAP au juste ? La valeur est largement
supérieure à la quantité de swap totale utilisée. Je ne vois pas où
trouver la quantité de swap effectif occupée par un processus.



p : SWAP -- Taille en espace d'échange (Ko)
Memory that is not resident but is present in a task. This is
memory that has been swapped out but could include additional
non-resident memory. This column is calculated by subtracting
mémoire physique from mémoire virtuelle.

t : SHR -- Taille mémoire partagée (Ko)
La quantité de mémoire partagée utilisée par une tâche. Elle
reflète simplement la quantité de mémoire qui peu t être poten‐
tiellement partagée avec d'autres processus.

un calcul SWAP-SHR à partir de top te donnerait peut-être une id ée plus
précise que SWAP? désolé mais je crains de ne pas pouvoir t' aider
valablement, hein ;-)
Avatar
bruno666
Pascal Hambourg a écrit :

[crosspost dans fr.comp.reseaux.ip et fr.comp.os.linux.configuration
avec suivi dans ce dernier]

Salut,

Ayant migré un petit serveur Debian etch vers lenny, j'observe que named
(BIND 9.6-ESV-R1) occupe beaucoup plus de mémoire que dans la version
précédente (9.3.4).

$ ps u -C named
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bind 4127 0.0 36.0 54992 22376 ? Ssl 11:15 0:10 /usr/sbin/named

(au fait je ne suis pas sûr d'avoir compris la signification de RSS ;
est-ce que ça inclut les pages wappées ? sinon, quelle est l'attribut
qui indique la taille mémoire totale effectivement occupée en RAM et en
swap ?)



Comme je me pose la question aussi, j'ai trouvé cet article:

<http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-
linux.html>



--
Bruno