开发者社区 > 云原生 > Serverless > 正文

函数计算中,使用连接池的方式函数计算就一直提示Error的原因?

函数计算中,使用连接池的方式函数计算就一直提示Error的原因?
我使用
const Redis = require("ioredis");

// 阿里云Redis的连接信息
const redis = new Redis({
port: 6379, // Redis端口
host: "", // 阿里云Redis地址
password: "
", // 阿里云Redis密码
});

函数计算就可以连接上redis的实例进行数据操作,但是如果使用连接池的方式
const Redis = require("ioredis");
const { createPool } = require("generic-pool");

// 创建 Redis 连接池
const redisPool = createPool({
create: () => {
console.log("Creating a new Redis connection...");
return new Redis({
port: 6379,
host: "",
password: "
",
});
},
destroy: (redisInstance) => {
console.log("Destroying a Redis connection...");
return redisInstance.quit(); // 在连接返回连接池之前执行的操作
},
}, {
max: 10, // 最大连接数
min: 2, // 最小连接数
testOnBorrow: true, // 在从连接池借用之前检查连接的有效性
});
函数计算就一直提示Error: Function timed out after 60 seconds (maxMemoryUsage: 36MB),请问一下是什么原因的呢?

展开
收起
多麻辣哦 2024-01-17 13:47:30 52 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您提供的代码和错误信息,问题可能出在连接池的配置上。具体来说,可能是以下原因导致的:

    1. 最大连接数(max)设置过小:当函数计算需要使用连接时,如果连接池中的连接数量不足,函数计算会等待一段时间(默认为60秒),直到有可用的连接。如果在这段时间内无法获取到足够的连接,函数计算就会报错。您可以尝试增加最大连接数(max)的值,以便更快地获取到可用的连接。

    2. 最小连接数(min)设置过大:最小连接数(min)表示连接池中至少保留的空闲连接数量。如果这个值设置得过大,可能会导致连接池中的连接长时间处于空闲状态,从而影响函数计算的性能。您可以尝试减小最小连接数(min)的值,以便更合理地利用连接资源。

    3. 测试连接有效性的时间间隔(testOnBorrow)设置过短:测试连接有效性的时间间隔(testOnBorrow)表示每次从连接池借用连接之前,检查连接有效性的时间间隔。如果这个值设置得过短,可能会导致频繁地创建和销毁连接,从而影响函数计算的性能。您可以尝试增加测试连接有效性的时间间隔(testOnBorrow)的值,以便更合理地管理连接资源。

    4. 内存使用限制(maxMemoryUsage):内存使用限制(maxMemoryUsage)表示连接池中允许的最大内存使用量。如果这个值设置得过低,可能会导致连接池中的连接占用过多的内存,从而影响函数计算的性能。您可以尝试增加内存使用限制(maxMemoryUsage)的值,以便更合理地管理连接资源。

    2024-01-17 15:13:50
    赞同 展开评论 打赏
  • Function timed out after。
    如果函数调用出现偶现的超时, 您可以先尝试如下操作:
    将函数的 timeout 调整大些。
    检查函数逻辑,增加日志, 看看是不是调用其他接口返回超时, 从而导致整个函数时间变长导致超时。
    有特殊的逻辑分支, 进入特别耗时的分支, 比如 cpu 密集型。
    在函数详情-监控指标-实例指标中查看内存、CPU使用情况是否满载导致执行变慢。如果有设单实例多并发,可以根据单并发时函数执行所需的内存、CPU使用情况来设置合适的多并发、内存CPU配置。
    ——此回答整理自钉群:阿里函数计算官网客户

    2024-01-17 14:58:48
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载