前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建Web SpeedTest网速测试工具

搭建Web SpeedTest网速测试工具

作者头像
胡齐
发布2019-10-15 23:17:55
3.4K0
发布2019-10-15 23:17:55
举报
文章被收录于专栏:运维猫运维猫

1、speedtest 简介

喝井不忘挖水人, speedtest 的作者不是排骨, 是下面这位.

speedtest 是由意大利的一位90后爱打游戏爱跳舞机的逗B码农 Federico Dossena (见下图) 发布的一个项目:https://github.com/adolfintel/speedtest

2、原理简介

speedtest 以 HTML 和 JavaScript 为主, 利用客户端的浏览器通过上传和下载垃圾数据来测试 HTTP 传输速度, 和大家常用的 speedtest.net 差不多.

speedtest 使用任意操作系统上的任意 Web 服务器作为服务端, 所以理论上它支持 Windows/MacOS/Linux/Unix 等系统, IIS/Nginx/Apache/lighttpd 等服务器.

任意浏览器作为客户端如 Chrome/Firefox/IE11/Edge/Safari/Opera?

speedtest 默认使用 PHP 作为服务端, 目前也有 node.js 版本, 也可以只用纯静态服务器.

本文所说的 speedtestOokla 公司的 speedtest.net相关测速 app 没有任何关系.

3、搭建speedtest

代码语言:javascript
复制
 [root@docker-01 ~]# yum install httpd php git -y
 [root@docker-01 ~]# git clone https://github.com/adolfintel/speedtest.git
 [root@docker-01 ~]# cd speedtest/
 [root@docker-01 speedtest]# cp -R backend/ example-singleServer-pretty.html *.js /var/www/html/
 [root@docker-01 html]# mv example-singleServer-pretty.html index.html
 [root@docker-01 html]# chown -R apache *
 [root@docker-01 html]# systemctl start httpd

访问:172.17.120.50就可以测速啦

4、安装数据库,导入数据,将测试的结果保存以便后续查询

代码语言:javascript
复制
 [root@docker-01 html]# cd /root/speedtest/
 [root@docker-01 speedtest]# cp -R results/ /var/www/html/
 [root@docker-01 speedtest]# cd /var/www/html/
 [root@docker-01 html]# chown -R apache *
 [root@docker-01 html]# cd /var/www/html/results/
 [root@docker-01 results]# yum install mariadb-server -y
 [root@docker-01 results]# systemctl start mariadb
 [root@docker-01 results]# mysql_secure_installation ##设置密码为:123456
 [root@docker-01 results]# mysql -uroot -p123456
 MariaDB [(none)]> create database speedtest; ##创建数据库
 MariaDB [(none)]> exit
 [root@docker-01 results]# vi telemetry_settings.php
      4$stats_password="admin"; //password to login to stats.php. Change this!!!
      5$enable_id_obfuscation=true; //if setto true, test IDs will be obfuscated to prevent users from guessing URLs of other tests
     11// Mysql settings
     12$MySql_username="root";
     13$MySql_password="123456";
     14$MySql_hostname="localhost";
     15$MySql_databasename="speedtest";
 [root@docker-01 results]# mysql -uroot -p speedtest < telemetry_mysql.sql
 [root@docker-01 results]# cd /var/www/html/
 [root@docker-01 html]# cp ~/speedtest/example-singleServer-full.html index.html

注:配置文件截图及测试结果

5、总结

5.1speedtest 测速的优点:

1.测试简单暴力. 浏览器就能测, 无需别装 app.

2.上行下行兼顾. 不用双向测试, 不像 iperf3 只能单向.

3.界面简洁明了. 直观且无广告不收费.

5.2speedtest 测速的缺点:

1.用户技能要求. 需要自己安装测速服务器, 希望本贴能解决这个问题.

2.性能瓶颈要求. 因为基于 Web 服务器和 JavaScript, 所以服务器和客户端性能不能太差. 测试 2.5/5/10 千兆可能力不从心.

3.测速协议片面. 基于 HTTP 协议测速, 有些片面. 不过95%的用户有90%的网络使用都是 HTTP. (纯瞎说的 哈~)

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、speedtest 简介
  • 2、原理简介
  • 3、搭建speedtest
  • 4、安装数据库,导入数据,将测试的结果保存以便后续查询
  • 5、总结
    • 5.1speedtest 测速的优点:
      • 5.2speedtest 测速的缺点:
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档