构建 Sequelize 实例似乎花费的时间太长
Construction of an instance of Sequelize seems to take too long
我有一些 Typescript 代码使用 sequelize@5.22.3 和 sequelize-typescript@1.1.0 库来管理 AWS Aurora MySQL RDS 数据库 (5.7.mysql_aurora.2.07.2).
此代码 运行 作为 Lambda 函数,可通过 AWS API 网关访问。所有这些(包括 RDS 数据库)都部署在私有 VPC 中(所有这些都使用相同的 VPC)。
这是我调用来创建 Sequelize 实例的函数(这是在 Lambda 函数加载时完成的):
import { Sequelize } from 'sequelize-typescript';
function createSequelize(): Sequelize {
const t0 = new Date().getTime();
const sequelize = new Sequelize('mysql://aaa.cluster-c52mlmcfdpvd.eu-west-2.rds.amazonaws.com/bbb', {
dialect: 'mysql',
logging: false,
username: 'xxx',
password: 'xxx',
pool: {
min: 0,
max: 1,
idle: 10000,
acquire: 30000
}
});
const t1 = new Date().getTime();
console.log(t1 - t0);
return sequelize;
}
注意:我在上面的代码中使用了虚拟字符串来隐藏敏感数据(例如aaa、bbb , xxx).
如您所见,我为此添加了一些计时代码。
我很惊讶它需要 1.5s 和 2s 之间才能做到这一点。
每当 Lambda 处于冷状态时,这就会在我们的应用程序中引入不可接受的延迟。
我能做些什么来缩短这个时间吗?
其他可能相关的库版本:
- typescript@3.9.7
- mysql2@2.1.0
- aws-sdk@2.725.0
- aws-lambda@1.0.6
终于找到原因了。 Lambda 函数默认分配 128MB 内存。
当我将其增加到 1600MB 时,Sequelize 实例的构建下降到 150ms.
我有一些 Typescript 代码使用 sequelize@5.22.3 和 sequelize-typescript@1.1.0 库来管理 AWS Aurora MySQL RDS 数据库 (5.7.mysql_aurora.2.07.2).
此代码 运行 作为 Lambda 函数,可通过 AWS API 网关访问。所有这些(包括 RDS 数据库)都部署在私有 VPC 中(所有这些都使用相同的 VPC)。
这是我调用来创建 Sequelize 实例的函数(这是在 Lambda 函数加载时完成的):
import { Sequelize } from 'sequelize-typescript';
function createSequelize(): Sequelize {
const t0 = new Date().getTime();
const sequelize = new Sequelize('mysql://aaa.cluster-c52mlmcfdpvd.eu-west-2.rds.amazonaws.com/bbb', {
dialect: 'mysql',
logging: false,
username: 'xxx',
password: 'xxx',
pool: {
min: 0,
max: 1,
idle: 10000,
acquire: 30000
}
});
const t1 = new Date().getTime();
console.log(t1 - t0);
return sequelize;
}
注意:我在上面的代码中使用了虚拟字符串来隐藏敏感数据(例如aaa、bbb , xxx).
如您所见,我为此添加了一些计时代码。
我很惊讶它需要 1.5s 和 2s 之间才能做到这一点。
每当 Lambda 处于冷状态时,这就会在我们的应用程序中引入不可接受的延迟。
我能做些什么来缩短这个时间吗?
其他可能相关的库版本:
- typescript@3.9.7
- mysql2@2.1.0
- aws-sdk@2.725.0
- aws-lambda@1.0.6
终于找到原因了。 Lambda 函数默认分配 128MB 内存。
当我将其增加到 1600MB 时,Sequelize 实例的构建下降到 150ms.