qq_37681837
2018-10-31 10:30
采纳率: 100%
浏览 838
已采纳

为什么七台服务器可容纳并发量不如一台

现在情况是,我们做的是小程序项目,推送用户瞬时访问量可能会达到百万到千万,我们服务器资源申请相对来说较轻松,服务器均为虚拟机,配置很高,中间件使用tomcat,由nginx来转发,还有redis做缓存,数据库单台mysql,读写查询没有分离,想问下如果想承受这么大的并发,需要如何利用服务器资源?比如如何部署,或者最好能提供架构图

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • qq_37681837 2018-10-31 10:57
    已采纳

    是将我们的小程序链接发到公众号和网站的首页上面,然后用户点击这个链接进入到我们的小程序里,就是一个瞬时访问了过高导致的高并发的问题
    我想看看知道怎么配置这7太服务器,才能承受这样高的瞬时访问量

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-10-31 10:46

    这个你首先要做的是性能分析,看瓶颈在哪里,才能找到应对措施。好比去医院检查,首先要化验拍片,而不是一上来就问吃什么药,开什么处方。

    你说了你用了单台mysql,你推送用户是怎么个推送?是往数据库插表,还是往外部推送?这些用户都在线么?非在线的用户需要实时被推送么?总之我不认为你这样的问题能够通过笼统的描述得到有效的回答。

    根本都没有搞清楚状况给你的“架构图”,或者人家系统的照搬过来,有多少用处就可见一斑了。

    评论
    解决 无用
    打赏 举报
  • 玄尺 2018-10-31 11:48

    这种类型的问题都可以被归结为服务容量问题,当前资源能够容纳的用户访问数量。这个问题不好回答,但是有法可依:
    1、监控平台做到位,从网络流量、连接数、session数量、jvm内存、gc次数和停顿、接口调用量、接口响应时间等等
    2、做性能压测,在半夜的时候对服务器进行压测,看一下服务器究竟能够达到的并发数有多少
    做到这两点对于收集信息也就足够了,能够做到知己知彼,使用压测找到自己的瓶颈,看起来其他服务器不少,如果真的进行压测,就会发现或许里面存在一坨慢SQL,并发量一上去数据库就满了等问题。通过监控看用户访问习惯,然后给系统添加限流机制,保证大部分人可以正常看到。或者修改推送机制,将用户分100个组,每一次推送1个组,6个小时推送消息,这样就应该没问题了。
    还有一些优化说两点:
    1、数据库读写分离
    2、jvm参数调优,mysql调优、nginx调优,tomcat参数调优,这些都需要尝试,保证榨干服务器性能

    评论
    解决 无用
    打赏 举报
  • 奔跑的小鱼儿 2018-11-02 07:38

    建议先别自己钻研了时间上来不及吧,直接找成熟的优化分析服务,比如
    阿里的性能测试 PTS:https://www.aliyun.com/product/pts/?utm_content=se_1000101970
    精灵云测:http://www.fairytest.com/elftest/perfapplyone

    还有csdn的博客:
    高并发环境下服务器该如何优化:https://blog.csdn.net/belalds/article/details/81106866

    评论
    解决 无用
    打赏 举报
  • qq_27975603 2018-11-05 07:05

    多线程处理、多线程处理、多线程处理,重要的事说三遍
    尽量避免不必要的进程切换
    设定进程优先级,基础服务靠前排
    选择独享网络带宽、使用高带宽网络适配器提高网络i/O的速度
    通过mmap系统调用来建立内存和磁盘文件的关联
    做完这些没有改善你找我!

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题