Bienvenue sur Microsoft Q&A!
Merci d’avoir fourni des informations aussi détaillées sur votre environnement et vos observations.
D’après votre description, un délai d’expiration de 15 secondes d’AWS Lambda pendant les périodes de forte activité de lecture de la base de données indique souvent que la fonction attend des connexions à la base de données ou des requêtes lentes, plutôt qu’une limitation liée à la mémoire de Lambda.
Étant donné que le problème ne se produit que pendant les périodes de forte activité de la base de données et que celle-ci reste réactive, je vous recommande d’examiner la gestion des connexions avant d’augmenter le délai d’expiration de Lambda.
Points à examiner:
- Saturation des connexions à la base de données: Lambda peut monter en charge très rapidement et créer un grand nombre de connexions simultanées à la base de données. Lors des pics de charge, l’établissement des connexions ou les limites de connexions de la base de données peuvent devenir un goulot d’étranglement.
- Réutilisation des connexions : Si une nouvelle connexion à la base de données est créée pour chaque invocation, la surcharge liée aux connexions peut devenir importante à mesure que la concurrence augmente.
- Performances des requêtes : Examinez les requêtes exécutées pendant les périodes concernées et vérifiez les métriques de surveillance de la base de données afin d’identifier les attentes de verrouillage, une latence de lecture élevée ou des temps d’exécution de requêtes plus longs.
- Niveaux de concurrence: Comparez les métriques Lambda telles que ConcurrentExecutions et Duration avec les métriques de connexion à la base de données pendant les expirations afin de déterminer si les pics de trafic surchargent la couche de base de données.
Si votre backend utilise Amazon RDS, envisagez de mettre en œuvre Amazon RDS Proxy, qui constitue l’approche recommandée par AWS pour les charges de travail Lambda. RDS Proxy gère et réutilise un pool de connexions à la base de données, aidant les fonctions Lambda à monter en charge efficacement sans créer un nombre excessif de connexions directes à la base de données. Cette solution est particulièrement avantageuse pour les charges de travail qui utilisent fréquemment des connexions de courte durée ou connaissent des pics de concurrence.
De plus, l’activation d’un traçage détaillé (par exemple, AWS X-Ray) et l’examen des journaux CloudWatch peuvent aider à identifier précisément à quel moment l’expiration se produit, que ce soit lors de l’établissement de la connexion, de l’exécution d’une requête ou de la communication réseau.
À moins que votre enquête ne confirme qu’un traitement normal nécessite légitimement plus de 15 secondes, augmenter le délai d’expiration de Lambda risque simplement de masquer le goulot d’étranglement sous-jacent plutôt que de le résoudre.
J’espère que ces informations vous aideront à vous orienter dans la bonne direction.
Si ces informations vous sont utiles, veuillez cliquer sur Accept Answer.
Merci d’utiliser Microsoft Q&A.
Remarque: Cette réponse a été traduite à l’aide d’un outil de traduction. Veuillez noter qu’il peut subsister des erreurs grammaticales ou sémantiques. Merci de votre compréhension.