服务器只有 2 核 2G,需要部署一个个人网站,怎么尽可能的减少内存占用?

2023-02-27 11:16:50 +08:00
 xianxiaobo

比如数据库用 sqlite? 后端语言选什么呢?开发框架选什么呢? 有人了解这一块儿的吗? 最好是有一套方案的那种,谢谢了。

14242 次点击
所在节点    程序员
135 条回复
wxlwsy
2023-02-28 11:17:57 +08:00
java 确实比其他语言费内存点, 但是纯 javase 来说完全够用.如果你上 springboot 一套的话内存也够用.就我的经验来说 mysql 直接吃了我一半内存.给你个解决方案:
服务器只跑静态页面, 动态逻辑可以 frpc 放家里服务器.
我用这个实现了永恒之塔真端(要 30+G 内存).我在公司就能玩,服务器在家里
ashin
2023-02-28 12:15:43 +08:00
我以前用腾讯云最低配的 cvm 的时候有这种内存焦虑,上面内存吃的最多的是 mysql ,(最初是用 docker 安装,后来 docker 卸载了,直接裸装,可以省点磁盘和内存)为了省钱我搞了很多渣男式的内存优化,用完就扔,要用才找你,举两个例子:

一个是我的一个 Go 服务,会定时请求外部网站获取很多数据进行更新,获取数据期间以及处理完后结构是保存在一个全局变量里面的,在机器负载高的时候这期间就会导致 oom ,于是我的优化方案是直接把这个数据获取和处理通过 github action 搞到外面去,每次通过 github action 起一个容量来完成这个数据获取写成文件,然后在 scp 到服务器上,服务器定期加载这个文件来更新那个全局变量。

还有一个例子,比如我的服务要加载一个分词的词库,正常我是服务启动的时候加载的,可以提高使用时的速度,但是这个只有在某个后台操作的时候才会用到这个词库,每次一操作且操作的频率稍微快一点也会 oom ,于是我把这个词库只在用到的时候才加载,平时省了几百 M ,用的时候给那个解析词库的第三方代码加了一个内存释放的方法,我用完就调一下,然后使用时控制下自己的操作频率,让他释放完缓过劲再继续相同操作。
ashin
2023-02-28 12:18:56 +08:00
最后不想折腾了,换成了 8G 内存,彻底优化-。-
lslqtz
2023-02-28 12:23:35 +08:00
我自己的服务每秒 30-100 个请求, 1C2G 的机器都能扛... 全数据库操作.
lslqtz
2023-02-28 12:24:30 +08:00
另外内存小不等于性能就好, SQLite 在高并发下相比 MySQL 会占用非常多的 CPU.
Kaiyuan
2023-02-28 13:13:04 +08:00
1 核 256 我也跑 Wordpress ,没问题的。
yuedun
2023-02-28 14:05:27 +08:00
┌─────┬─────────────────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ status │ cpu │ mem │ user │ watching │
├─────┼─────────────────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ blog │ online │ 0% │ 71.6mb │ yuedun │ disabled │
│ 2 │ ginode-mongo │ online │ 0% │ 14.2mb │ yuedun │ disabled │
│ 1 │ metal │ online │ 0% │ 23.1mb │ yuedun │ disabled │
└─────┴─────────────────┴───────────┴──────────┴──────────┴──────────┴──────────┘

go 服务 14.2M ,node 服务 71.6M
flyingfishzxf
2023-02-28 14:38:26 +08:00
vitepress 挺香的,装个 nginx 就够了,配合 git ,本地写,写完打包 push ,服务器撸个脚本自动更新,要啥后台管理
taolinxs
2023-02-28 14:53:29 +08:00
phpinfo();
morelearn1990
2023-02-28 14:56:19 +08:00
直接搭个 md 静态解析页面嘛,什么 hexo vitepress 都不错,再弄个 git webhook 自动发布,这不比管理页面方便吗。
sqzdy8
2023-02-28 14:57:23 +08:00
个人网站感觉够用。
wuxin987
2023-02-28 15:05:31 +08:00
我的个人博客 onelk.cn 服务器也是 2c2g ,前端是 nuxtjs ,后端用的 nodejs+mysql 。
bugmakerxs
2023-02-28 15:47:05 +08:00
mysql 512m + javaweb 512m 也就 1g 内存,完全够用
zoharSoul
2023-02-28 20:45:45 +08:00
远离 java 即可
jin7
2023-03-01 08:30:00 +08:00
反代到自己电脑上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/919453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX