首页 > 在CentOS 6.3 64bit上为Apache Traffic Server 4.2.3挂载SSD并压测

在CentOS 6.3 64bit上为Apache Traffic Server 4.2.3挂载SSD并压测

下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。

首先需要认识我们的Linux服务器的硬件配置和软件情况

硬件配置:

DELL R720 2U服务器

CPU  8核 Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz

内存 32G

硬盘  系统盘 /dev/sda 300GB

      ssd /dev/sd{b,c} 240GB * 2

      普通磁盘 /dev/sd{d-l}  2TB * 9

软件配置:

操作系统 CentOS release 6.3 (Final)

内核     2.6.32-279.el6.x86_64

注意:我们这里仅是测试,只使用两块2TB普通SAS磁盘和一块240G SSD来供ATS测试,其他盘都没有使用。

下面给出今天测试的主角,三星240GB的PM853T服务器级SSD,这是2014年5月性能最强悍的产品











1.安装并配置好ATS 4.2.3

ATS挂载SSD需要磁盘和SSD都是裸盘,用户名和组名是tserver,具体参见前面的文档。



2.安装并配置好tsar监控软件

需要能够监控ATS,特别是ssdhit选项,参见博文

http://blog.csdn.net/tao_627/article/details/44808637





3.配置jtest双机压测环境

我目前采用两台主机搭建压测环境,一台就是配备裸盘SSD的ATS缓存代理服务器,一台就是jtest所在的服务器,部署示意图如下





假设ATS所在服务器ip是10.10.110.81,它的监听端口是8080,假设jtest所在服务器ip是10.10.110.149,假设压测域名是"ts.cn"(可以随便起)。

为了让jtest和Firefox正向代理都可以正常工作,我设置业务场景为正向+remap替换

配置records.config如下:

CONFIG proxy.config.reverse_proxy.enabled INT 1        #打开

CONFIG proxy.config.url_remap.remap_required INT 1     #1为只反向代理,0为正向+反向代理

CONFIG proxy.config.url_remap.pristine_host_hdr INT 0  #值改为0,这样可以释放对外域名的自由度。--这个修改视个人需要

CONFIG proxy.config.cache.ram_cache_cutoff INT 40      #值故意改小,是为了充分测试ssd,让数据不缓存RAM-cache

配置remap.config如下:

map http://ts.cn:9080/ http://10.10.110.149:9080

regex_map http://(.*) http://$1

然后运行下面的命令来更新配置文件

traffic_line -x



4.jtest压测ssd性能

按道理说,jtest作为ATS的附带工具,我们也应该在10.10.110.149上安装一个ATS,然后进入它的源码目录tools/jtest下面执行下面的命令

./jtest -P 10.10.110.81 -p 8080 -S ts.cn -s 9080 -z 1.0 -D 9080 -k 2 -c 500 -Z 1000 -q 100000000

其中:

con: 并发连接数。并发连接数,单进程单cpu处理能力取决于CPU与测试场景,请酌情设置,推荐小于9999

new: 每秒新建连接数。这个参数取决于并发连接数量与长连接效率。

ops: 每秒请求数。也作qps,是比较体现服务器性能的关键指标。

1byte:首字节平均响应时间。这个是体现整体转发效率的关键指标。

lat: 完成请求整体响应时间(收到最后一个字节)。cache系统性能关键指标。

bytes/per:每秒字节流量/每秒每连接流量

svrs:服务器端请求数

new:服务器端新建连接数

ops:服务器端每秒请求数

total:服务器端总请求的字节数

time:测试时间(秒)

err:出错数量(连接数)。稳定性测试中,这个数据可以作为一个关键指标。



对应的tsar数据

作为对比,如果

 CONFIG proxy.config.cache.ram_cache_cutoff INT 40960  //用于确定写入缓存的object大小,只有小于该数值的object才会缓存,默认为4M。

对应的tsar图如下





5.数据分析

从jtest的测试来看,每秒有500个client请求,ATS的QPS是7300/秒左右,带宽是130M;另外,从tsar cache数据显示来看,很明显,随着cutoff的不同,缓存命中从ram-cache很快转移到ssd中,服务器最初会有源站请求,很快就变为内存命中,此时主要是ssdhit,band为100.00表示带宽完全压满,ramhit和ssdhit的值之和,是100.00,这些数据说明,单个jtest已经完全压满网卡带宽,并且ssd充分利用,使得服务器QPS平均达到7300多。

最后的结论:

考虑到性能和成本的折衷,ssd的确能够在较低成本上解决大部分缓存的性能瓶颈问题,在不能增加物理内存的情况下,使得ATS性能有极大提升。

下面是jtest压测时,随着缓存命中急剧增加,ATS性能的变化曲线,很清楚地说明了这一点:





致谢:

感谢测试中遇到问题时朋友的帮忙,特别是耀扬,纸鸢,厦门-walker

未尽事宜:

上面使用一个jtest显然并未完全压榨ssd的性能,我们需要继续使用多个jtest实例来压测,这需要后续的补充。

更多相关:

  • 滑块式验证码用户通过拖动滑块行为来完成校验,支持PC端及移动端。可以将用户拖动行为的时间、精度,滑动轨迹等信息到服务器,然后进行后台算法验证。特别介绍Blazor 版本的滑块验证码 传送门在线演示效果图快速开始组件依赖 font-awesomeCSS将引入样式表的 标签复制并粘贴到 中,并放在所有其他样式表之前。JS将引入脚本的 用...

  • Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架。Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架。它由 Kotlin 团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供出色的体验和运行时性能。import io.kto...

  • l VDI (Virtual Desktop Infrastructure)VDI构架采用的“集中存储、集中运算”构架,所有的桌面以虚拟机的方式运行在服务器硬件的虚拟化层上,桌面以图像传输的方式发送到客户端。l IDV (Intelligent Desktop Virtualization) 由于VDI方案对服务器资源、网络带宽要求比...

  • 受昨晚闰秒问题影响,今天内网和线上的ATS服务器都出现了CPU负载增高的问题,参见下面的截图 下面是tsar监控到负载异常记录,从今天(20150701)早上8:05分开始: 我们内网和线上的服务器Linux kernel内核版本都是 经过实践摸索,发现如下规律: 1.如果已经开启ntpd,如果昨晚没有关闭n...

  • 置顶声明:下面的内容来自于赵永明的ATS博客, 本文是在他的指导和自身实践基础上整理而成.这里对豪哥的无私热心帮助表示无限感激! 一、概述 1.压力测试的定义 很多情况下,大家都希望在服务器上线前、业务上线前,对业务的支撑能力做一个测试,希望知道自己的改动是不是在进步,是不是能够比较平稳的抗住预期的流量压力,等等,总结下来压力测试...

  • 我的博客上已经有很多这样的ats安装实录了,这次的笔记有些不一样,因为它是ATS目前最新的LTS版本6.2.1的安装,写出来更多的是整理自己的思路,因为很多东西搞过不整理,过一段时间就完全忘记掉了。 安装环境: 在rMBP 15.4上上面安装了VMware Fushion 专业版8.5.1,操作系统是MacOS Sierra 10...

  • 2011年我曾有机会精心研究了ATS Cache Module部分的大部分源码,也绘制了一些蹩脚的图片,但是对比专家和大牛的作品还相去甚远,下面的图片摘自Fall Summit 2014中的ATS committer Alan M. Carroll的ppt,仅作研读ATS源码时作参考和对照,更是对高手极致境界的尊崇和反思。...

  • 转载自https://blog.zymlinux.net/index.php/archives/129 首先申明本人是个实实在在的菜鸟,现在也只是搭建起来ats玩玩简单的,写本文只是为了给完全的小白一个参考而已。 本人刚开始接触ats的时候,从ats安装到配置也遇到了很多基本的问题,在查阅资料解决不了的时候基本都是豪哥耐心...

  • 转载自 https://blog.zymlinux.net/index.php/archives/540 ATS插件开发需要提前了解ATS的插件的一些设计思想,以及系统提供的一些不同方向。我们将会介绍ATS的基础开发知识,以利于后续的插件开发课程讲解。 ATS的SDK文档,是了解ATS的核心设计、接口设计的很重要资料,甚至是老...