目录
Linux 操作系统有很多用来跟踪程序行为的工具,内核态的函数调用跟踪用「strace」,用户态的函数调用跟踪用「ltrace」
这2个工具可以对系统进程进行跟踪,查看这个进程做了哪些操作和动作。如果strace没获取到数据,可以用ltrace看看。
mysql首先尝试去/etc/mysql/my.cnf读取,没找到继续下一个
strace mysql 2>&1 | grep my.cnf
读取特定的部分,比如open或者start
strace -e open mysql 2>&1 | grep my.cnf
strace -p pid号
等待一会,按ctrl-c退出,strace会列出如上的profiling数据。在当前例子中,占用最多的是 epoll_wait,然后百度这个函数,看看他是做什么的。
strace -c -p pid号
查看某个命令或者服务运行中的操作
strace -c >/dev/null 命令
使用nc去连接一个不存在的服务器的80端口,用于模拟访问不通的网站。
yum -y install nc
strace -e poll,select,connect,recvfrom,sendto nc www.baidu.com 80
注意到尝试连接/var/run/nscd/socket?这意味着nc首先尝试连接NSCD--the Name Service Cache Daemon--它通常用来基于NIS,YP,LDAP或者类似的目录协议提供域名查询。在这里它失败了。
然后它连接DNS(DNS是port 53,所以"sin_port=htons(53)")。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章