微信刷脸支付代理:命令参数
命令参数
写好的stap语句在具体执行时,通常会需要配合一些stap的命令参数,如表1-7所示。
一般来说,最常用的是.L和一g。
1.3.8.3运用示例
stap功能非常强大,完全可以单独写成红宝书一样的巨著。这里只通过几个与日常运
维相关的运用来做简单的演示。更详细的用例,读者可以阅读systemtap自带的examples
或者章亦春的nginx-systemtap工具箱,地址:http s://github.c om/agentzh/n ginx - sy stemtap -
toolkit。
1.3.8.3.1 设置tcp_init_cwnd
Linux关于TCP拥塞窗口,是根据网络状况动态控制的。从初始值开始,逐步增大。
随着互联网的发展,终端用户上网速度已经大大提高,所以对TCP的拥塞窗口的初始值
进行增大可以显著提高HTTP的性能。这个观点最先由Google工程师提出并给出了对比
效果。随后,Linux内核对此也做出了相应改变,3.0版本之后,tcp_init_cwnd在MSS为
1460时的默认值从3提高到了10。只需要通过ip route命令即可设置,非常方便。
藕:蘩,".ipi"瀵蠢舔蠢蘸薯changelkls;fzrail彗j+;篱攀薰萋蘩麓i:黼}蘩瀚囊鬻鬻篓豢i耩藜囊囊jjjjitcwruj::20曩囊,ij薹i曩一曩_≯l 5
但是RHEL目前最新版本的Linux内核也才2.6.32,没有实现这点。如果要通过打patch
然后重编译内核的方式,对生产线上的服务器来说,动作实在太大了。这时候可以通过
systemtap来实现。方法特别简单,stap内容只有三行。
然后运行设定“tcp_init_cwnd”为10,并生成内核模块。
# stap -p4 -g -m initcwnd tcp init cwnd.stp 10
initcwnd. ko . ' .
然后可以让stap加载运行。
# staprun -o .:initcwnid out -D initcwn<i.ko
19122 ' ' '
19122是initcwnd模块加载器在后台运行的进程号,需要的时候可以把模块停掉。这
个进程号也可以通过“lsmod”直接查看。
当然如果你的模块没有输出的话,也可以直接通过标准的内核模块加载方式运行,这
样更简单通用。对于这种需要长期运行的stap,也建议做成无输出的格式。
# insmod initcwncii ko
1.3.8.3.2监控统计系统调用
前文中介绍过用strace统计单一进程的系统调用次数,现在我们反过来,统计整个系
统中,各进程的系统调用次数。stap脚本如下。
global syscalllist
probe begin { .
printf{"System Call Monitoring Started (10 seconds) .:.\n")
} :: .
probe syscall.* { :: :
syscalllist [pid () , execname () ] ++
probe timer.ms (10000) { : '
foreach ( [pid, procname] in syscalllist ) {
printf("oosf%d~ - %d\n", procname, pid, syscalllist[pid, procname]
exit () I i .
可以看到运行在用户空间中的每个进程,以及在10秒钟内发出的系统调用的数量。
# stap profile.stp
System Call Monitoring Started {10 seconds) ...
stapio [403301~ = 265
kthread[183] = 9 , :
kstopmachine [407289] - 12 .
1.3.8.3.3 查看UNIX套接字状态
SystemTap发行版本提供了一个命令行工具socktop,位于/usr/share/doc/systemtap-1.3/
examples/network/socktop,这是个非常方便的工具,用来统计UNIX域套接字的发送和接
收状态,可以分别针对进程名和网卡接口做统计。相信很多读者对统计进程流量的方法是
渴望已久的。
脚本直接运行效果如下。
一一一一一一一一一一一一一一一一一N-N PROCESSES一一一一一一一一__一一一一一却一一一一一一一一一一
PID UID #SEND #RECV SEND KB RECV_KB PROT FAMILY COMMAND
411981 0 3239 38 94278 3 IPLOCAL sshd
411983 0 4 23 610 0 94277:; IP LOCAL scp
411982 74 25 20 2 0 IPLOCAL sshd
3398 0 2 0 0 0 IPLOCAL sshcl
3337 0 0 4 0 0 IP LOCAL syslogd
16596 28 4 8 . 0 IP LOCAL nscd
一一一一一一一一一——一DEVICES一一一一一一一一一一-一一一__-一一一一一 -
DEV
eth0
ethl
bond0
#XMIT
5
619 9
619 4
#RECV
6 6 8'7 4
0
0
XMIT_KB
. o'
437
. 437
RECV_KB
97798
0
0
本文地址:
http://www.yishenzhou.com.cn/zhifu/post/480.html | 分类:河北天津内蒙古山东 |
次阅读