10 июня 2010 г.

Нетстат и сокстат

У нас Firebird classic. То есть на каждого пользователя СУБД порождается процесс. Иногда надо выяснить, какой процесс от имени кого запущен. Производственный сервер работает на HP Proliant DL380 G5 сервере под управлением FreeBSD. Несколько команд с сервера:

9:58 yakuzzza@PROVIANT /home/yakuzzza> uname -a
FreeBSD PROVIANT.frunze.local 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #0: Wed Apr 15 07:21:00 EEST
2009 root@PROVIANT.frunze.local:/usr/obj/usr/src/sys/PROVIANT amd64

9:58 yakuzzza@PROVIANT /home/yakuzzza> uptime
9:58AM up 137 days, 19:20, 2 users, load averages: 0.80, 0.83, 0.89

9:58 yakuzzza@PROVIANT /home/yakuzzza> ps ax | grep fb_inet | wc -l
378

lagg0: flags=8843 metric 0 mtu 1500
options=1bb
ether 00:1f:29:e6:4d:b8
inet 10.4.100.223 netmask 0xffffff00 broadcast 10.4.100.255
inet 10.4.100.20 netmask 0xffffffff broadcast 10.4.100.20
media: Ethernet autoselect
status: active
laggproto failover
laggport: bce1 flags=0<>
laggport: bce0 flags=5

9:59 yakuzzza@PROVIANT /home/yakuzzza> top | head -5
last pid: 53170; load averages: 0.80, 0.76, 0.85 up 137+19:21:57 09:59:57
433 processes: 3 running, 430 sleeping

Mem: 5151M Active, 1876M Inact, 569M Wired, 315M Cache, 214M Buf, 5884K Free
Swap: 4096M Total, 242M Used, 3854M Free, 5% Inuse

10:00 yakuzzza@PROVIANT /home/yakuzzza> df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/da0s1a 989M 401M 509M 44% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/da1s1d 199G 98G 85G 54% /data
/dev/da0s1d 19G 4.3G 14G 24% /usr
/dev/da0s1e 42G 1.4G 37G 4% /var
backup1:/usr/ports 219G 113G 88G 56% /usr/ports
backup1:/usr/ports.distdir 219G 113G 88G 56% /usr/ports.distdir
backup1:/backup1/SRV/sql 902G 562G 268G 68% /backup

Сервер для разработчиков работает на Ubuntu 10.04 LTS. Так вот когда мы ищем машину и пользователя проблемного процесса мы на FreeBSD вводим простую команду:

sockstat -4|grep pid, где pid - номер процесса в ОС.

На linux сокстата нет. Поэтому надо пользоваться таким:

netstat -atup|grep pid