提升node 并发30倍

本文摘译自How we 30x’d our Node parallelism

  • 做的是银行业务
  • 原来是4,000 个node container节点(这里应该是指机器而不是nodejs worker),每个处理一个请求gRpc,因此最大并发4000
  • 通过此改善每季度节约30万美元
  • 改善的前提是收集详细的metric监控调试信息
  • 前面用负载均衡
  • 现在是每个节点增加并发(nio)
  • 因此需要加大nodejs内存--max-old-space-size=6144
  • 使用no-floating-promises验证
  • 问题一:AWS S3 client reduces maxSockets from Infinity to 50
  • 问题二:JSON序列化,不要使用bfj包,改用JSONStream。
  • 问题三:GC,使用gc-stats监控,使用--max-semi-space-size=1024减少GC频率。
  • 问题四:CPU,使用FlameGraph分析。发现日志占用15%,解决办法此文没有详述(正则表达式等)。
  • 最终每个节点可以并发处理30个请求 。

Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1