服务器性能测试二三事
新到手的机器,从运维手里交接必须要进行一些基本功能的测试。
对于我接手的小文件系统来说,最关键的就是磁盘和网络了。
这篇文章带了下fio和iperf但是没有详细介绍。
下面对fio稍微梳理一下
time out这个问题是我刚实习的时候所有的业务组就都存在并且反应的。但是最近这段时间才定位了错误,固然这中间弄了小文件系统等等,但主要还是本人能力不太够导致的。
由于定位的时间拖得太长,导致大家对twemproxy-redis都有一种不稳定,不放心的看法,然而今天要为它正名:
1 首先分析测试环境。
在测试组和同步业务的帮助下,我们拉来了device的数据进行测试(使用了ntpdate对所有机器进行了时间同步)
twemproxy的性能应该很好,毕竟是twitter在使用的,稳定性应该很高。
然而测试组的同学对其二倍扩容以后,基本没提升QPS,甚至QPS还降低了
我和我的小伙伴们一直以为是客户端或者服务端代码的问题,各种抓包,LOG分析,查不出原因。写了C,JAVA等多个客户端版本。
后面发现原来是测试组的布线坑爹了。
关于之前测试环境redis集群极限qps提升不上去的问题,认定是由于之前4台测试环境部署的宿主机,走的交换机,交换机网络达到瓶颈导致的。
FastDFS组合nginx的http_image_filter_module建立的图片服务器,实现动态缩略图
用fastdfs存储图片,然后用nginx的图片处理模块http_image_filter_module处理图片,根据输入的地址中的图片大小动态生成缩略图
原图http://192.168.8.127:801/group1/ ... WAAL8RoEHXq8410.jpg
动态生成的缩略图地址
http://192.168.8.127:801/group1/ ... HXq8410,222x222.jpg
我的学习历程是先接触的nosql而后接触的mysql,所以这里记下的只是初学的一些东西,没什么见地。
查看有没有安装过:
1 | yum list installed mysql* |
mysqldump -u\(USER -p\)PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql
fastdfs的后台监控程序里有一段关于字符串解析的操作,使用snprintf进行字符串连接后无论如何解析的字串都是错误的
snprintf(buf,1024,"%s%s",buf);
问题出在这一句,因为sprintf系列比起strcat方便很多而且更加灵活,所以我一直使用sprintf来进行字符串的连接操作,没想到用snprintf就跪了。
后来用sprintf就没问题了
看了一下man
本来觉得linux下性能分析只是一系列工具,也没什么难点。后来发现几个工具中间,各有优缺点。
稍微介绍下吧。
gprof:
这个工具比较轻量级,能看到所有的函数调用链,和函数运行时间,原生是只支持单线程监控的,通过文中的方法,可以支持多线程
记录会比较零碎,是一些学习经验吧
1.之前一直对fastdfs的nginx模块不够了解,稍微思考调研了下,解决了以前的疑惑
1 | location /group1/M00{ |
然后浏览器就可以根据ip/M00/00/00/aaaaaaaaaaaaaaa.jpg类似这样的连接去获取到fastdfs上的文件了
这个配置文件一直是知其然不知其所以然
#FastDFS源码解析(1)--------源码目录介绍
FastDFS是余庆(前阿里巴巴架构师,现易到用车架构师)开发的一个开源的轻量级分布式文件系统,对于小文件的存储性能特别高,适合以文件为载体的在线服务。应用场景不再赘述,网上相关资料不少。然而在很多家大公司明里暗里都使用了FastDFS以后,居然对他代码的分析文章这么少。本人才疏学浅,且尝试着分析一翻,如果分析的不好,诚心求教。