背景:
我有一个django应用程序,它可以在低负载下运行并且响应很好,但是在100个用户/秒的高负载下,它消耗100%的CPU然后由于缺乏CPU而减慢.
问题:
>分析应用程序给我时间功能.
>这个时间在高负荷时增加.
>消耗的时间可能是由于复杂的计算或等待CPU.
那么,如何找到一段代码消耗的CPU周期?
因为,减少CPU消耗会增加响应时间.
>我可能编写了非常高效的代码,需要增加更多的CPU能力
要么
>我可能有一些愚蠢的代码占用CPU并导致减速?
任何帮助表示赞赏!
更新:
>我使用Jmeter来配置我的webapp,它给了我2个请求/秒的吞吐量. [100位用户]
>我在100次请求时获得36秒的平均时间,在1次请求时获得1.25秒的平均时间.
更多信息
>配置Nginx Uwsgi和4名工作人员
>未使用数据库,使用REST API的响应
> 1日命中,REST API的响应被缓存,因此没有什么区别.
>使用ujson进行json解析.
好奇知道:
> Python-Django被许多大型网站用于许多大型网站,然后必须有一些高端的Debug / Memory-CPU分析工具.
>我发现的所有内容都是用于执行性能分析的随意代码片段.