catfoursi 2017-12-11
1. 在使用express 后系统的吞吐量降低非常多,这个问题主要是要从express 上去解决, 比较明显的一个问题 是需要设置 process.env.NODE_ENV="production"; 这时候express 会启动很多性能优化项比较明显的提升性能
2.发布node 应用的时候如果不适用集群,性能会比较差,因为node是单进程应用,所以经常我们会看到服务器上的单个cpu负载很高,无法合理利用cpu 这时候要启用多进程的方式 使用 node的cluster模块充分利用cpu性能
3.pm2 的应用,有两种办法启动集群,一是使用culster ,我们推荐尽量使用forever 或者pm2 对集群进行管理,这样的情况下node 在生产运行中不会宕机
4. 如果在docker 中运行pm2 需要把pm2设置为前台进程,不如docker 监控进程结束以后就会自动停止
5. 我们在部署node项目的时候进行了压力测试,当时单独通过ip地址测试某一台机器的时候并发量在1500左右,性能还算ok ,但是只要是在集群环境中测试性能就直线下降,降到100左右,通过排查原因是niginx 导致的,我们部署生产环境的时候加入niginx 做反向代理,niginx 做代理服务器,里边需要有最大连接数,worker ,链接市场等设置