博文缘由:
在上一篇博文: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
相关推荐
最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月自己更新使用,更新的jar包解决了tomcat7下attribute报错的问题,理论Tomcat8以上版本可用,请自己测试。 asm-5.1.jar kryo-4.0.0.jar kryo-...
Tengine的性能和稳定性已经在大型的网站如淘宝,天猫,优酷,全球速卖通,Lazada,阿里云等得到了很好的检验。Tengine将向通用API网关方向持续演进和发展,在HTTP应用流量入口网关的基础上,逐步支持4/7层TLS,TCP,...
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的一些局限性进行改进后所开发的一款高性能Web服务器。Nginx自推出以来,以其出色的性能、较低的资源消耗和强大的并发能力,在全球范围内迅速获得了广泛的应用,成为了仅...
2. **配置管理**:配置文件通常位于`/etc/nginx/nginx.conf`,可以根据需求进行修改。 3. **日志查看**:日志文件一般在`/var/log/nginx`目录下,可用于监控和调试。 4. **更新升级**:如果需要升级到新版本,可以...
Tengine是淘宝团队基于Nginx开发的一款高性能的Web服务器/反向代理服务器,它包含了Nginx的所有功能,并在性能、稳定性和功能扩展性上进行了优化。标题提到的"Tengine2.1.2"是该软件的一个特定版本,这个版本包含了...
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 ...
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)启动文件,tengine编译安装后,需要做etc/init.d下加入系统服务,下载后,可能因为编码问题需要手动建立nginx文件,然后通过vi或者vim复制过去,然后修改里边nginx的安装路径
Nginx 中的 400 Bad Request 错误是由于客户端请求头部缓冲区太小所致。解决方法是调整 nginx.conf 文件中的 client_header_buffer_size 和 large_client_header_buffers 设置: client_header_buffer_size 16k; ...
标签"nginx/1.10.2"指的是Nginx的特定版本1.10.2,这意味着在解决任何问题或进行配置时,应考虑该版本可能存在的已知限制和特性。确保查阅官方文档或社区论坛获取针对该版本的特定信息。 综上所述,这个主题涵盖了...
测试用到的python文件和linux版本的nginx1.4.0源码
LNMP(Nginx/MySQL/PHP) LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化 作为...
### Nginx与Tengine的安装详解 #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款IMAP/POP3/...无论是对于个人开发者还是企业级应用,掌握Nginx/Tengine的安装和配置都是非常有价值的技能。
首先,当我们运行Docker容器时,通常会用`-v`参数来挂载宿主机的目录到容器内,以便于我们能直接在宿主机上编辑配置文件或查看日志,如`/Docker/nginx/conf/nginx.conf`挂载到`/etc/nginx/nginx.conf`,`/Docker/...
nginx安装与使用 http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/ Nginx开发从入门到精通 http://tengine.taobao.org/book/index.html nginx官网上下载相应的安装包,--- 直接解压就...
这通常包括`/etc/nginx/nginx.conf`和`/etc/nginx/sites-enabled/*`目录下的所有文件。 2. **停止旧版本Nginx服务**: 使用以下命令安全地停止正在运行的Nginx服务: ``` sudo systemctl stop nginx 或者 sudo ...
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...
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 ...
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 -...