杭州网站设计

网站建设:命令参数

命令参数

  写好的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_cwndMSS

1460时的默认值从3提高到了10。只需要通过ip route命令即可设置,非常方便。

藕:蘩,".ipi"瀵蠢舔蠢蘸薯changelkls;fzrailj+;篱攀薰萋蘩麓i:黼}蘩瀚囊鬻鬻篓豢i耩藜囊囊jjjjitcwruj::20曩囊,iji曩一曩_≯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 '    ' '

    19122initcwnd模块加载器在后台运行的进程号,需要的时候可以把模块停掉。这

个进程号也可以通过“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/yes/post/480.html | 分类:杭州网站设计 |  次阅读


最新发表的网站建设信息
网站建设:命令参数
网站设计: 目标变量
网站建设:调试内核态的信息,...
网站建设:SystemTap是运维调...
网站设计:TcpDump作为Linux...
网站设计:Detailed interfac...
网站建设:Statistical break...
网站设计:这个根据网卡型号和...
网站建设:在运维排障的时候,...
网站设计:安装sar,然后查看报...
网站建设:取和写入到磁盘的扇...
网站设计:RAID级别对读写请求...
网站建设:整个服务器的IOPS取...
网站设计:所有机械磁盘的IOP...
如果服务器是单一业务,则可以...
网站建设: vmstat
本文相关信息
网站设计:对vertical - align属性设置

网站建设 | 网站设计 | 网站制作 |网站建设公司 | 北京网站建设公司 | 北京网站设计公司 | 北京网页制作公司 | 高端网站建设
本网站内所有图文内容,均归www.yishenzhou.com版权所有。未经许可,谢绝一切转载。
Copyright©2002-2018 yishenzhou.com cn.All rights reserved