热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FreeBSD和Linux的Nginx静态文件性能对比测试

最近准备换VPS,看到有VPS支持FreeBSD,就打算试试。想了解一下它和linux性能上的差异,就在网上找了些文章看了看。很多文章都提到FreeBSD更适合做前端的文件服务器,它的数据库性能和SMP性能不如linux。不过这些文章要么比较老,要么就是纯粹的口水仗,缺乏

最近准备换VPS,看到有VPS支持FreeBSD,就打算试试。想了解一下它和linux性能上的差异,就在网上找了些文章看了看。很多文章都提到FreeBSD更适合做前端的文件服务器,它的数据库性能和SMP性能不如linux。不过这些文章要么比较老,要么就是纯粹的口水仗,缺乏翔实的数据支撑。于是还是决定自己多装几台虚拟机测试一下好了。

测试环境:
宿主:
Core i3 530 @ 2.93GHz 双核4线程
16G RAM
Windows 7 64bit

虚拟机软件:
Virtualbox 4.1.2

虚拟机配置:
FreeBSD 7.2 i386 / FreeBSD 8.2 amd64 / Debian 5.0 i386 / CentOS 5.6 i386
双核全速
256M RAM
8GB硬盘
启用硬件虚拟化和IO APIC

各系统用最小安装,然后安装了编译工具链+apache(为了方便使用ab)+php+mysql。www.linuxidc.com之后关掉apache,安装nginx。
FreeBSD使用ports编译安装nginx,Debian分别使用了源自带的和编译的最新稳定版,CentOS使用编译的最新稳定版。FreeBSD的nginx应该默认使用了kqueue,linux默认使用了epoll。
nginx设置为1个worker,开启gzip

测试使用ApacheBench,测试文件为一个57244 bytes的jquery.js。
除CentOS外,ApacheBench都是2.3版,CentOS是2.0版。

ab -c 10 -n 100000 http://localhost/jquery.js


不多废话了,以下是测试结果:

FreeBSD 7.2 i386 + nginx 0.6.36

Concurrency Level:      10
Time taken for tests: 26.156 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 5747200000 bytes
HTML transferred: 5724400000 bytes
Requests per second: 3823.15 [#/sec] (mean)
Time per request: 2.616 [ms] (mean)
Time per request: 0.262 [ms] (mean, across all concurrent requests)
Transfer rate: 214574.53 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 4
Processing: 0 2 0.8 2 18
Waiting: 0 1 0.6 1 16
Total: 0 3 0.7 2 18


FreeBSD 8.2 amd64 + nginx 0.8.54

Concurrency Level:      10
Time taken for tests: 24.675 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 5747257344 bytes
HTML transferred: 5724457116 bytes
Requests per second: 4052.62 [#/sec] (mean)
Time per request: 2.468 [ms] (mean)
Time per request: 0.247 [ms] (mean, across all concurrent requests)
Transfer rate: 227455.77 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 8
Processing: 1 2 0.6 2 19
Waiting: 0 1 0.5 1 9
Total: 1 2 0.6 2 20


Debian 5.0 i386 + nginx 0.6.32

Concurrency Level:      10
Time taken for tests: 9.808 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 5747257472 bytes
HTML transferred: 5724457244 bytes
Requests per second: 10195.98 [#/sec] (mean)
Time per request: 0.981 [ms] (mean)
Time per request: 0.098 [ms] (mean, across all concurrent requests)
Transfer rate: 572254.98 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 10
Processing: 0 1 1.0 1 94
Waiting: 0 0 0.9 0 94
Total: 0 1 1.0 1 95


Debian 5.0 i386 + nginx 1.0.6

Concurrency Level:      10
Time taken for tests: 9.321 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 5747157471 bytes
HTML transferred: 5724457244 bytes
Requests per second: 10728.92 [#/sec] (mean)
Time per request: 0.932 [ms] (mean)
Time per request: 0.093 [ms] (mean, across all concurrent requests)
Transfer rate: 602156.28 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 7
Processing: 0 1 0.4 1 32
Waiting: 0 0 0.4 0 31
Total: 0 1 0.5 1 32


CentOS 5.6 i386 + nginx 1.0.6

Concurrency Level:      10
Time taken for tests: 9.996502 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 1452132704 bytes
HTML transferred: 1429432704 bytes
Requests per second: 10003.50 [#/sec] (mean)
Time per request: 1.000 [ms] (mean)
Time per request: 0.100 [ms] (mean, across all concurrent requests)
Transfer rate: 141859.42 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 3
Processing: 0 0 0.7 0 9
Waiting: 0 0 0.2 0 6
Total: 0 0 0.7 0 9

整理:


和之前看到的很多文章的观点正相反,在nginx静态文件性能的测试中,FreeBSD表现出了巨大的劣势。

由于这一结果非常奇怪,我又将虚拟机改为单核,并测试了lighttpd,结果依然是linux领先了一倍左右。究竟是什么原因造成如此巨大的差异呢?


推荐阅读
  • CentOS 7配置SSH远程访问及控制
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 如何将CentOS8转换为CentOSStream
    CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • buildah是用来修改和改造镜像的工具,和podman同源,很多参数相似!只是podman用来纯粹运行容器,一个纯粹建造容器!1.获取容器并赋名buildah--nametest ... [详细]
author-avatar
哚菟菟_336
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有