一次磁盘瓶径分析经验

一、项目简介:一个视频推广系统与多家网站合作,其它网站调用我方视频资源。每调用一次会在我方磁盘上写一条日志。日志文件是以分钟为单位生成。上线后每秒钟到2000个请求时出现性能问题。固在线下做压力测试寻找性能瓶径。

二、测试环境   
        1台客户端: windows2003   loadrunner
        1台服务器 : cpu 16核   mem 16G      php+nginx+mysql+memcache

三、测试策略:
       1个固定的url,带有各种参数,直接入日志。运行时使用无间隔不断加压,脚本如下:

Action()
{
//web_add_cookie("user=Kqcq056x1pddq7Ip6c6kd; DOMAIN=v.ifeng.com");
//web_add_cookie("PHPSESSID=dfea59a03919d6d01f47eaacf08c2; DOMAIN=v.ifeng.com");
web_url("page", 
"URL=http://192.168.xx.xx/page?guid=ff1edsb0ddb-79ff-45f3-af73-46247a8c88bd&user=vchanpin&refer=aHR0cDovL3dlaWJvLmNvbS94aWFveGlldG9uZ3h1ZS9wcm9maWxlP2xlZnRuYXY9MSZ3dnI9My42JmlzX3ZpZGVvPTE=&from=sinaweibo&AutoPlay=true&tm=446642", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=", 
"Mode=HTML", 
LAST);
return 0;
}

四、瓶径分析:

1,压力过程使用top查看服务器资源,其它值正常,唯独cpu的sy偏高,判断为系统本身进程影响性能,而非应用进程。在loadrunner中查看的响应时间波动也较大。
2,通过iostat -x  1查看, await 和avgqu-sz会隔2-3秒出现一次偏高。其它值正常。
3,通过iostat -p 1查看,哪个目录读写频繁,结果如下  cciss/c0d0p6  磁盘写入频繁。通过df 查看此盘挂载的是/tmp文件夹。进入后查看是很多sess开头的临时文件
      应该有几万个。可以判断正是由于生成的这些文件影响了性能。此文件是php生成的session文件,开发将过期时间设置成了2个小时,所以压力过程在不断生成这些文件时候消耗了大量时间,并发是文件体积大造成,而是由文件数太多造成。
4,后来把这些文件指向/dev/shm(内存),并设置过期时间10秒。性能一切正常。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章