Web海量文件测试——IO性能成瓶颈
构架在千万级的文件系统上的Web系统,性能到底如何?
通过海量文件生成后,进行实际的Web高强度测试,可以看出问题所在。
测试前的准备:
在前面Blog中已经预告了。即采用海量文件生成系统(亿万级海量文件生成器),生成海量文件。
这里测试了2个磁盘系统,一个是Scsi的146G磁盘,一个是STAT300G,前者生成了近1900万文件,后者生成了3300万文件。
在生成文件时,其表现也是逐步降低,从开始的每秒300个文件生成,到最后80个文件左右,可以看出Windows的NTFS系统在海量小文件的应用中,成线性下降趋势(即文件越多,速度越慢)。
Web负载测试结果:
由于是生成的千万级的文件系统,所以为了性能和更方便测试,采用自主开发的测试软件Web LoadRunner,软件采用多线程,可并发高速访问。
下面是2个磁盘系统的测试表现:
图1:STAT300G磁盘10小时连续负载压力测试图
图2:SCSI46G磁盘10小时连续负载压力测试图
说明:趋势图中有几次特别高的访问,是属于网络链接问题,导致空链接。并发实际WEB服务器性能体现。
- Scsi磁盘系统,前10多分钟的表现特别,达到600次每秒下载链接,但10分后,逐渐线性下降,最终到120分钟后,平稳在100次每秒;根据分析,一方面原因可能是前面文件磁盘碎片少,访问效率较高,二方面由于磁盘缓存的作用,对前面的文件命中率较高。
- Stat磁盘系统,走来就比较平稳,但性能却很差,基本保持在80-100次/秒之间
- 从这可以看出,Scsi磁盘系统的性能,整体是优势于STAT很多的。
结论
从这次测试可以看出,Web服务器的海量访问(静态页面,非动态),磁盘的IO系统是性能瓶颈,解决好IO问题,是提高海量文件高强度、高效率的重点。
所以解决方案:
1,采用SAS(Scsi)+Raid高性能磁盘系统;
2,采用分布式文件系统,均衡IO的负载;
3,采用Web缓存技术,不过面对动辄几百、上千G的海量文件系统,缓存有点力不从心;
4,采用更先进的文件系统。不过在Win系统之上,只能是NTFS。
IOPS提升几十倍-英特尔X25-E 服务器级固态盘
现货:全球最快的Fusion-io SSD硬盘卡述评