我们经常在网站上遇到停机时间,因此无法解释。没有任何明显的模式是非常零星的,但是在过去的24小时中,我们有6个实例。
当我们有停机时间时,似乎是由于特定查询而使数据库超载(见图):
SELECT COUNT(*) FROM "cache"
我们已经查看了所有代码和工作程序,并且在执行该表计数的代码中找不到任何地方。
除了显式count()
或len()
之外,还有人对Django如何将查询转换为计数有任何想法吗?还是这可能是黑客的工作?任何投入将不胜感激。
更新-尝试更改Postgres密码,我们仍然看到这些神秘的查询。我们不确定100%是否与停机时间有关,但是我们很确定。
UPDATE2-以防万一人们将来遇到此问题,问题在于我们的缓存表已达到大小限制。我们删除了整个缓存表,这在站点上造成了大约5分钟的不稳定,然后突然变得更快并解决了问题!是的,事实证明,通过Django管理面板,缓存表受到昂贵的查询的打击,但是清除缓存有助于减轻负担。