View
659
Download
8
Embed Size (px)
Citation preview
我们的前端团队支撑的业务Node.js 目前广泛应用涵盖将近80%+以上的前端项目
AWP
Node.js 在我们团队的应用Node.js 在业务项目、技术项目和效率工具中均有广泛应用
PM25
AWP 纯静态化发布系统
业务服务的量级
前后端分离方案
/ SSO / OAuth / / ABTest /
Web API Keymetrics Remote Deploy
http://pm2.keymetrics.io/docs/usage/pm2-api/https://github.com/Unitech/PM2/blob/master/doc/PROGRAMMATIC.md
KeyMetrics
https://github.com/PaulGuo/PM25
• 机器的分桶管理 • 机器 行快速 • 主机的 指 信息
• 支持多用 登 • 登 作 中 件可插拔
• 程的 指 信息 • 支持 程 行 程操作
• 同Falcon整合 行 警管理 • 收集 服 端慢路由信息 • 程 度 看TPS的数据 • 支持 程的Heapdump • 支持 程生成CPU Profile
GodDaemon
InteractorDaemon
ClusterMode
ForkMode
PushInteractor
ReverseInteractor
Axon
NSSocket
Cluster
child_process.spawn
PM2(5) 命令行核心部分
PM25-Ext PMX (http hook)
PM25进程
应用进程
IPC (libuv)
restart, reload, gracefulReload, reset, pullAndRestart, forward, backward, startLogging, stopLogging
https://github.com/PaulGuo/PM25
https://github.com/PaulGuo/PM25
PM25管理界面和图表数据演示
• 慎将内存当 存 • 关注 列消 状 • 主 放 量和作用域
https://github.com/JacksonTian/limitablemaphttps://github.com/isaacs/node-lru-cachehttps://github.com/NodeRedis/node_redis
CPU 100%504 Gateway Timeout
Sunburst vs. FlameGraphCPU Consumption Visualize
Sentry
Open-Falcon国内开源的互联网企业级监控系统
GC 状态上报
PM25报警配置管理演示
高性能的 NodeJS
• 高效使用内存( 包、全局 量引用) • 关注 上服 内存泄露和CPU的情况 • 关注 上服 捕 到的任何异常 • 写高效的中 件、合理使用路由 • 尽量引用二 制的模 • 避免代 中 行密集型 算 • 防御性 程确保服 的健壮性 • 静 源 使用 CDN • 服 的 定性出自 控
https://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile
PM25
Falcon
Sentry
Snapshot, Profiler
我们的服务监控体系
谢谢大家