系统和各中间件配置优化。

1. 简谈

     之前长时间在外包开发岗位,很少接触高并发环境下中间件的配置优化,导致独立进入公司,成为高级开发兼顾一部分架构职责的时候有些摸不着头脑,最近搜集了一下linux系统、各类中间件的配置优化,虽然并不是太严谨,但聊胜于无。

2.优化配置

     

 1. linux句柄数
    
     句柄数这东西我也说不清楚,一个连接一个句柄还是什么来着,详细的百度吧,总之默认1024,平常测试没问题 

     但高并发下明显不够用,需要酌情设置。

     不够情况下会有too many open flies 错误

     查看句柄数:

         ulimit -a   列表中 open files 为最大句柄数

     修改句柄数 
        
         ulimit -u 数量  

   一般线上根据机器来,linux最大6万多来着,好像是65535来着,windows的数量也差不多,只比linux低一点。
   
   买的云服务器,比如阿里云,linux系统的最大句柄数已经开到最大了,所以一般不用调,可以用命令看一下。
         
         
         

 

  2. nginx最大连接数
     
     对应的nginx.conf配置文件偏上放的一个参数
     
         events {
            worker_connections  1024;
         }

     默认都是1024,改掉重启就好,一般也要改到6万多吧,看具体情况。

 

  3. tomcat最大并发数
     
     springboot配置文件中增加

       server:
          tomcat:
            max-threads: 

     ssm直接在tomact的配置文件中配置端口的同一行中加上

       maxThreads = 

     具体调多大,看服务器配置了,我自己电脑调到一万,撑死了也才300多,配置太低了

     其他还有超时时间,最大等待并发数等等,具体都可以参考服务配置填写

     现在undertow据说性能比tomcat高三分之一,我测过的确高不少,替换掉也简单,但配置应该大同小异

     tomcat示例:
            tomcat:
              uri-encoding: UTF-8
              max-threads: 1000
              accept-count: 500
              max-connections: 2000
              min-spare-threads: 300
      undertow示例:
              undertow:
                worker-threads: 256
                io-threads: 8
                buffer-size: 1024
                direct-buffers: true

 

  4.  redis参数
      
     spring:
         redis:
            jedis:
              pool:
                max-active: 1024 #最大连接数
                max-idle: 200 #最大空闲连接数

      redis性能很高 这两个配置这样写 高性能服务器吞吐十万大概没什么问题

 

  5. mysql最大连接数
    
     在项目配置文件中加大mysql的连接数,而mysql本身用默认配置,高并发下就会报错,因为默认只有几百的连接数
     
        Error: Too many connections

     如果想避免 就要在数据库配置文件mysqld下加入

         max_connections = 2000        #最大连接数
         max_user_connections = 1000   #最大用户连接数
         wait_timeout = 1000           #超时时间

     这个配置也是要参考用户量和服务器配置的,改这么大,小公司一般够用了,不够再加。

3. 总结

     总的来说,所谓调优都是把最大连接数调节到合适数量,其他的等待连接数,超时时间等等参数都应该跟随最大连接数进行调节,具体多少,要看根据压力测试对系统和服务器进行测试得出的数据来判断了。

4. 事后测试

      最近又测试过一波,这里临时加上,undertow的配置似乎加不加无所谓,各项都自动优化的不错,顶多worker-threads加大点,当然还是看cpu的性能,否则加再大也没什么用。

       tomcat默认配置和我加上的优化配置差距明显,因为他默认150个最大并发数,实在是太小了,我用的我的示例配置,吞吐量明显提升,而且无异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值