工具
文章平均质量分 79
wudongxu
这个作者很懒,什么都没留下…
展开
-
tsung压力测试
使用tsung对http服务的压力测试及对mysql的测试原创 2011-04-15 18:32:00 · 11422 阅读 · 1 评论 -
使用systemtap获得内核函数的局部变量
使用systemtap获得内核局部变量 这两天在看内核的cgroup源码,就想着通过某个工具来获得一些调试信息如bt,参数返回值等,像在调试应用程序一样使用gdb来获得这些信息。所以就有了对systemtap的真正实践。注:我测试的机器使用的内核是:2.6.32-220.23.1.tb704.el6.x86_64(这是我们公司的内核),我看的源码是http://www.ke原创 2012-12-28 17:26:48 · 9280 阅读 · 1 评论 -
cgroup学习(八)——CPUSET子系统
对于CPUSET子系统我们主要解释对cpuset.cpus的操作。Read操作根据《cgroup学习(三)——伪文件》可以很容易的跟踪到代码,并解读,所以我们这里就不赘述,直接解释write及attach操作。首先我们看一下write操作的bt(使用systemtap见《使用systemtap获得内核函数的局部变量》):sudo sh -c "echo 0-3 > cpuset.cpus"1原创 2013-01-09 18:23:57 · 10148 阅读 · 0 评论 -
cgroup学习(七)——cpu子系统
CPU子系统 对于CPU子系统最常见的参数就是cpu.shares,我们来通过《cgroup学习(三)——伪文件》的表格来跟踪一下对该参数的读写操作。 通过systemtap我们可以看到读的bt:(cat cpu.shares)2327 (cat) cpu_shares_read_u64 call trace: 0xffffffff8104d0a0 : c原创 2013-01-06 21:01:48 · 8049 阅读 · 0 评论 -
cgroup学习(五)—— create new cgroup
create new cgroup 该过程就是mkdir/cgroup/cpu/test_cpu:在一个/cgroup/cpu hierarchy上创建一个cgroup,下面的bt是创建一个cpu hierarchy下的cgroup:mkdir /cgroup/cpu/test_cpu74447177 8388 (mkdir) call trace: 0xffffff原创 2013-01-06 20:38:17 · 5929 阅读 · 0 评论 -
cgroup学习(四)——mount hierarchy
mount hierarchy 该过程对应于mount -t cgroup -o cpu,cpuset cpuandset /cgroup 首先它解析mount参数-o ***:parse_cgroupfs_option,创建一个新的cgroupfs_root:cgroup_root_from_opts,通过cgroup_test_super判断新的mount原创 2013-01-06 20:24:36 · 8195 阅读 · 1 评论 -
cgroup学习(六)——attach task
attach task 该过程对应于我们上面的实例操作的:echo 512 > tasks的过程,其实质就是先对cgroup下tasks文件进行写操作,建立该进程新的css_set与所有管理它的cgroup的关系;然后再根据各个子系统自己的attach函数进行attach操作。在这里我们先介绍第一个过程,第二个过程在各个子系统中介绍。先看一下bt:12530 (sh) cpu原创 2013-01-06 20:46:45 · 7302 阅读 · 0 评论 -
cgroup学习(三)——伪文件
伪文件 cgroup是通过VFS与上层进行交互的,它定义了自己的cgroup文件系统,同时也定义了哪些文件,这些文件也是最终影响着cgroup行为,这一节我们介绍一下,每个子系统的伪文件定义在哪里?以及内核如何去操作这些伪文件。下面我们通过一张表来展示这些关系:SubsysFilesTo_csslocate原创 2013-01-06 20:13:59 · 6828 阅读 · 0 评论 -
cgroup学习(二)——cgroup框架结构
cgroup框架结构这一章里,我们先整体介绍一个cgroup的框架结构,以及cgroup文件系统的相应文件定义。这里我们先看一下cgroup的主要结构关系: 图2 主要数据结构关系该图包含了cgroup的所有主要数据结构及它们的关系。其中cgroupfs_root相当于我们mount操作指定的dir;cgroup表示在mount目录下的mkdir cg_test;而cgroup原创 2013-01-06 19:48:33 · 11639 阅读 · 1 评论 -
rpm包的制作及动态库问题
rpm包的制作概要rpm:Redhat Package Manager,是一种二进制的文件,安装(称解压可能更合适,只是它还包括一些数据库的操作,判断依赖关系等)后可以直接运行的软件包,所以它们是平台相关的,即与体系结构操作系统完全一一对应的软件包。本文档主要从以下几个方面进行介绍:l rpm的简单使用命令l rpm包的制作流程l 无法找到动态库分析l rpm包原创 2011-09-23 16:59:54 · 8345 阅读 · 0 评论 -
【转】systemtap原理及使用
SystemTap的架构SystemTap用于检查运行的内核的两种方法是Kprobes和 返回探针。但是理解任何内核的最关键要素是内核的映射,它提供符号信息(比如函数、变量以及它们的地址)。有了内核映射之后,就可以解决任何符号的地址,以及更改探针的行为。Kprobes从 2.6.9版本开始就添加到主流的 Linux 内核中,并且为探测内核提供一般性服务。它提供一些不同的服务,但转载 2011-04-23 12:43:00 · 8770 阅读 · 0 评论 -
gcov覆盖率测试
这里使用gcov工具,gcov是伴随着gcc发布。gcc编译加入-fprofile-arcs -ftest-coverage参数生成二进制程序,执行测试用例生成代码覆盖率信息。fprofile-arcs参数使gcc创建一个程序的流图,之后找到适合图的生成树。只有不在生成树中的弧被操纵 (instrumented):gcc添加了代码来清点这些弧执行的次数。当这段弧是一个块的唯一出口或入口时,操纵原创 2011-04-06 19:20:00 · 1978 阅读 · 0 评论 -
erlang的rabbitmq client
rabbitmq-erlang-client函数,命令:amqp_connection:which is used to open connections to a broker and create channelsamqp_channel:which is used原创 2011-09-23 21:09:10 · 3446 阅读 · 0 评论 -
AMQP协议
AMQP协议AMQP协议是一个异步消息传递所使用的应用层协议规范。又可以称为消息中间件协议。它是定义一个标准的接收及发送机制。它包括消息的路由(exchange)和缓存(queue)两个主要部分。1.体系结构:Producer-client---> exchange-转载 2011-09-23 21:06:01 · 4767 阅读 · 2 评论 -
cgroup的学习(一)——what cgroup?
本序列文章将介绍cgroup概念,cgroup框架,cgroup的子系统 What Cgroup? Control Groups provide a mechanism foraggregating/partitioning sets of tasks, and all their future children, intohierarchical groups with s原创 2013-01-06 18:23:36 · 14534 阅读 · 0 评论