关于 Nodejs 服务端渲染的问题~~请高手指点~
发布于 7 年前 作者 suchiva 3798 次浏览 来自 问答

后端服务是java服务,前端是用的reactjs,我这边为了做SEO,中间层用的是Nodejs express框架,但是目前性能测试不佳 场景: 100用户不间断压测,首页全部改为ajax请求,静态资源使用nginx代理 压测结果: TPS为150.1 (可视为150个用户/秒) 一时找不到解决方案,还请高手指点~

15 回复

TPS 低,首先看链路压测瓶颈在哪里 按照经验,可以先排查下是不是后端接口压测下返回变慢导致链路的负载上不去,node 这边的渲染,肯定不会只有 150 左右

@hyj1991 我这边只是一个网站首页的基本信息请求,CPU 占比到100%~ 四核8G的CPU~

@suchiva 你的渲染模板的 cache 开了没?每次都解析模板也很耗 cpu 的

来自酷炫的 CNodeMD

用 alinode 看下就知道了

@atian25 怎么操作?

@hyj1991 具体在哪里设置~

@hyj1991 设置了效果不明显;缓存只是缓存客户端的,目前是高并发下,Node端性能很差~

@suchiva cache 缓存的是服务端模板解析啊,怎么可能是客户端的,肯定是你理解错了 alinode 现在又叫 Node.js 性能平台,压测在线做一个 cpu profiling 能更清楚看到 cpu 的热点瓶颈,接入文档:https://help.aliyun.com/document_detail/60338.html

@suchiva 以 koa-ejs 为例:https://www.npmjs.com/package/koa-ejs 官方给的例子中初始化参数 cache 设置为 true 即可开启

@hyj1991 开启了,不明显~ express的框架~

@suchiva 那可能是别的地方引起的 cpu 高,接入 Node.js 性能平台看看呢?文档和链接在上面了

@hyj1991 我的项目是是本地的,可以直接接入nodejs性能平台吗?

@suchiva 可以,alinode 不要求必须部署到阿里云。只要你的 RunTime 是 alinode 即可

@atian25 ?发不了附件,还是没查到原因;你们没有遇到CPU爆满这样的情况吗?

@suchiva 你这个问题让我无言以对啊…

大家都遇过拉肚子的情况,但到底是吃坏东西了,还是急性肠胃炎,就得去看医生做检查才知道啊。。。

现在我不是指了一条路了么,alinode 可以给你做全方面的身体扫描。

性能差往往可能是代码写的差,譬如一堆同步操作 readFileSync,至于哪里差,我们又没你代码,鬼知道啊,用 alinode 分析下代码热点一下就知道了。

回到顶部