我有一个Django应用程序,它可以在低负载下运行并且响应很好,但是在100个用户/秒的高负载下,它消耗100%的CPU然后由于缺乏CPU而减慢。
问题:
那么,如何找到一段代码所消耗的CPU周期呢?
由于降低CPU消耗会增加响应时间。
要么
更多信息
ujson
进行json解析。很想知道:
您可以尝试将测试配置为缓慢上升,缓慢上升,以便您可以看到CPU逐渐增加,然后在达到高CPU之前运行探查器。当CPU被最大化时尝试分析代码是没有意义的,因为此时一切都会很慢。实际上,您实际上只需要相对较轻的负载即可从分析器获取有用的数据。
此外,通过逐渐增加负载,您将能够更好地查看CPU是否逐渐增加(表明CPU瓶颈)或CPU是否突然跳跃(表明可能是另一类问题,一个不一定由更多的CPU解决)。
尝试使用类似恒定吞吐量计时器的功能来调整请求,这将阻止JMeter被带走并过度加载系统。
结帐New Relic进行一些非常好的分析,他们有特定于django的日志记录。