Play Framework - AWS 的生产配置 threads/db 个连接
Play Framework - production configuration threads/db connections for AWS
我们有一个 Play Framework 应用程序,我们 运行 正在处理生产问题。我很好奇人们在您的 production.conf 上使用了哪些设置来确保您的网络服务器不会变慢。我们有一个基本的 Web 应用程序,可以与 Mysql 通信、发送电子邮件、短信,并有一个登录门户。
如果您使用的是 AWS EC2 实例(比如 t2.large),您在线程池中设置了多少个线程,数据库连接池中有多少个连接以及您的 Xms 和 Xmx 是什么内存设置为?
谢谢。
If you're using an AWS EC2 instance (say a t2.large) how many threads to you set on your thread pool
我认为这可能是您遇到问题的可能根本原因之一。有一个 ThreadPool
,或者更准确地说 ExecutionContext
包裹了一些 ExecutorService
(例如 FixedThreadPoolExecutorService
)被认为是不好的做法,因为它在应用程序可用于阻塞操作,如数据库访问 - 例如 MySql 在你的情况下,最终将导致整个线程阻塞,以及其他应用程序部分的性能问题,如新连接处理或响应呈现。
您需要做的是对阻塞和非阻塞操作使用不同的 EC
实例 - 我们称它们为 frontend EC
(对于非阻塞)和 backend EC
(对于阻塞)。
frontend EC
您需要在视图和服务级别(API 控制器、业务逻辑等)中使用;
backend EC
您需要在 DAO 应用程序级别或任何可能的阻塞 pars 中使用;
在这两个 EC
之间分配资源的方式实际上取决于上下文。例如,您可以从 frontend EC
的 80% 线程和其他 20% backend EC
的线程开始,然后继续调整,直到您获得所需的性能结果。
但总的来说,你问的问题取决于很多背景——在工程领域通常没有灵丹妙药。
希望对您有所帮助!
我们有一个 Play Framework 应用程序,我们 运行 正在处理生产问题。我很好奇人们在您的 production.conf 上使用了哪些设置来确保您的网络服务器不会变慢。我们有一个基本的 Web 应用程序,可以与 Mysql 通信、发送电子邮件、短信,并有一个登录门户。
如果您使用的是 AWS EC2 实例(比如 t2.large),您在线程池中设置了多少个线程,数据库连接池中有多少个连接以及您的 Xms 和 Xmx 是什么内存设置为?
谢谢。
If you're using an AWS EC2 instance (say a t2.large) how many threads to you set on your thread pool
我认为这可能是您遇到问题的可能根本原因之一。有一个 ThreadPool
,或者更准确地说 ExecutionContext
包裹了一些 ExecutorService
(例如 FixedThreadPoolExecutorService
)被认为是不好的做法,因为它在应用程序可用于阻塞操作,如数据库访问 - 例如 MySql 在你的情况下,最终将导致整个线程阻塞,以及其他应用程序部分的性能问题,如新连接处理或响应呈现。
您需要做的是对阻塞和非阻塞操作使用不同的 EC
实例 - 我们称它们为 frontend EC
(对于非阻塞)和 backend EC
(对于阻塞)。
frontend EC
您需要在视图和服务级别(API 控制器、业务逻辑等)中使用;backend EC
您需要在 DAO 应用程序级别或任何可能的阻塞 pars 中使用;
在这两个 EC
之间分配资源的方式实际上取决于上下文。例如,您可以从 frontend EC
的 80% 线程和其他 20% backend EC
的线程开始,然后继续调整,直到您获得所需的性能结果。
但总的来说,你问的问题取决于很多背景——在工程领域通常没有灵丹妙药。
希望对您有所帮助!