rails 优化的路径 - tianlu1677/tianlu1677.github.io GitHub Wiki
会从三个方面来考虑:
加服务器 服务器的性能是: 4核 8G, 3台
添加负载均衡 添加主从服务器
数据库层面
- sql 索引,合理性的建立索引
- N+1的问题, sql 查询,减少join
- 单表过大,比如video_logs 过大
- select * 减少,尽量只select出需要的部分
- 读写分离
缓存方面
- 使用 rails的缓存机制。 缓存由默认的文件缓存,改为redis缓存,因为文件存储,不能在不同服务器之间共享,而且读取速度比较慢。
- 使用 jbuider 的缓存机制,缓存常用的api。
业务优化
- 文件上传时候,过大的时候导致占用 unicorn 的进程,一般是进程数的2倍。后来改为了直接上传到七牛
- unicorn的进程数开大,将过期的进程杀死重启
- 队列服务,计算成绩改在晚上
前端优化
- 单页面应用,一进来的时候加载css和js 过大,拆分之后,并行加载。去掉无用的js
- 将js 和 css 放在cdn 上
- 资源静态化,使用nginx 直接访问服务器上的文件,而不是通过ruby server上转发访问