Rails rails 直到网站挂掉才知道缓存多重要

goodboyRyan · 2014年08月07日 · 最后由 ruohanc 回复于 2014年08月17日 · 3492 次阅读

昨天遇到一个很棘手的问题,业余做的 www.zhongduwang.com 网站;每秒 10 次访问压力就网站就挂掉;桑心的不得了,然后去群里面问问 NB 的,有的告诉我去做分布式处理,有的说数据库要优化??这都不擅长,做分布式好像需要买新的服务器,这个成本问题很突出!pass 掉,我看到了 李华顺的博客,才知道优化可以做缓存来实现,而且非常非常高效。而且还找到了这个,第一步做了一个页面缓存,就网站不挂了,速度也好了很多,每秒承受压力达到 50 次。还有很多要做,此贴表表我的兴奋心情吧 https://ruby-china.org/topics/19389

每秒 10 次挂掉是你进程开的不够多,你多开几个就没事了

等你网站真的到访问量每秒 10 次了再加缓存也不急

根据你的机器的核数,设置对应的进程数;然后看看哪些请求的响应时间比较长,然后利用各种技术去优化即可

@goodboyRyan 每秒 10 次说的是动态请求吗?

#3 楼 @steve 是的,动态请求

#1 楼 @ywencn 亲,进程怎么加;这应该是 rails 框架自动加的吧?

cache 引入,过一段时间你会发现一堆问题,这个时候你会看到一篇文章说 cache 的各种问题,然后再优化回来。

#6 楼 @linjunhalida 有哪些问题呢?介绍几个

服务器用的几核的 CPU,具体型号?

#7 楼 @goodboyRyan

  • cache 过期机制没弄好,数据不是最新的
  • 多用户 cache 互相搞混了
  • 多种条件下 cache 爆炸,比如多语言,url 参数,登录/非登录
  • 页面太动态了做不到缓存
  • cache 嵌套
  • 要把动态的东西从 cache 里面挖出来分开放,不然做不了缓存

你的挂和 Cache 没关系,有 Cache 说不一定也会挂的

10 次/秒 就挂了,太不经玩了吧。

明显是推广帖嘛,挂什么挂 💀

#10 楼 @huacnlee 有点不太明白,加上缓存后确实大幅度提高访问效率,这是什么原因呢

原来是单核,那怪不得

#9 楼 @linjunhalida 我现在越来越感觉 你说的太有道理啦

#16 楼 @goodboyRyan 对程序员只有两种终极难题。。

  1. 取名字
  2. 让缓存失效
需要 登录 后方可回复, 如果你还没有账号请 注册新账号