当你的网站突然变慢了,你怎么办?
- 先看监控,查看系统的资源消耗,CPU?IO?磁盘?
- 然后看日志,查看第一个出现慢请求的接口是哪个?
- 然后看依赖的服务,是第三方服务还是DB瓶颈,还是redis变慢,还是memcache变慢等等...
当出现慢请求的时候,这些似乎都成了套路,但是有了dogslow以后,你就可以通过查看dogslow的记录直接定位到问题了。
是不是很开心?
当然,凡事都是有利有弊的,dogslow通过开线程的方式来检测,众所周知python的GIL,这会在一定程度上影响性能,所以可以通过灰度几台机器开启dogslow来分析线上的慢请求,也可以通过开关来控制是否启用慢请求分析。
dogslow是Bitbucket出品的Django middleware,我clone到了Github上。