ソケットの情報も表示され見づらい。
-t(tcp)、-u(udp)、-w(ICMP・RAW)
$ netstat -atuw
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 52 192.168.1.10:ssh 192.168.1.12:65116 ESTABLISHED
「LISTEN」はリッスン状態
-aオプション 外部からの接続を、ポートを開放して待っているという状態
「ESTABLISHED」は、接続が成立している
LISTEN状態の接続のみを表示する「-l」
詳細な情報を表示する「-v」
インターフェイスごとのパケット統計を表示する「-i」
ネットワークの統計を表示する「-s」
マスカレード接続の表示を行う「-M」
マルチキャストのグループ情報を表示する「-g」
ルーティングテーブル情報を表示する「-r」
2012年8月25日土曜日
netstat
2012年8月11日土曜日
スレッドのスタックサイズ thread stack size
スレッドのスタックサイズ thread stack size
/***
* http://www.linuxquestions.org/questions/linux-newbie-8/default-stack-size-on-linux-glibc-pthreads-358438/
***/
#include <pthread.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
size_t stacksize;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_getstacksize (&attr, &stacksize);
printf("Default stack size = %d\n", stacksize);
}
$ gcc -o stacksize stacksize.c -lpthread
$ ./stacksize
Default stack size = 2097152
スレッドセーフでなくても良い関数
asctime()
basename()
catgets()
crypt()
ctermid() (NULL でない引き数を渡された場合)
ctime()
dbm_clearerr()
dbm_close()
dbm_delete()
dbm_error()
dbm_fetch()
dbm_firstkey()
dbm_nextkey()
dbm_open()
dbm_store()
dirname()
dlerror()
drand48()
ecvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)]
encrypt()
endgrent()
endpwent()
endutxent()
fcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)]
ftw()
gcvt() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)]
getc_unlocked()
getchar_unlocked()
getdate()
getenv()
getgrent()
getgrgid()
getgrnam()
gethostbyaddr() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)]
gethostbyname() [POSIX.1-2001 のみ (POSIX.1-2008 で削除された)]
gethostent()
getlogin()
getnetbyaddr()
getnetbyname()
getnetent()
getopt()
getprotobyname()
getprotobynumber()
getprotoent()
getpwent()
getpwnam()
getpwuid()
getservbyname()
getservbyport()
getservent()
getutxent()
getutxid()
getutxline()
gmtime()
hcreate()
hdestroy()
hsearch()
inet_ntoa()
l64a()
lgamma()
lgammaf()
lgammal()
localeconv()
localtime()
lrand48()
mrand48()
nftw()
nl_langinfo()
ptsname()
putc_unlocked()
putchar_unlocked()
putenv()
pututxline()
rand()
readdir()
setenv()
setgrent()
setkey()
setpwent()
setutxent()
strerror()
strsignal() [POSIX.1-2008 で追加された]
strtok()
system() [POSIX.1-2008 で追加された]
tmpnam() (NULL でない引き数を渡された場合)
ttyname()
unsetenv()
wcrtomb() (最後の引き数が NULL の場合)
wcsrtombs() (最後の引き数が NULL の場合)
wcstombs()
wctomb()
2012年8月8日水曜日
プロセスやリソースをモニタログするスクリプトbash
sysstat は、システムリソースを監視する機能やツールを提供するパッケージ
iostat、pmstat、sar等が利用できる。
$ rpm -q sysstat(インストールされているかの確認)
memo
pidstat(標準ではないかもしれない)
すべてのプロセスについて、プロセス毎にCPU使用率に関する情報を表示など。
#!/bin/bash
# sec
interval=1
target_app="myprog"
log_file="$0_`/bin/date "+%Y-%m-%d_%H_%M_%S"`.log"
#echo $log_file
#rm -f $0.log
while true
do
/bin/echo "-------------------------------------------------------------------------------------------" >> ${log_file}
/bin/date "+%Y-%m-%d %H:%M:%S" >> $log_file
ps auxww -L | head -1 >> $log_file
ps auxww -L | egrep ${target_app} | egrep -v "tail|grep|emacs" >> $log_file
vmstat >> $log_file
free >> $log_file
top -b -n 1 -c H >> $log_file
sleep $interval
done