You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DigitalOcean 1GB Droplet运行PHP Laravel Docker应用的可行性与优化

在1GB内存DigitalOcean Droplet上运行Laravel Docker应用的性能问题

我在DigitalOcean最低配1GB内存的Droplet上运行PHP Laravel Docker Web应用时遇到问题。该应用仅用于开发,几乎无访问量,但访问时速度极慢。连接到托管它的VPS后发现内存已被大量占用,DigitalOcean控制台显示CPU使用率也很高,有时甚至无法执行命令或连接VPS。

该应用架构类似Google Drive克隆项目。

应用未运行时内存使用情况(执行free -m命令):

total        used        free      shared  buff/cache   available
Mem:             960         781          83          15         253         179

启动Docker容器后(容器列表见docker ps输出),内存剩余极少:

启动容器后的内存使用情况(free -m命令)

total        used        free      shared  buff/cache   available
Mem:             960         781          83          15         253         179

请问是否可以在1GB内存的Droplet上运行该应用?若可行,应如何优化内存使用与应用效率?


解决方案

可行性结论

完全可以在1GB内存的Droplet上运行这类Laravel Docker开发应用,核心是通过针对性优化把资源占用控制在可用范围内。

具体优化方案

1. 限制Docker容器资源

  • 给每个容器设置内存和CPU配额,防止单个容器耗尽主机资源:
    # 启动容器时添加资源限制参数(示例:给Laravel容器限制512MB内存、0.5核CPU)
    docker run -d --memory=512m --cpus=0.5 your-laravel-image
    
    # 若使用docker-compose,在对应service节点下添加配置:
    # deploy:
    #   resources:
    #     limits:
    #       memory: 512M
    #       cpus: '0.5'
    
  • 清理无用的容器、镜像和卷,释放磁盘与内存资源:
    docker system prune -af
    

2. Laravel应用层优化

  • 开启框架缓存,减少重复编译开销:
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    
  • 关闭非必需服务:开发环境下禁用队列、调度器等后台进程;若未用到Redis/Memcached,可暂时关闭对应服务。
  • 优化PHP配置:修改php.ini,将memory_limit降至256M,开启opcache.enable=1启用 opcode 缓存,减少PHP代码重复解析的资源消耗。

3. VPS系统层面优化

  • 创建Swap分区缓解内存压力:
    fallocate -l 2G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo '/swapfile none swap sw 0 0' >> /etc/fstab
    
  • 禁用无用系统服务:关闭postfix、rsyslog等不需要的后台服务,释放内存资源。
  • 调整Docker守护进程配置:编辑/etc/docker/daemon.json,限制日志大小和共享内存:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      },
      "default-shm-size": "64M"
    }
    
    重启Docker生效:systemctl restart docker

4. 开发环境专属优化

  • 精简Laravel Sail配置:若使用Sail,关闭Mailhog、Meilisearch等暂时不需要的附属服务。
  • 本地优先开发:日常开发在本地运行应用,仅需测试部署时启动VPS容器,减少主机资源持续占用。

内容的提问来源于stack exchange,提问作者NicLovin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:25:15