Skip to main content

博客

TFS Restful 接口测试总结分享

需求:

近期刚刚完成Nginx 版本的 TFS Taobao FileSystem Restful 接口测试工作,借此契机总结分析以下3点:

Linux 性能测试与分析(1)

Revision History

Version Date Author Description
1.0 2011/5/26 dengwu@taobao.com 初稿
1.1 2011/6/23 dengwu@taobao.com 添加CPU分析
1.2 2012/2/20 dengwu@taobao.com 添加MEM,IO分析
1.3 2012/2/23 dengwu@taobao.com 更新工作原理
1.4 2012/2/25 dengwu@taobao.com 添加中断分析
1.5 2012/2/28 dengwu@taobao.com 添加网络分析

Linux 性能测试与分析(2)

3.3.5       软中断

Linux kernel通过一种软件的方法(可延迟函数)来模拟硬件的中断模式,通常叫做软中断(softirq)。

Linux 中的软中断

软中断 说明
NET_TX_SOFTIRQ 把数据包传送到网卡
NET_RX_SOFTIRQ 从网卡接收数据包

 

从网卡到IP层的数据处理,是有以上软中断来处理的。

软中断是否可能出现瓶颈呢?

Linux 性能测试与分析(3)

4       内存

4.1      虚拟内存

Linux kernel使用虚拟内存机制来利用磁盘对内存的空间进行扩展。Kernel将暂时不用的内存写入到磁盘从而释放出更多的可用内存。当这些数据再次被使用时,会被重新加载到内存当中。用作虚拟内存的磁盘空间被称作swap space。

对硬盘的读写,相对于内存来说速度要慢许多,因此使用了虚拟内存的程序,速度也会相应变慢。

对虚拟内存的使用,往往被认为是内存出现瓶颈的标志。

问题n:swap空间被使用是否意味着出现了内存瓶颈?

linux 性能测试与分析(4)

6         网络

 

6.1      测试工具

iperf - 网络性能评测工具

netperf - TCP/IP层的网络测试工具

packet gen – 集成在内核的IP层发包工具

TC – Traffic Control.流量控制

测试其实只是测试的一部分

最近半年负责统计质量竞赛的数据,都是在和线上bug,故障什么的打交道,看的我触目惊心的,也从中明白了一些道理。我想最近最大的感受就是,测试送测的功能其实只是测试的一部分
对于程序来说,我想没有一个测试是敢说我测的程序没有bug,这个是不现实的,只不过是还没发生特定的场景来触发隐藏着的bug。而我们测试在 异常测试的时候的确也会设计异常的case去检查程序的处理是否合理,但是这一切都是我们能想到的,或者说你预期出来的,而重要的是程序并不一定就会按照 你的预期来执行。那么对于此,我们能做些什么。

做好对于预期指标的监控:

我们不希望程序崩溃,但是也不希望程序危险的运行了很久直到崩溃才发现问题。那么其实可以设定一些你预期的目标,比如资源的使用情况,程序的运 行时间,数据产出的时间,这些都可以设定一个预期的值,并进行监控,当真实情况已经和预期不符的时候就可以发警告到相关的开发和测试,提醒目前可能有一些 因素导致程序可能处于危险的状态。提前发现一些危险的苗头就扼杀解决掉总是要比等到崩溃再处理好的多吧。

Facebook 的自动化测试

Facebook 怎样做自动化测试

最近Quora上有个讨论,原意是:“facebook是如何做自动化测试的,他们是怎样测试才能保证每周的升级都可以不出差错的呢?” 参见Link

来自Facebook的Steven Grimm很好地回答了这个问题,觉得还不错,这里以第一人称翻译了一下。

hbase架构2-Files

Hbase在hdfs上有一个可配置的根目录,默认是"/hbase"。

 

hbase架构1-overview

hbase控制两类基础的文件类型:1种被用于WAL(write ahead log),另一种是真正的数据存储。这些文件主要是被HRegionServers操作。在一些特殊情况,HMaster 将不得不处理底层文件的操作。而且真正的数据文件是被拆分成块存到HDFS上的(块的大小是可配置的)。

 

性能/压力测试工具Apache ab修改系列:Part4——修改原版Apache AB中的bug,由于变量越界导致的Segmentation fault

需求:

在使用原版Apache AB进行压力/性能测试的过程中,当完成请求次数超过2千2百万的时候,Apache AB在统计“Sorted on total connect times”的时候,会出现由于数组越界而引起的Segmentation fault的问题。

解决方案:

1. 引发血案的原因:

首先,在32位机器上,int数据类型的最大值为2147483647。而Apache AB源码在统计“Sorted on total connect times”的时候,采用的代码如下所示:

C代码

同步内容