QPS对比

使用apache bench工具对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100共100万次Http请求的基准测试中,QPS对比如下:

软件 QPS 软件版本
Nginx 164489.92 nginx/1.4.6 (Ubuntu)
Golang 166838.68 go version go1.5.2 linux/amd64
PHP7+Swoole 287104.12 swoole-1.7.22-alpha
Nginx-1.9.9 245058.70 nginx/1.9.9

注:Nginx-1.9.9的测试中,已关闭access_log,启用open_file_cache缓存静态文件到内存

  • 更详细的测试细节
  • 历史测试数据:Nginx/Golang/Swoole/Node.js的性能对比

测试环境

  • CPU:Intel® Core™ i5-4590 CPU @ 3.30GHz × 4
  • 内存:16G
  • 磁盘:128G SSD
  • 操作系统:Ubuntu14.04 (Linux 3.16.0-55-generic)

压测工具

ab -c 100 -n 1000000 -k http://127.0.0.1:8080/

VHOST配置

server {listen 80 default_server;root /data/webroot;index index.html;
}

测试页面

<h1>Hello World!</h1>

进程数量

Nginx开启了4个Worker进程

htf@htf-All-Series:~/soft/php-7.0.0$ ps aux|grep nginx
root      1221  0.0  0.0  86300  3304 ?        Ss   12月07   0:00 nginx: master process /usr/sbin/nginx
www-data  1222  0.0  0.0  87316  5440 ?        S    12月07   0:44 nginx: worker process
www-data  1223  0.0  0.0  87184  5388 ?        S    12月07   0:36 nginx: worker process
www-data  1224  0.0  0.0  87000  5520 ?        S    12月07   0:40 nginx: worker process
www-data  1225  0.0  0.0  87524  5516 ?        S    12月07   0:45 nginx: worker process

Golang

测试代码

package mainimport ("log""net/http""runtime"
)func main() {runtime.GOMAXPROCS(runtime.NumCPU() - 1)http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {w.Header().Add("Last-Modified", "Thu, 18 Jun 2015 10:24:27 GMT")w.Header().Add("Accept-Ranges", "bytes")w.Header().Add("E-Tag", "55829c5b-17")w.Header().Add("Server", "golang-http-server")w.Write([]byte("<h1>\nHello world!\n</h1>\n"))})log.Printf("Go http Server listen on :8080")log.Fatal(http.ListenAndServe(":8080", nil))
}

PHP7+Swoole

PHP7已启用OpCache加速器。

PHP版本

htf@htf-All-Series:~/soft/php-7.0.0$ php -v
PHP 7.0.0 (cli) (built: Dec 10 2015 14:36:26) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologieswith Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

测试代码

$http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);$http->set(['worker_num' => 4,
]);$http->on('request', function ($request, swoole_http_response $response) {$response->header('Last-Modified', 'Thu, 18 Jun 2015 10:24:27 GMT');$response->header('E-Tag', '55829c5b-17');$response->header('Accept-Ranges', 'bytes');    $response->end("<h1>\nHello Swoole.\n</h1>");
});$http->start();

来源:https://wiki.swoole.com/wiki/page/508.html

PHP7+Swoole/Nginx/Golang性能对比相关推荐

  1. nginx php7提速,nginx+php7-fpm 性能提升几倍跟踪实践结果并优化

    nginx+php7-fpm 性能提升几倍跟踪实践结果并优化 nginx+php7-fpm 性能提升几倍,跟踪实践结果并优化 历史ubuntu服务器使用的apache+php5,现在使用nginux+ ...

  2. Netflix Zuul与Nginx的性能对比

    2019独角兽企业重金招聘Python工程师标准>>> 这是一篇翻译,关于大家经常质疑的一个问题:API网关Zuul的性能. 原文:NETFLIX ZUUL VS NGINX PER ...

  3. 【问底】徐汉彬:PHP7和HHVM的性能之争

    本文来源于:  http://www.csdn.net/article/2014-12-25/2823234 [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升 ...

  4. 【转载】徐汉彬:PHP7和HHVM的性能之争

    摘要:近日,PHP7和HHVM的性能之争成为了一个讨论热点,但毫无疑问,它们都在提升PHP执行性能方面取得了突破性的进展.本期<问底>,徐汉彬将为大家科普和介绍它们的性能之争. [导读]徐 ...

  5. php7.0和5.6哪个好,PHP7.0与PHP5.6下Laravel博客的应用性能对比介绍

    PHP7.0与PHP5.6下Laravel博客的应用性能对比介绍 发布时间:2020-04-24 09:49:17 来源:亿速云 阅读:131 作者:小新 这篇文章主要为大家详细介绍了PHP7.0与P ...

  6. nginx与apache详细性能对比

    之前一直研究nginx的源代码,最近有时间也做了下nginx与apache的性能对比,希望能够够对大家有所帮助! 转载请注明:http://blog.csdn.net/lengzijian/artic ...

  7. Golang byte 拼接方法性能对比

    Golang byte 拼接方法性能对比 最近项目上遇到需要将[]Byte进行拼接的需求,对[]Byte拼接的各种方法进行了对比,测试代码如下: package main import (" ...

  8. python爬虫和golang爬虫性能对比_Scrapy VS Golang 爬虫对比(修正)

    前言 之前写了一篇scrapy和golang爬虫性能对比,引起了很大的争议(就是被各位大佬喷的很惨的意思).其中,很多人提了数据库读写的问题,看到大家的评论后不久我又测了一下,把写数据库的那部分代码注 ...

  9. golang连接postgresql too many client_MySQL和PostgreSQL压测性能对比

    阅读使人充实,讨论使人敏捷,写作使人精确. >>> 压测业务场景文章属于互联网社区动态类场景核心功能压测案例.至于题目涉及的MySQL和PostgreSQL之间的关系,主要为业务选型 ...

最新文章

  1. Excel百万数据导入oracle,excel表数据导入oracle的方法!(超级有用)
  2. 深度学习中各激活函数的优缺点
  3. java竖向菜单,垂直滑动菜单
  4. 织梦文章添加字段填栏目id,内容页调用字段里的栏目文章
  5. foxmail占cpu 100%解决办法
  6. 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~...
  7. You Like Cake(背包容量过于大的折半搜索法)
  8. everything-everything使用技巧,过滤文件语法
  9. 如何使用EditPlus3编写汇编语言
  10. linux卸载设备驱动命令,Linux设备驱动程序加载/卸载方法 insmod和modprobe命令
  11. Docker-----Cgroup资源配置详细教程,图文并茂
  12. 以太坊源码阅读【Transaction(交易模块)】
  13. icp许可证申请:一文读懂icp许可办理流程、费用
  14. 2019-4-29-win10-uwp-使用-Border-布局
  15. 现在网站主流排版方式
  16. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结
  17. DDR4的特性与电气参数
  18. android studio zbar,Zbar and Zxing in android studio
  19. 拓嘉启远:关于拼多多搜索溢价,你了解多少
  20. android 六棱形分析图,[转载]菱形整理形态、三角形整理形态图解及分析

热门文章

  1. SQL Server 2008 复习(二)
  2. java jpanel调用构造函数的时候就开始执行repaint_在Java Swing组件中劫持`repaint()`调用...
  3. 01_初识Matplotlib、Figure的组成、绘图函数的输入类型、第一个例子(学习笔记)
  4. nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
  5. jquery.query-*.js 操作url
  6. Linux服务器编程之:chown()函数,chown命令
  7. odps结合mysql统计
  8. Python基础概念_6_模块
  9. 在 linux 下使用 CMake 构建应用程序
  10. SSD安装及训练自己的数据集