惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

Surmon.me

想清楚再干 一人有限集团 你就是不敢 创造力是温柔的谎言 人类正在退出人类 AI 代替不了这样的你 脉冲点火背后的架构设计 基于 Cloudflare 生态的 AI Agent 实现 NodePress 支持用户登录了 从统计学习到通用智能 2025 投资报告:走慢的路 无依之地 会杀人的菩萨 无我不是共识 文化的积重与偏见 当下即安 科学的尽头是态度 无我不是 Egoless 信仰不因恐惧而存在 世间无解的矛与盾 先别急着做些什么 佛不需要你的皈依 真理的幻觉 两扇大门 造心里的浮屠 自胜者强 逻辑与智慧 真的相 快乐的秘密 只需愿意 是名体验 最深沉的梦 森林里倒下的树 现象与相 庸人自扰 React 与 Vue 的完美融合 开心就好吗 与原生家庭和解 两支毒箭 怎么自净其意 一尘不染 一片白云 让风穿膛而过 喝下去,然后闭嘴 活在当下 当纠结发生时 唯「我」独尊 一场把戏(时间) 一场把戏(二元对立) “我” 和 “我” 谁是众生? 船里没有人 玫瑰不需要说话 没有人能渡任何人 你我为轮,使之不再 当我们在谈论独立时 自我约束就是最好的自我接纳 从善与恶的表象出发 佛法不是心理学 别人眼中的你并不是你 高高山上走 祝你心想事成 祝你的噩梦早日发生 道是无情却有情 裙子只为自己而穿 不要盲目地评估自己 先别急着 “爱自己” 让生命欣然舞动 你无法复制乔布斯 符号不是目的 如果一件事发生了 每当我起心动念时 爱出者爱返 理解不是尊重的基础 在没有解决自己的问题之前 “知足常乐” 不是比较 逻辑是无法成为信仰的 买不到的自由 成为诵经者 伤口听不懂大道理 是立场让你不自由 - Unfreedom 天雨大不润无根之草 做自己的神 当心诱惑本身 牛洞冥思录 修罗启示录 让大脑自举 我更喜欢叫它无梦寺 存在主义也许不是解药 出南洋记 2022 的所有答复 没意义的表达 思考的记录 故宫暂行之幻想 极端的比较 解构的终极 舍利子是如何炼成的 心要野 佛教的偏见 文艺青年
生产问题
2017-02-16 · via Surmon.me

以为是node程序有问题,导致内存爆表,频繁宕机,目前看来应该是被人盯上了,无奈对网络安全一无所知,看访问日志,一堆的未知来源反向代理,回访回去更是细思极恐。

宕机问题搞清楚了,是内存爆表导致的,观察了一上午,访问密集的话,内存使用率急剧升高,给pm2加了max_memory_restart参数,内存超过160m自动重启;

其实还有个小坑,nuxt的项目启动可以用npm也可以nuxt命令,pm2启动"nuxt"会导致直接性的没法run,具体原因未知,略复杂;

最后在mac进程管理里看到真实运行时的形态,把这个形态转移到配置文件就可以了,如下:

        
        

123456789101112131415161718

module.exports = { apps: [ { name: "surmon.me", watch: true, cwd: "./", script: "node", args: "./node_modules/.bin/nuxt start", max_memory_restart: "160M", log_date_format: "YYYY-MM-DD HH:mm Z", error_file: "/usr/local/wwwlogs/surmon.me/error.log", out_file: "/usr/local/wwwlogs/surmon.me/out.log", env: { "NODE_ENV": "production", } } ] }

坑:在pm2中以"npm"为script执行,无法检测到真实运行的程序的内存等相关情况。

最终产品的稳定还是需要产品本身的稳定,不是这些奇技淫巧,笨办法是办法,但一定不是最优办法;所以周末需要对项目做深度优化,找到内存泄漏的节点,kill it。

关于第二点异常访问的情况,是真实存在的,我正在寻找防火墙或nginx部分来解决这个问题。

最终使用 idle-gc 模块来收集垃圾,实现内存平衡。

idle-gc是在node早期版本中被废除的功能,主要负责空闲时的堆内存回收,然后早期被认为有bug,经常会导致cpu满载,于是从node中移除了,此项目作者修复了这个bug,并发布了模块。

大致工作原理就是每次“程序活动结束”5秒后执行一次垃圾回收,当然可以手动指定时间,但是如果有定时器,则定时器会被认为是“活动事件”,也就意味着永远不会回收垃圾,要注意。


2017-03-25更新

最终新建了一个主程序文件,server.js,作为node程序启动,将nuxt作为node程序的中间件,使程序更加可控,也更利与管理。 代码在这