`
100Continue
  • 浏览: 159715 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Nginx/Tengine buffer request data所存在的性能风险

阅读更多

博文缘由:

在上一篇博文:TCP Delay引起的性能问题 —— tengine request no buffering性能测试回顾 中提到“当访问压力较大且post数据超过buffer大小,那么nginx/tengine将会有大量的io操作,从而存在性能风险”。所谓空口无凭,下面通过展现性能测试数据来说明该风险。

 

性能测试设计及数据展现:

为了节约篇幅,在此取较容易体现性能差异的性能场景进行分析,如果想了解其他场景性能,欢迎联系我;

性能场景:

1. 通过POST上传100K大小的文件;

2. 设置系统Sync间隔时间为1s;

3. 默认Buffer状态和no buffer 8k、64k、640k对比;

4. 并发连接数分别为30、150、300、1500;

 

部署Nginx服务器的性能:

软件情况描述:

1、Red Hat Enterprise Linux Server release 6.1 (Santiago)

2、gcc version 4.4.6 20110731 (Red Hat 4.4.6-3)

3、Linux SandyBridge 2.6.32-131.21.1.tb93_v2.el6.x86_64

硬件情况描述:

1、cpu cores       : 8

2、Genuine Intel(R) CPU  @ 2.70GHz

3、内存总数32791984kB

4、万兆网卡

 

性能测试结果分析:

分析说明:

从以下数据图表可以看出:

1. 在QPS与服务器请求平均处理时间上看,默认Buffering的场景与no buffering 8k、64k、640k的场景相差无几。

这是因为默认Buffering场景是在全部接收完Client上传数据之后再分多个大数据包往后传,网络传输率较高,瓶颈体现在io操作上;而no buffering的场景,是在从Client接收的数据达到buffer所设置的值之后就马上往后端传送,因此网络传输利用率较低,存在很多小包发送的问题,从而影响性能。

2. 从服务器性能负载的角度看,默认Buffering的场景非常消耗机器资源,Load超过2倍CPU核数,iowait百分比最高达到28%;而no buffering的场景则没有占用太多机器资源;

 

数据展现: 

图1 QPS变化曲线图

 

图2 服务器请求平均处理时间

 

图3 CPU IOWait百分比变化曲线图

 

图4 Load每分钟统计结果变化曲线



图5 网络输入数据变化曲线图

 



图6 网络输出数据变化曲线图

 


 

 转发请备注转自:100continue.iteye.com

  

  • 大小: 47.7 KB
  • 大小: 46.5 KB
  • 大小: 84 KB
  • 大小: 93.9 KB
  • 大小: 99.7 KB
  • 大小: 99.4 KB
分享到:
评论

相关推荐

    最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月

    最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月自己更新使用,更新的jar包解决了tomcat7下attribute报错的问题,理论Tomcat8以上版本可用,请自己测试。 asm-5.1.jar kryo-4.0.0.jar kryo-...

    nginx-tengine-3.0.0

    Tengine的性能和稳定性已经在大型的网站如淘宝,天猫,优酷,全球速卖通,Lazada,阿里云等得到了很好的检验。Tengine将向通用API网关方向持续演进和发展,在HTTP应用流量入口网关的基础上,逐步支持4/7层TLS,TCP,...

    Nginx通过/etc/init.d/nginx方式启停【nginx配置文件】

    vi /etc/init.d/nginx 修改nginx后 chmod +x /etc/init.d/nginx /sbin/chkconfig nginx on sudo /sbin/chkconfig --list nginx /etc/init.d/nginx start

    淘宝Tengine 易运维的高性能Nginx服务器

    Tengine是阿里巴巴集团旗下的淘宝网针对Nginx的一些局限性进行改进后所开发的一款高性能Web服务器。Nginx自推出以来,以其出色的性能、较低的资源消耗和强大的并发能力,在全球范围内迅速获得了广泛的应用,成为了仅...

    tengine2.1.2

    Tengine是淘宝团队基于Nginx开发的一款高性能的Web服务器/反向代理服务器,它包含了Nginx的所有功能,并在性能、稳定性和功能扩展性上进行了优化。标题提到的"Tengine2.1.2"是该软件的一个特定版本,这个版本包含了...

    重启或杀掉Nginx进程后丢失nginx.pid的解决办法

    Restarting nginx daemon: nginxcat: /usr/local/nginx/logs/nginx.pid: No such file or directorykill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]nginx not ...

    linux/centos 安装配置nginx 详细文档

    include /data/nginx/conf/*.conf; # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /...

    nginx(tengine)启动文件

    nginx(tengine)启动文件,tengine编译安装后,需要做etc/init.d下加入系统服务,下载后,可能因为编码问题需要手动建立nginx文件,然后通过vi或者vim复制过去,然后修改里边nginx的安装路径

    Nginx常见错误及解决方法.doc

    Nginx 中的 400 Bad Request 错误是由于客户端请求头部缓冲区太小所致。解决方法是调整 nginx.conf 文件中的 client_header_buffer_size 和 large_client_header_buffers 设置: client_header_buffer_size 16k; ...

    nginx-1.10.2_海康;javascript_nginx/1.10.2_nginx转发海康_

    标签"nginx/1.10.2"指的是Nginx的特定版本1.10.2,这意味着在解决任何问题或进行配置时,应考虑该版本可能存在的已知限制和特性。确保查阅官方文档或社区论坛获取针对该版本的特定信息。 综上所述,这个主题涵盖了...

    LNMP(Nginx/MySQL/PHP)

    LNMP(Nginx/MySQL/PHP) LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化 作为...

    nginx1.4.0漏洞验证

    测试用到的python文件和linux版本的nginx1.4.0源码

    nginx 的安装

    ### Nginx与Tengine的安装详解 #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款IMAP/POP3/...无论是对于个人开发者还是企业级应用,掌握Nginx/Tengine的安装和配置都是非常有价值的技能。

    docker里面nginx目录挂载启动失败

    首先,当我们运行Docker容器时,通常会用`-v`参数来挂载宿主机的目录到容器内,以便于我们能直接在宿主机上编辑配置文件或查看日志,如`/Docker/nginx/conf/nginx.conf`挂载到`/etc/nginx/nginx.conf`,`/Docker/...

    nginx安装与使用.zip

    nginx安装与使用 http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/ Nginx开发从入门到精通 http://tengine.taobao.org/book/index.html nginx官网上下载相应的安装包,--- 直接解压就...

    nginx 升级为最新版 1.12.0

    这通常包括`/etc/nginx/nginx.conf`和`/etc/nginx/sites-enabled/*`目录下的所有文件。 2. **停止旧版本Nginx服务**: 使用以下命令安全地停止正在运行的Nginx服务: ``` sudo systemctl stop nginx 或者 sudo ...

    NGINX最新版本升级漏洞修复

    mv -f /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx$(date +%Y%m%d%H%M%S) #把新的可执行文件nginx复制到nginx目录对应位置 cp -R -f /opt/upgrade_nginx/nginx /usr/local/nginx/sbin/ cp -R -f /opt...

    开机自起nginx

    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #ExecReload=/usr/local/nginx/sbin/nginx -s ...

    nginx交叉编译与部署.pdf

    CONFIG_DIR=/data/lis/workspace/nginx/nginx/conf LOG_DIR=/data/lis/workspace/nginx/nginx/log TEMP_DIR=/data/lis/workspace/nginx/nginx/tmp HOME_NGINX=/data/lis/workspace/nginx/nginx-1.6.2 ./configure -...

    Nginx Docker安装配置

    $ docker cp lw-nginx:/etc/nginx/nginx.conf /colorfulfrog/nginx/config –-将容器中的nginx.conf拷贝到宿主目录下 $ docker cp lw-nginx:/usr/share/nginx/html /colorfulfrog/nginx –-将容器中的html目录内容...

Global site tag (gtag.js) - Google Analytics