首页 > 代码库 > NodeJS静态文件访问性能测试

NodeJS静态文件访问性能测试

受益于JavaScript语言优秀特点,使NodeJS开发服务端应用很方便,配合NPM官方提供的大量第三方组件,让NodeJS更加如虎添翼。最近,需要使用NodeJS做一个服务端HTML5的游戏服务器,应用实现包含两大部分:一部分做HTTP服务器为客户端发送html、image、javascript等游戏资源文件;另一部分使用了socket.io实时响应玩家的操作。技术实现并不困难,但要实现一个轻量、稳定、流畅的HTTP静态文件服务器,还是需要花些心思的。

本文笔者对现有一些HTTP服务器的实现方式做了调查,并整理了各方式的性能、稳定性测试报告,汇总如下:

标题:NodeJS静态文件访问性能测试

使用两台服务器:浪潮和联想,浪潮服务器非常普通;联想那台配置高点(双CPU,16G内存),用来并发模拟大量客户端请求;

两台服务器都安装了CentOS7发行版的Linux系统,模拟客户端使用Webbench工具;

测试命令:webbench -c XXX -t 15 http://localhost:8000/index.html(XXX为模拟的客户端数量;15为测试时长;index.html的内容只有一句话,另加载两个png图片)

技术分享

结论:

可以看到使用最常用的NodeJS文件加载方法readFile直接加载静态文件发送给客户端的稳定性在客户端请求数增加到5000时已经出现请求失败,服务器变得很不稳定;使用第三方组件filecache虽然稳定性还可以,但性能上表现不行;只有使用NodeJS原生方法createReadStream().pipe()在性能和稳定性上表现都较好。值得大家参考

NodeJS静态文件访问性能测试