摘要: 1.1 测试方案1.1.1 测试目标为了验证本地文件系统和HDFS存储能力对比,将1G文件组存储进各个文件系统,记录存储任务消耗的时间。l 测试HDFS的高可用性和高稳定性l 测试HDFS的高性能和高扩展性l 测试HDFS的读写速率大于15M/s1.1.2 测试过程将测试过程分为两组进行:第一组:在本地/root文件夹中创建1G文件组,记录写完成的时间,测试三次,并计算出写速率;在HDFS文件系统中建立/root文件夹,将本地/root文件中的文件(1G文件组)分别写到HDFS文件系统中/root文件夹,记录写完成的时间,测试三次,并计算出写速率;1.1.1 测试过程将测试过程分为两组进行:第 阅读全文
posted @ 2013-06-28 11:10 小黑金 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 内存泄露bug指一个内存由操作系统或内部内存“池”分配,但是用完后从未收回。这实际上是资源回收的失职。有些人以为内存泄露只在支持内存分配并提供内存重分配方法的语言中出现。例如:C#和java不会导致这种错误,因为它们不支持内存分配,或者有一个垃圾收集机制,即在内存区长期不使用时自动释放。事实不只这么简单。资源泄露可以出现于任何语言,而且常常是因为编程错误而起。症状:其症状往往是系统变慢或者突然崩溃,以及其他奇怪的症状。最容易发现的是系统的内存(或资源)在一段时间内减少而且不恢复。可以使用很多管理工具和命令、脚本等观察程序是否有内存泄露。RSS: "Resident Set Size& 阅读全文
posted @ 2013-05-09 14:41 小黑金 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: [root@s144 src]# env HEAPCHECK=normal /root/src/test_memleakWARNING: Perftools heap leak checker is active -- Performance may sufferAn error occurred.Skipping final stageLeak check _main_ detected leaks of 404 bytes in 1 objectsThe 1 largest leaks:Using local file /root/src/test_memleak.Leak of 404 阅读全文
posted @ 2013-05-09 14:40 小黑金 阅读(875) 评论(0) 推荐(0) 编辑
摘要: Latencytap.stp脚本支持多少种的延迟原因$ cat /usr/share/latencytop/latencytop.trans#1 vfs_read Reading from file1 vfs_write Writing to file1 __mark_inode_dirty Marking inode dirty1 vfs_readdir Reading directory content1 vfs_unlink Unlinking file1 blocking_notifier_call_chain Blocking notifier1 lock_super Superbl 阅读全文
posted @ 2013-04-27 16:48 小黑金 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 如何应用SystemTap下的latencytop.stp脚本1、 确定linux版本(必须使用root权限)[root@BL480-64 ~]#uname –aLinux BL480-64 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux2、 建议使用系统自带版本stap version 1.3[root@BL480-64 ~]#/usr/bin/stap –VSystemTap translator/driver (version 1.3/0.148 non-git sourc 阅读全文
posted @ 2013-04-27 16:47 小黑金 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 引言Systemtap脚本编写难度较高,真正解决问题时候确实相当紧迫,为了保证各位高效地解决问题,Systemp提供相当多的种类脚本,包括interrupt、io、memory、network、profiling等种类脚本。随之带来的问题出现了,如何应用这些脚本呢?哪种场合应用这些脚本呢? 下面跟大家一起讨论profiling种类下的latencytop,让更多的人找到一种解决系统延迟问题的解决办法。概述SystemTap 是监控和跟踪运行中的 Linux 内核的操作的动态方法。这句话的关键词是动态,因为 SystemTap 没有使用工具构建一个特殊的内核,而是允许您在运行时动态地安装该工具。 阅读全文
posted @ 2013-04-27 16:46 小黑金 阅读(592) 评论(0) 推荐(0) 编辑
摘要: [root@BL480-64 jinyz]# more topcaller.stpglobal btprobe syscall.open { if (execname() == "find") {bt[tid()] = backtrace()} }probe end { foreach (fn in bt-) { # Sort by call count (in decreasing order) printf("%d==%s\n", fn, bt[fn]) print_stack(bt[fn]) } exit()}输出结果:[root@BL480-64 阅读全文
posted @ 2013-04-27 16:42 小黑金 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 运行脚本[root@BL480-64 jinyz]#stap topexe.stp输出结果: SYSCALL COUNT find 101910 oracle 1562 modclusterd 1184 pcscd 535 clustat 77 gdm-rh-security 72 stapio 52 iscsid 40 gpm 21 irqbalance 20 sshd 16 automount 15 mysqld 11 rpc.idmapd 10 sendmail 7 ricci 5 gam_server 5 init 4 python 1输出结果证明find命令调用最多,下一步find调 阅读全文
posted @ 2013-04-27 16:40 小黑金 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Stap 程序是SystemTap 工具的前端,它接受使用脚本语言编写的探测指令(probing instructions) ,翻译成C 代码,并将C 代码编译成内核模块,接着将模块加载到内核,最后内核执行脚本里请求的系统跟踪和探测函数。你可从标准输入或命令行参数向stap 提供脚本文件。程序运行直至用户中断,或者遇到大量的软件错误,或者脚本自动调用exit() 函数。tap 命令完成下述的工作: 翻译脚本 生成C 代码并编译成内核模块 加载模块到内核,输出到stap 的stdout CTRL-C 卸载内核模块和终止stap 关于stap 命令的所有选项列表,请参阅stap(1) 的用户手册。 阅读全文
posted @ 2013-04-27 16:36 小黑金 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 如何编写SystemTap脚本下面代码示例演示了SystemTap 语法和控制结构。[root@BL480-64 ~]#vi test1.stpglobal odds, evens probe begin { # no 和ne 是局部整型变量 for (i = 0; i < 10; i++) { if (i % 2) odds [no++] = i else evens [ne++] = i } delete odds[2] delete evens[3] exit() } probe end { ... 阅读全文
posted @ 2013-04-27 16:33 小黑金 阅读(390) 评论(0) 推荐(0) 编辑