rails 优化的路径 - tianlu1677/tianlu1677.github.io GitHub Wiki

会从三个方面来考虑:

加服务器 服务器的性能是: 4核 8G, 3台

添加负载均衡 添加主从服务器

数据库层面

  1. sql 索引,合理性的建立索引
  2. N+1的问题, sql 查询,减少join
  3. 单表过大,比如video_logs 过大
  4. select * 减少,尽量只select出需要的部分
  5. 读写分离

缓存方面

  1. 使用 rails的缓存机制。 缓存由默认的文件缓存,改为redis缓存,因为文件存储,不能在不同服务器之间共享,而且读取速度比较慢。
  2. 使用 jbuider 的缓存机制,缓存常用的api。

业务优化

  1. 文件上传时候,过大的时候导致占用 unicorn 的进程,一般是进程数的2倍。后来改为了直接上传到七牛
  2. unicorn的进程数开大,将过期的进程杀死重启
  3. 队列服务,计算成绩改在晚上

前端优化

  1. 单页面应用,一进来的时候加载css和js 过大,拆分之后,并行加载。去掉无用的js
  2. 将js 和 css 放在cdn 上
  3. 资源静态化,使用nginx 直接访问服务器上的文件,而不是通过ruby server上转发访问