sdfouhdso888 发表于 2018-11-10 14:29:08

centos 7上nginx+uwsgi 性能调优

  上一章将nginx +uwsgi搭建起来,将keystone挂载后面。但是发现一个问题,如果http请求达到一定量后,nginx直接返回502。这让需要部署大规模openstack集群的我很是头疼,比较了一下请求的处理能力,keystone 原生的api 接口是可以承受一定量的大规模并发请求的。这就让我思考一个问题,为什么nginx作为web,性能却没有keystone api 自身的承载能力好呢。于是我做了压测,查了一下原因。
  服务器配置:24 cpu+200G mem+1T disk
  系统:centos 7.1
  部署:kesytone nginx+uwsgi
  先将keystone部署在nginx+uwsgi 后端
  在同机房的另外一台服务器上发起压测:
ab -r -n 100000 -c 100 -H "User-Agent: python-keystoneclient" -H "Accept: application/json" -H "X-Auth-Token: 65e194"http://keystonehost:35357/v2.0/  发现http处理正常。然后改一下并发数到200.发现大概50%的返回为502。
  然后我将keystone-api 却换成keystone 自身的服务openstack-keystone。再次用200并发压测:发现处理正常,没有返回502的。
ab -r -n 100000 -c 200 -H "User-Agent: python-keystoneclient" -H "Accept: application/json" -H "X-Auth-Token: 65e194"http://keystonehost:35357/v2.0/  大概知道问题应该在nginx和uwsgi上,限制了并发的处理数。
  查了nginx uwsgi官方的资料。原来调优有好几个参数,并且系统本身也需要做一些调优
  1.首先先看一下nginx.conf里影响处理的配置。
user nginx;  
worker_processesxx;#可以设置成cpu个数,体验较佳的性能
  

  
error_log/var/log/nginx/error.log;
  
pid      /var/run/nginx.pid;
  

  

  
worker_rlimit_nofile 65535; # 最大打开文件数,这个值需要
页: [1]
查看完整版本: centos 7上nginx+uwsgi 性能调优