Sequelize实例的构建似乎花费了太长时间



我有一些使用的Typescript代码sequelize@5.22.3sequelize-typescript@1.1.0用于管理AWS Aurora MySQL RDS数据库的库(5.7.MySQL_Aurora.2.07.2(。

此代码作为Lambda函数运行,可通过AWS API网关访问。所有这些(包括RDS DB(都部署在一个私有的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;
}

注意:我在上面的代码中使用了伪字符串来隐藏敏感数据(例如aaabbbxxx(。

正如你所看到的,我已经把一些时间代码围绕这个。

我感到非常惊讶的是,这需要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左右。

最新更新