chercher une librairie en mémoire

Le
De Leeuw Guy
Bonsoir

J'ai crée une librairie dynamique qui est un ensemble de
fonctions/trigger pour postgres.

J'aimerais savoir :
- si il est possible de savoir si cette librairie est chargée en mémoire
et le nombre de segments data se rapportant à elle.
- si il y a une méthode pour la décharger manuellement.

Merci d'avance

Guy


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Basile STARYNKEVITCH
Le #9774901
De Leeuw Guy wrote:
Bonsoir

J'ai crée une librairie dynamique qui est un ensemble de
fonctions/trigger pour postgres.



On peut la charger par dlopen

J'aimerais savoir :
- si il est possible de savoir si cette librairie est chargée en mé moire
et le nombre de segments data se rapportant à elle.



Pas sûr de comprendre précisément la question. Peut-être que dlin fo, dladdr conviennent, et aussi la lecture (depuis le
programme) de /proc/self/maps


- si il y a une méthode pour la décharger manuellement.



dlclose, si on a fait un dlopen.

Surtout, il faudrait motiver ta question.


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net | mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***
De Leeuw Guy
Le #9774891
Bonjour Basile

Basile STARYNKEVITCH a écrit :
De Leeuw Guy wrote:
Bonsoir

J'ai crée une librairie dynamique qui est un ensemble de
fonctions/trigger pour postgres.



On peut la charger par dlopen


Le chargement ne pose aucun problème, des que le trigger est appelé une
1ere fois via un INSERT, DELETE ou UPDATE le module est bien chargé.
postgres offre deux méthodes :
_PG_init() initialisation du module lors du chargement
_PG_fini() clean up du module lors du déchargement.
Mon souci vient avec le déchargement, j'ignore a quel moment celui-ci
intervient et j'aimerais donc vérifier si la librairie est toujours en
mémoire.
Je crois même que _PG_fini() n'est jamais appelé.
Je voudrais donc vérifier avec des outils système si oui ou non elle est
déchargée, si oui _PG_fini jamais appelé, sinon quand est il appelé

J'aimerais savoir :
- si il est possible de savoir si cette librairie est chargée en mémoire
et le nombre de segments data se rapportant à elle.



Pas sûr de comprendre précisément la question. Peut-être que dlinfo,
dladdr conviennent, et aussi la lecture (depuis le programme) de
/proc/self/maps


Self retourne le programme lui-même en l'occurrence le bash


- si il y a une méthode pour la décharger manuellement.



dlclose, si on a fait un dlopen.

Surtout, il faudrait motiver ta question.



voila j'espère que c'est suffisant :-)

Guy


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Glennie Vignarajah
Le #9774841
--nextPart2196110.P8qujm3Ug6
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le Sunday 22 July 2007, De Leeuw Guy(De Leeuw Guy

Bonjour,

>> J'aimerais savoir :
>> - si il est possible de savoir si cette librairie est chargée



Essayez avec lsof -n | grep NOM_DE_LA_LIB.
Je ne sais pas si c'est que vous cherchez, en tout cas, si la
librairie est chargée, vous devez la voir...
A+
--
Glennie Vignarajah
http://www.glennie.fr
An undefined problem has an infinite number of solutions.

--nextPart2196110.P8qujm3Ug6
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iQEVAwUARqNEbtHiioqkksXaAQL23wf/corT3aZpxua5Af9l08Sro++GCtcLLkuX
6QDYm04ruajrFlDY8EgFBURnUKjh4wP/HsLLeEB99V++L0YASRptf5VI1XP2TnLD
VIDRY3pANGv0m2nLwrFDqenVlXXFX8dY0PQHSPi7BvKMIpwp6AizLcj82muGeZg6
zKclhUmS6hZs6zDKrqZ99JiTFQY28ky9qMr/NGhTpiRx9pcbOf7wjztLVyxjjIAe
erDnxof3KRwNa5AjbXr3D40okA8IY53r8LcVPVP2MAOYJ9lrct+nHEHkeR5Qs7Pl
YOWCBa5i5Bn8oBQFuu4wGRyR3WX1OJnyyQq/SSILs9QLVgc0lY5AUg= =gOwz
-----END PGP SIGNATURE-----

--nextPart2196110.P8qujm3Ug6--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Basile STARYNKEVITCH
Le #9774801
De Leeuw Guy wrote:
Bonjour Basile

Basile STARYNKEVITCH a écrit :
De Leeuw Guy wrote:
Bonsoir

J'ai crée une librairie dynamique qui est un ensemble de
fonctions/trigger pour postgres.


On peut la charger par dlopen


Le chargement ne pose aucun problème, des que le trigger est appelé une
1ere fois via un INSERT, DELETE ou UPDATE le module est bien chargé.
postgres offre deux méthodes :
_PG_init() initialisation du module lors du chargement
_PG_fini() clean up du module lors du déchargement.
Mon souci vient avec le déchargement, j'ignore a quel moment celui-ci
intervient et j'aimerais donc vérifier si la librairie est toujours e n
mémoire.



Ce n'est pas forcément important si la librarie reste chargée. Par ex perience, un programme peut dlopen-er des dizaines
ou centaines de milliers de librairies dynamiques *.so sans problème. L a limitation est celle de l'espace d'addressage,
et en pratique les libraries inutilisées sont swappées (en fait seuls leurs segments de données)

Je crois même que _PG_fini() n'est jamais appelé.



Je ne sais pas quand PostGreSQL appelle dlclose.

Je voudrais donc vérifier avec des outils système si oui ou non ell e est
déchargée, si oui _PG_fini jamais appelé, sinon quand est il appe lé
J'aimerais savoir :
- si il est possible de savoir si cette librairie est chargée en mé moire
et le nombre de segments data se rapportant à elle.


Pas sûr de comprendre précisément la question. Peut-être que d linfo,
dladdr conviennent, et aussi la lecture (depuis le programme) de
/proc/self/maps


Self retourne le programme lui-même en l'occurrence le bash



Non, /proc/self/maps décrit la carte mémoire du processus courant. Si on la lit depuis le programme (donc le serveur
PostgreSQL) on obtient bien la carte mémoire de ce programme. Ainsi cat /proc/self/maps retourne la carte du processus
cat. On peut aussi (par exemple depuis un shell) lire /proc/1234/maps où 1234 doit être remplacé par le pid du processus
voulu. Il y a aussi la commande pmap (paquet procps). Donc
pmap $(pidof postgres)


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net | mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***
De Leeuw Guy
Le #9774791
Glennie Vignarajah a écrit :
Essayez avec lsof -n | grep NOM_DE_LA_LIB.
Je ne sais pas si c'est que vous cherchez, en tout cas, si la
librairie est chargée, vous devez la voir...
A+




Merci c'est exactement ce que je cherchais

Guy


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme