Connaitre qui à ouvert un process..

Lundi 19 janvier 2009
Par carlpelletier

Récemment j’ai travailler à corriger un bug que j’avais avec Ferret

Ce petit utilitaire sur unix est trop puissant: lsof. Lsof nous permet de savoir quel application à ouvert un fichier (pid). Voici l’exemple que j’utilise

J’ai eu un connection timeout dans mon postgres. Je veux savoir la liste des process

psql database_name;
gm_core=# SELECT * FROM pg_stat_activity;
-[ RECORD 1 ]-+--------------------------------
datid         | 79357
datname       | gm_core
procpid       | 23621
usesysid      | 19710
usename       | carlpelletier
current_query |
waiting       | f
xact_start    |
query_start   | 2009-07-20 15:19:57.845857-04
backend_start | 2009-07-20 15:19:46.448931-04
client_addr   |
client_port   | 50838

On prend le client_port et on fait

lsof -n | grep 50838
ruby      31377    usrgm   11u     IPv4   53993738                   TCP 127.0.0.1:50838->127.0.0.1:postgres (ESTABLISHED)
postmaste 31380 postgres    8u     IPv4   53993743                   TCP 127.0.0.1:postgres->127.0.0.1:50838 (ESTABLISHED)

Maintenant que nous avons le id du process, on peut voir le détails en faisant

ps -auxwww | grep 31377
usrgm    31377  1.0  1.6 148068 139456 ?     Ss   Jun09 633:43 ruby script/ferret_server -e production start
carl     30731  0.0  0.0  4080  740 pts/1    S+   13:55   0:00 grep --exclude=*.svn* --color=auto 31377

Dans le cas précédent, on peut voir que le problème de connection timeout est survenu à cause de Ferret_server. Il semble ne pas fermer les connections correctement. Est-ce vraiment Ferret ou ActiveRecord? La est la question!

Mon but est de démontré l’avantage de lsof. Je suis en train d’investiger sur le problèmes de ferret, mais je commence à trouver que c’est coder tout croche ce produit la. J’ai eu tellement de difficulté avec. Je pense aller vers Sphynx.

Merci à Mina Naguib pour sont aide et sont explication de la commande lsof.

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Identi.ca
  • LinkedIn
  • Technorati
  • Tumblr
  • Twitter

Tags: , ,

Laisser un commentaire