如何跨不同地理区域提高Django应用程序的性能?

如何跨不同地理区域提高Django应用程序的性能?,django,amazon-web-services,webserver,Django,Amazon Web Services,Webserver,我有一个Django应用程序,它使用Nginx和Django通道托管在地理区域内的AWS盒上。最近,我在该地区有一些用户抱怨我的应用程序响应性不强。该应用程序运行良好,因为我正在使用us-east-1 在用户投诉之前,我如何检测某个区域的性能不佳 在ap-southeast-1时区,我可以做些什么来提高应用程序性能和用户体验 作为单元测试或类似测试的一部分,是否有任何方法可以在其他地理区域测试性能 我有一种感觉#2的答案将与:(a)在ap-southeast-1中添加另一个web服务器和(B)缓

我有一个Django应用程序,它使用Nginx和Django通道托管在地理区域内的AWS盒上。最近,我在该地区有一些用户抱怨我的应用程序响应性不强。该应用程序运行良好,因为我正在使用us-east-1

  • 在用户投诉之前,我如何检测某个区域的性能不佳
  • 在ap-southeast-1时区,我可以做些什么来提高应用程序性能和用户体验
  • 作为单元测试或类似测试的一部分,是否有任何方法可以在其他地理区域测试性能 我有一种感觉#2的答案将与:(a)在ap-southeast-1中添加另一个web服务器和(B)缓存有关,但我很想知道是否还有其他事情我应该做


    但是,我不知道如何首先检测其他地区的低性能,或者如何测试以确保将来不会再次发生这种情况。

    是的,最好是在有用户的地方安装一台服务器。但是,如果不同区域中的多个服务器必须与同一个数据库通信,那么当服务器与另一个区域中的数据库通信时,仍然会出现延迟问题

    最好的解决方案是在所有受支持的区域中拥有完整的堆栈、服务器和数据库,并使用跨区域复制来确保所有区域共享相同的数据。某些AWS数据库(如和)支持此功能

    随着体系结构变得越来越复杂,最好使用它来管理每个区域中的堆栈,以便所有内容都保持最新

    至于检测性能,它是监视AWS资源的好工具。根据服务器使用的AWS资源,它应该有一些度量标准来度量响应时间

    至于性能测试,您可以考虑在另一个区域创建服务器的开发/测试版本,并使用代理访问它。然后使用Cloudwatch查看这些请求需要多长时间