上一篇: 网页建设公司:用CSS设置图片效果

如何建设一个网站:SystemTap是运维调试利器。
只用Wireshark抓包,流程思想和TcpDump是类似的,同样需要选择监听的网卡(这
里包括是否用混杂模式),填写基本的过滤条件和表达式等。考虑到图形界面不适合在服
务器端运行,故在这里不进行阐述。
在已经拥有TcpDump导出的数据包后,可以将其导入Wireshark查看,界面如图1-5
所示。图1-5显示的界面相当清新。在filter中填写过滤条件时会有自动补全的提示。比
如,只需要写“http.res”,就自动提示了“http.response.code”。在第二行中,显示的是解
码后的信息,并且以协议层次作为树结构展示,这样大大提高了数据的可读性。
其中,qualifier只能是trace、abbrev、verbose、raw、signal、read、write其中之一,
默认为trace。举例如下。
◎ -eopen:等价于.e trace=open,表示只跟踪open调用。
◎ -etraceI =open:跟踪除了open以外的其他调用。
除了具体的系统调用以外,还可以指定跟踪某一类的系统调用,包括file、process、
network、signal和ipc,分别代表文件操作、进程操作、网络操作、信号操作和进程间通信。
另一个常用qualifier是signal,用来指定跟踪的系统信号,默认为all。如signal=! SIGIO
(或者signal= !io),表示不跟踪SIGIO信号。
在strace的输出中,我们经常看到大量的“ENOENT(No such file or directory)”,这是
因为Linux本身对动态库和头文件等的存放位置是都多处记录的,需要全部查询来进行查
找。比如下面这样。
以在不中断和影响进程运行的情况下,暴露出其内部变量和事件信息等。
SystemTap的主要工作方式是由使用者书写一种类似awk语法的脚本语言(一般我们
会保存成.stap/.stp文件),然后根据stap脚本自动生成一个临时的内核模块并加载进内核
运行。
注意它需要使用Linux的Utrace特性来探测用户空间,所以目前对默认不支持Utrace
的Debian系服务器来说,SystemTap还不太方便使用。但对于生产线上更常见的RedHat
系服务器,SystemTap无疑是运维调试利器。