• 技术文章 >web前端 >js教程

    node服务CPU过高怎么办?聊聊排查思路

    青灯夜游青灯夜游2022-09-15 19:46:25转载201
    node服务CPU过高怎么办?怎么排查?下面本篇文章给大家整理分享下node服务CPU过高的排查思路,希望对大家有所帮助!

    大前端零基础入门到就业:进入学习

    帮同事看一个CPU过高的问题

    最终我们总结了排查思路,如下,欢迎补充

    排查思路

    0. 重启实例

    部分问题,重启实例就能解决了。

    先重启实例,这是必要做的一步,先让服务变得可用。如果后续CPU还是飙升过快,那么可能只能考虑先回滚代码了。飙升不快的话,可以不用回滚,尽快排查问题

    1. linux shell 确定是否是node进程造成的

    命令一: top

    命令二: vmstat

    [root@*** ~]# vmstat 2
    procs -----------memory---------------- ---swap-- -----io---- --system-- -----cpu-----
     r  b      swpd  free   buff   cache      si   so    bi    bo   in cs   us sy id wa st
     0  0      0 233481328 758304 20795516    0    0     0     1    0    0  0  0 100  0  0
     0  0      0 233480800 758304 20795520    0    0     0     0  951 1519  0  0 100  0  0
     0  0      0 233481056 758304 20795520    0    0     0     0  867 1460  0  0 100  0  0
     0  0      0 233481408 758304 20795520    0    0     0    20  910 1520  0  0 100  0  0
     0  0      0 233481680 758304 20795520    0    0     0     0  911 1491  0  0 100  0  0
     0  0      0 233481920 758304 20795520    0    0     0     0  889 1530  0  0 100  0  0

    参考链接: https://www.cnblogs.com/zsql/p/11643750.html

    2. 看代码diff

    重启实例还没解决,并且确定了是node进程的问题的话,

    查看上线commit,检查一下代码diff,看看是否能找到问题点

    3. 打运行时的CPU profiler

    这个操作方法和我的另一篇如何快速定位ssr服务端内存泄漏问题 类似

    1.png

    如果本地无法模拟出线上的环境?

    比如下游RPC和本地就是有隔离,那就只能加代码,去打出profile了 nodejs.org/docs/latest…

    2.png

    得到profile文件后,用chrome devtool打开

    3.png

    4. 分析 CPU profiler

    4.png

    5. 压测校验

    可以用ab,或其他压测工具

    总结

    更多node相关知识,请访问:nodejs 教程

    以上就是node服务CPU过高怎么办?聊聊排查思路的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:node Node.js nodejs​
    上一篇:分享12道面试题,看你懂不懂JavaScript! 下一篇:JavaScript如何改变this指向?三种方法浅析
    VIP课程(WEB全栈开发)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• 了解两个强大的Node包管理器:npm 和 yarn• node爬取数据实例:抓取宝可梦图鉴并生成Excel文件• 如何进行Node.js扩展开发?前置知识分享• 教你Node.js+SpreadJS从服务端生成Excel电子表格• 一文聊聊Node中的进程间通信
    1/1

    PHP中文网