• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xianxiaobo
V2EX  ›  程序员

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

  •  
  •   xianxiaobo · Feb 27, 2023 · 20233 views
    This topic created in 1345 days ago, the information mentioned may be changed or developed.

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

    135 replies  •  2023-03-01 08:30:00 +08:00
    1  2  
    ❮ ❯
    hyperzlib
    hyperzlib
    Feb 27, 2023❤️3
    1
    2H2G 啊,别用 Java 写就行了。数据库一般 MySQL ,或者如果用 NoSQL 可以试试 MongoDB 。语言除 Java 以外都可。
    vicv
    vicv
    Feb 27, 2023 via iPhone❤️5
    2
    个人网站访问量应该不大吧,主流语言只要不是 Java ,2C2G 已经挺耐操的了。真要关心省内存,那考虑 Go 语言吧。如果是博客,那么静态博客那是极致的省内存。
    Light3
    Light3
    Feb 27, 2023❤️2
    3
    写个静态的~
    yazinnnn
    yazinnnn
    Feb 27, 2023❤️2
    4
    个人网站为什么需要后端?
    Twnysta
    Twnysta
    Feb 27, 2023❤️1
    5
    个人网站?直接 wordpress 改版算了
    aw2350
    aw2350
    Feb 27, 2023❤️1
    6
    HUGO
    Cat7373
    Cat7373
    Feb 27, 2023❤️1
    7
    用 Python 或 NodeJS ,再想多放点网站的话,PHP 吧
    zhwithsweet
    zhwithsweet
    Feb 27, 2023❤️3
    8
    部署在 fly.io cname 过去
    jiayouzl
    jiayouzl
    Feb 27, 2023❤️1
    9
    2 核 2g 用 php,Python,go,node 等等个人应用毫无问题,抗个日均 2,3 万独立 IP 访问,毫无难度!绝大部分 app,小程序日均都没这么多访客.

    我个人用 php,Python,node 都实战过.当年还只是 1 核 500M 的服务器呢.现在起步都是 2 核 2G 了,更多还是关心下宽带吧!这个才是重头.
    wonderfulcxm
    wonderfulcxm
    Feb 27, 2023 via iPhone❤️1
    10
    2c2g 其实还可以,我的也是,mysql 都可以装,PHP 那套肯定没问题,甚至装 code server 远程开发。我估计除了 Java 其他都问题不大。
    xianxiaobo
    xianxiaobo
    OP
    Feb 27, 2023
    11
    @yazinnnn 想做个有后台管理系统的个人网站,包括图片上传啊,博客上架下架之类的
    xianxiaobo
    xianxiaobo
    OP
    Feb 27, 2023
    12
    @Twnysta 想自己从零开始做,着重体验一下过程
    xianxiaobo
    xianxiaobo
    OP
    Feb 27, 2023
    13
    其实我更好奇的是,怎么极致的省内存,在有后端服务的情况下
    yhxx
    yhxx
    Feb 27, 2023❤️2
    14
    如果是博客直接只放一个纯静态页面用 nginx 提供服务
    静态资源用 OSS ,一定要后端的话,试试云服务商的函数计算之类的 serverless 服务
    ihciah
    ihciah
    Feb 27, 2023 via iPhone❤️2
    15
    @xianxiaobo 写 rust ,相比 gc 类立省 50%+ mem 。
    xianxiaobo
    xianxiaobo
    OP
    Feb 27, 2023
    16
    @yhxx 但是这样感觉是绕开了,服务器就变成一个纯代理转发的东西了,我想的还是不依赖于第三方。
    jacy
    jacy
    Feb 27, 2023❤️1
    17
    一个个人网站 lnmp 2G 完全够了
    mengdu
    mengdu
    Feb 27, 2023❤️6
    18
    先搭建再考虑优化吧,你自己都说要体验过程了,没人浏览的网站,你开头优化到极致都是那样.
    Tyuans
    Tyuans
    Feb 27, 2023❤️1
    19
    都要求这么高了么,我的图床还是 0.8H1G 的...
    westoy
    westoy
    Feb 27, 2023❤️1
    20
    如果你没有流量, 你没必要省资源
    如果你流量增长很快, 你以后重写这个系统的成本肯定比加配置高

    当年虚拟主机按 MB 卖钱的时代, 你这套配置 IDC 可以放上千个动态网站, 而且当时是个网站就算扔那里不管, 流量就比现在认认真真做来的高........
    wheat0r
    wheat0r
    Feb 27, 2023❤️1
    21
    不知道后端服务是什么,单纯跑网站的话,caddy+sqlite 实在是用不了多少资源
    boks
    boks
    Feb 27, 2023❤️1
    22
    php + laravel + mysql 就行,第一次进博客详情页把渲染的页面保存为静态页,nginx 里配置下,有静态页直接返回
    ericls
    ericls
    Feb 27, 2023❤️2
    23
    2G 内存可以跑 100 个 个人博客
    weijancc
    weijancc
    Feb 27, 2023❤️1
    24
    我的就是 2g, 日常使用 Java 后端 465m, mysqld: 453m, 前端 nginx: 2.5m, 实际上搓搓有余, 我还额外跑了个占用 300m 的 squid
    zjp
    zjp
    Feb 27, 2023 via Android❤️1
    25
    个人网站是啥
    博客的话 1G 我搭过 Nginx + PostgreSQL + Java ,只有 JVM 需要限制最大内存,其他的不用担心
    longjiahui
    longjiahui
    Feb 27, 2023❤️1
    26
    1G 内存,基本没什么访问量,开了一堆重复的 docker 镜像,13 个,主要是 caddy 和数据库和服务器,全靠 swap 撑着。
    admpubcom
    admpubcom
    Feb 27, 2023 via iPhone
    27
    我的个人网站 hifilm.top ,带完整后台,服务器配置是 1h1g ,用 go+mysql8 开发的,感觉够用了,供参考
    makelove
    makelove
    Feb 27, 2023❤️1
    28
    OP 这是刚买了彩票就想着钱怎么花了,醒醒你的网站不会到 2c2g 都撑不住的一天
    cupssb
    cupssb
    Feb 27, 2023❤️1
    29
    JAVA SDK 用 GraalVM 跑个 native image ,很省内存。
    zpf124
    zpf124
    Feb 27, 2023❤️1
    30
    这大小其实一般个人项目完全够了,用 java 都没问题。
    debuggerx
    debuggerx
    Feb 27, 2023❤️1
    31
    这么高的配置还有啥好优化的。
    1C256MB 跑个个人站都完全够用了
    数据库不用 mysql 用 pg ,语言不 java 换支持 aot 的语言,64MB 内存都可以挑战一下
    UG1u8zhQxhvqXNrk
    UG1u8zhQxhvqXNrk
    Feb 27, 2023❤️1
    32
    2G 完全够了 sqlite3+python+django 又省事又省资源
    lower
    lower
    Feb 27, 2023❤️1
    33
    有设置 swap 内存交换 的么?
    win xp 时代几乎是标配,Linux 不知道这玩意效果如何……
    牺牲速度 扩大容量 有搞头么?
    sadfQED2
    sadfQED2
    Feb 27, 2023 via Android❤️2
    34
    我 1 核 0.5G 使用 docker 部署了 php golang v2ray nginx mysql redis 服务毫无压力。稳定运行 8 年多了
    dafuyang
    dafuyang
    Feb 27, 2023❤️1
    35
    我的网站前后端分离,前端 vue 后端 python ,没有专门的管理后台页面,配置相关的用数据库或者缓存,用的 1c2g+50g 硬盘服务器,装了 2 套 mysql ,2 套 redis ,docker ,nginx ,jenkins ,2 套 rabbitmq ,配合 OSS 加 CDN ,最高流量一天 2000 多人的时候也没有压力(平时也没啥流量没有专门去压测),内存 CPU 占用一般是构建部署镜像的时候会高一点,其他时候占用 60 左右,给你参考
    opengps
    opengps
    Feb 27, 2023
    36
    减少大列表查询,查询变量尽量缩小范围;
    用批量更新用逐行操作代替批量操作等等;
    我连续用 1 核 2G 服务器多年,稳定性很好
    1KTN90lKW9gVJ9vX
    1KTN90lKW9gVJ9vX
    Feb 27, 2023 via Android
    37
    我博客:www.sl

    配置更低,而且是 wordPress ,一样稳定运行,根本没几个人访问。
    whereFly
    whereFly
    Feb 27, 2023
    38
    不要担心,以前用 1 核 1G 运行过百万 PV
    buyan3303
    buyan3303
    Feb 27, 2023
    39
    减少内存占用的话,zblog,帝国 CMS 之类的,伪静态。或者生成纯静态,然后把内容放服务器上。

    减少页面中的 html 代码+格式化代码+图片用 PS 压缩,再用 tinypng 压缩,视频之类的东西就直接白嫖 B 站等平台。
    hack
    hack
    Feb 27, 2023
    40
    hugo + caddy
    musi
    musi
    Feb 27, 2023
    41
    ?
    我放了三个 node 服务一个 mysql 一个 nginx 都没满你在这担心什么
    Twnysta
    Twnysta
    Feb 27, 2023
    42
    @xianxiaobo learnku 有 php 的 laravel 教程,有论坛有商城,还是不错的。
    qianxaingmoli
    qianxaingmoli
    Feb 27, 2023
    43
    个人博客 typecho+sqlite 1c2g

    total used free shared buff/cache available
    Mem: 1.8G 589M 93M 96M 1.1G 970M
    Swap: 4.0G 0B 4.0G
    daolanfler
    daolanfler
    Feb 27, 2023
    44
    1 核心 1G ,Digital Ocean VPS 路过。博客是静态的,还行,主要没啥访问量。
    nekoneko
    nekoneko
    Feb 27, 2023
    45
    在自己家电脑撘建然后内网穿透
    在自己家搭建要个公网 ip 做 DMZ(或端口映射)
    si
    si
    Feb 27, 2023
    46
    正常做就可以了,不会有什么影响的。
    不用担心,没什么人访问的。
    libook
    libook
    Feb 27, 2023
    47
    需求驱动,不做过度优化,等内存问题成为主要问题的时候再根据网站的具体情况来看怎么优化。
    pinylin
    pinylin
    Feb 27, 2023
    48
    rust + postgresql 非常省
    vicalloy
    vicalloy
    Feb 27, 2023
    49
    如果访问量不大,完全不用担心内存。给你看看我腾讯 2G 的服务器用了多少内存。
    outline-docker-compose_wk-nginx_1 3.086MiB / 1.941GiB
    outline-docker-compose_wk-outline_1[node.js] 216.3MiB / 1.941GiB
    outline-docker-compose_wk-redis_1 6.551MiB / 1.941GiB
    outline-docker-compose_wk-minio_1[golang] 96.13MiB / 1.941GiB
    outline-docker-compose_wk-oidc-server_1[python/django] 75.34MiB / 1.941GiB
    outline-docker-compose_wk-postgres_1 32.22MiB / 1.941GiB
    wordpress_wp_1[apache/php] 190.6MiB / 1.941GiB
    wordpress_wpdb_1[mysql] 213.4MiB / 1.941GiB
    filebrowser_filebrowser_1[golang] 10.85MiB / 1.941GiB
    carrot_carrot-box_1[python/django] 77.67MiB / 1.941GiB
    nginx_nginx_1 7.34MiB / 1.941GiB
    devzhi
    devzhi
    Feb 27, 2023
    50
    用 Java 的话
    Spring Boot3+AOT 应该占用也不大
    cloverzrg2
    cloverzrg2
    Feb 27, 2023
    51
    你一个人的话, go+sqlite, 256M 内存足以
    LinuShen
    LinuShen
    Feb 27, 2023
    52
    alpine linux+nginx+php8.2+sqlite+typecho ,极致剩内存还能留点交互式
    chaselen
    chaselen
    Feb 27, 2023
    53
    @nekoneko 2 不太行吧,现在家宽搭建 web 服务不是查的严么
    dlyxy
    dlyxy
    Feb 27, 2023
    54
    说实话,Java 也够用了
    guiyun
    guiyun
    Feb 27, 2023
    55
    java 怕吃内存的话可以用 OpenJ9 JVM 的 JDK,比如 IBM JDK
    内存基本上少一半多

    https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=openj9

    ![]( https://image.guiyunweb.com/2021/jdk_1635332409182.jpg)
    timnottom
    timnottom
    Feb 27, 2023
    56
    golang
    xiaocaiji111
    xiaocaiji111
    Feb 27, 2023
    57
    我 2 核 4G 跑了 4 个 java 项目没问题,上面还有 docker 啥的。配置一下,限制下最大内存。
    xiaocaiji111
    xiaocaiji111
    Feb 27, 2023
    58
    @xiaocaiji111 推荐使用 halo 这个博客系统
    bugsnail
    bugsnail
    Feb 27, 2023
    59
    这个,跑 wordpress 虽然不能说绰绰有余,但说轻轻松松是没问题的
    looppppp
    looppppp
    Feb 27, 2023
    60
    用 go ,内存占用很小
    yikeshuo
    yikeshuo
    Feb 27, 2023
    61
    搞个 frp 内网穿透 直接用自己的本地作为服务器
    sam384sp4
    sam384sp4
    Feb 27, 2023
    62
    python fastapi
    raptor
    raptor
    Feb 27, 2023❤️2
    63
    2 核 2G 还不够你用?用 JAVA 写的吧……

    我部署过最低配置的 Wordpress 只用了 128M 内存……
    kqxianren
    kqxianren
    Feb 27, 2023
    64
    2 核 2G 还不够嘛, 那个人网站可以商业化了
    xujinkai
    xujinkai
    Feb 27, 2023 via Android
    65
    极致省内存可以用 C 写,但是没必要
    mosliu
    mosliu
    Feb 27, 2023
    66
    2C2G 怎么这么多。我记得当时 64M 还是 128M 就能跑 WP 了
    acedbs
    acedbs
    Feb 27, 2023
    67
    lnmp
    基本就搞定了,或者 Python
    id80108900
    id80108900
    Feb 27, 2023
    68
    我 512 M 的照样跑
    cccssss
    cccssss
    Feb 27, 2023
    69
    跑了 4 个 java 分别占用是 384+200+200+128
    gnup
    gnup
    Feb 27, 2023
    70
    以前 64M 的內存可以想办法跑 Linux+ nginx+mysql+php ,128M 内存是稳稳的可以跑起来,用百度搜一下还能搜到好多以前 64M 内存 VPS 搭建 WordPress 等的文章。2G 内存太夸张了吧
    ltkun
    ltkun
    Feb 27, 2023 via Android
    71
    装 win10 可能会卡 当然装 xp 肯定不卡 装 Linux 能起飞了
    leeggco
    leeggco
    Feb 27, 2023
    72
    我的 1 核 2G ,跑了 10 个网站都没问题,linux
    Azad01
    Azad01
    Feb 27, 2023
    73
    2h2g 够用了,我部署了三十几个个人网站,内存占用也还可以
    Anivial
    Anivial
    Feb 27, 2023
    74
    后段语言选 go ,框架选 Gin
    或者
    Python + Flask
    itechify
    itechify
    Feb 27, 2023
    75
    @admpubcom #27 大佬,你的站点是类似 maccms 配合模板+采集的视频站吗?最近想搞一个玩玩,可否细聊?
    admpubcom
    admpubcom
    Feb 27, 2023 via iPhone
    76
    @oneisall8955 是的。不过是用 golang 写的
    piku
    piku
    Feb 27, 2023 via Android
    77
    感觉问题方向错了。程序的内存和 CPU 开销取决于代码质量,而不是编程语言。减少变量使用,及时释放内存,正确分配数据类型,都是可以减小内存开销的。至于 web 开发就是在选择框架时不采用庞大繁杂的框架,不引入不需要的库( wheel ?)等等。数据库方面如果要极致精简的话可以只用文本存储,不要数据库引擎,或系统内核支持的
    hellowwjie2021
    hellowwjie2021
    Feb 27, 2023
    78
    推荐 php+mysql, 控制下 php-fpm 进程数 ,然后限制下 mysql cache 占用, 之前 512M 跑了很多年,用的 WordPress
    realpg
    realpg
    Feb 27, 2023
    79
    现在开发的一个项目的服务端 apiserver 单机综合请求 8000QPS ,进程内存占用 1.4GB
    你 2G 还不够用?
    duke807
    duke807
    Feb 27, 2023 via Android
    80
    看我自己写的博客: https://blog.d-l.io/about-zh
    不使用数据库,除了自己网站浏览,github 等 git 在线也可以浏览
    后台使用 cgi 脚本,开销极少,脚本我用 python 写的,也可以用其它语言写
    动态上架下架你可以看我的留言模块,文章本身没有做 web 后台发布,我直接用 git push 发布和修改文章
    1bo
    1bo
    Feb 27, 2023
    81
    个人网站居然还需要服务器???

    奢侈!!!
    itechify
    itechify
    Feb 27, 2023
    82
    @admpubcom #76 注册不了😂,还想体验一波
    itechify
    itechify
    Feb 27, 2023
    83
    @duke807 #80 家里有矿啊,家里泳池
    Rehtt
    Rehtt
    Feb 27, 2023 via Android
    84
    2 核 2G 够用了,宝塔一键安装环境,后端用 php
    fzls
    fzls
    Feb 27, 2023
    85
    以大部分人网站的访问量,基本不用操心这个-。-
    admpubcom
    admpubcom
    Feb 27, 2023 via iPhone
    86
    @oneisall8955 🤦浮层注册功能有 bug ,我修一下
    sibowen
    sibowen
    Feb 27, 2023
    87
    hugo 写,本地直接生成静态 html 。
    静态 html 推到 git 。
    线上装个 nginx ,写个 shell ,需要的时候把 git 代码拉到 nginx 目录完事。
    liudon
    liudon
    Feb 27, 2023
    88
    静态博客,直接部署到 IPFS 😜

    https://liudon.com/posts/deploy-blog-to-ipfs/
    w3cll
    w3cll
    Feb 27, 2023
    89
    我的 1 核,1G ,1M 用 PHP 毫无压力。
    admpubcom
    admpubcom
    Feb 27, 2023 via iPhone
    90
    @oneisall8955 修好啦😄
    iseki
    iseki
    Feb 27, 2023 via Android
    91
    用 Java 也行,别用 spring ,用 Kotlin/ktor 吧
    xiaoun001
    xiaoun001
    Feb 27, 2023 via Android
    92
    挺好的配置了。操作系统用网络版 debian 最小化安装,不要装桌面。系统大概消耗 128MB 内存。然后,跑个 lnmp ,木有任何问题。其他语言我也不懂,就说不出来了。
    Jtyczc
    Jtyczc
    Feb 27, 2023 via Android
    93
    @xiaocaiji111 每个限多少啊?
    seakingii
    seakingii
    Feb 27, 2023
    94
    最省内存,就是纯静态的网站了
    要有动态的后台,建议用 rust 这样无 GC 的语言。
    缓存用磁盘缓存,数据库用 SQLITE 这样的文件数据库,各种操作尽量用流式。接口传递的数据选用更紧凑的数据格式
    但是为了更高的并发和效率,还是得尽量用好内存,而不是尽量的节省内存。
    seakingii
    seakingii
    Feb 27, 2023
    95
    OP 的 2G 内存其实很多了(对个人网站),如果为了学习,可以考虑本地开个 256M 这样的虚拟机玩
    sunnywx
    sunnywx
    Feb 27, 2023 via Android
    96
    我之前 1c1g ,lnmp+typecho 挺快的,还跑了一个 frp
    hefish
    hefish
    Feb 27, 2023
    97
    可以写一个 txt 文件,里面放网站的所有内容。
    jeesk
    jeesk
    Feb 27, 2023
    98
    我 500m 的服务器都能跑一些服务。2g 还嫌小
    tuutoo
    tuutoo
    Feb 27, 2023
    99
    我最近才发现 NotionNext 超好用。
    直接用 Notion 写,用 NotionNext 发布到 Vercel ,连服务器都省了,还可以绑定自己域名。笔记即博客。
    alsas
    alsas
    Feb 27, 2023
    100
    后端用 go
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5250 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 232ms · UTC 06:09 · PVG 14:09 · LAX 22:09 · JFK 01:09
    ♥ Do have faith in what you're doing.