对于这些同学提出的问题, 以下回答均为个人经验之谈, 可能会有更好的解决方案, 不作标准答案;
程序之路任重道远,望坚持学习,少年易老学难成,一寸光阴不可轻
Q2:目前web服务器压力很大,响应很慢,这种情况下如何定位问题并解决(比如数据库慢,或者并发高、CPU负载高等)?
有一句话叫"面试造核弹,上班拧螺丝"
首先你提出的优化问题,并不一定是你可以解决的,或者,问题本身就已经在前任的代码中根深蒂固了,不大刀阔斧的修改可能无法有效解决.
除非你是独立开发,并且时间真的很多,否则,我建议你还是打消重构的念头;
假如 你真的得到了这个优化的需求 从老板的口中得知 目前web服务器响应慢 我们要让他更快一点;
那么首先,你要搞清楚,这个项目多大,最大用户的量级是多少.本地化服务器配置如何,量级(数量)如何;
如果确实从硬件上已经完全达到标准,却经常让cpu处于满载状态,那么才从代码方面进行优化解决.
坑:
1,前端的锅,让前端自己背 有时候,从老板以及用户的角度看到反应慢 可能是前端的问题
2,采用不成熟的解决方案 此类问题最为棘手,比如Channels,当初选用websocket方案时,还不太成熟,当爆发问题的时候,版本迭代太快,现更新写法出入很大,无法把功能全部重构,只能另辟蹊径进行解决
3.数据库的优化,是项目前期考虑的,除非真的决定项目重做了 web框架是帮助你跟数据库进行交互的,不必关系这点.所以,数据库的设计才是此类优化的根本,数据的优化,找找资料,有很多.
4.并发问题,乐观锁,悲观锁,以及数据库的事务处理就可以解决.请求过多导致堆栈的情况,有可能是你的服务器没有做负载均衡,负载均衡的前提是要有同时多台工作的服务器..以及一台轻服务做调度.
网友评论