我正在Webfaction中使用gunicorn(一个主人+4名工人)主持一个Django站点.我已经满足于4,因为过去我获得了很好的流量,而且"CPU核心*2 + 1"只会占用我的RAM.
在正常使用情况下,gunicorn工作者每个需要大约45 Mb或RAM,而我的页面加载时间不到一秒钟.现在,在无人看管几个小时之后,工作人员将分别从5到15 Mb的RAM中找到任何东西.如果我在那时访问该站点,则从服务器获取响应需要10秒以上.浏览2或3页后,工作人员恢复正常的内存使用状态,网站再次快速恢复.
根据这个答案(见第1点),gunicorn应该随时准备好该站点,在没有收到一段时间的请求后不需要"预热"期.这与我在至少十几个其他网站上使用此设置时所看到的一致:gunicorn就在那里,随时可以使用.
工人将内存消耗降低到如此低的水平是否正常?如何摆脱不活动后的长响应时间?
我有这个非常简单的if块:
if obj_type == "domain":
key = "domain"
elif obj_type == "db_user":
key = "username"
else:
key = "name"
Run Code Online (Sandbox Code Playgroud)
这些可以转换为if表达式:
key = "domain" if obj_type == "domain" else "usernme" if obj_type == "db_user" else "name"
性能有任何优势吗?如果这不是一个因素,哪个应该是首选的可读性,PEP8合规性?