温馨提示×

LNMP在Ubuntu上的内存管理

小樊
47
2025-08-17 10:34:02
栏目: 智能运维

LNMP在Ubuntu上的内存管理可从系统、组件配置及监控优化入手,具体如下:

  • 系统层面

    • 利用Linux虚拟内存和OOM Killer机制,通过free -htop等命令监控内存使用,及时处理异常进程。
    • 调整内核参数(如vm.swappiness)控制交换分区使用倾向,避免频繁内存交换。
  • Nginx优化

    • 设置worker_processes为CPU核心数,worker_connections根据内存调整(建议1024-4096),启用epoll事件模型。
    • 启用Gzip压缩减少传输数据量,配置静态文件缓存(expires指令)降低重复请求压力。
  • MySQL调优

    • 核心参数:innodb_buffer_pool_size设为物理内存的50%-70%,max_connections匹配服务器负载。
    • 谨慎使用查询缓存(query_cache_type),避免内存占用过高。
  • PHP管理

    • 通过php.ini设置memory_limit(如128-256M),限制脚本内存使用。
    • 启用OpCache缓存字节码,减少重复编译开销;禁用非必要扩展以降低内存占用。
    • 配置PHP-FPM参数:pm.max_children根据内存计算(建议50-100),pm.max_requests定期重启进程防止内存泄漏。
  • 缓存策略

    • 使用Memcached/Redis缓存频繁访问数据,减轻数据库压力。
    • 对静态资源(图片、CSS/JS)启用CDN或Nginx代理缓存。
  • 监控与维护

    • 定期查看/var/log/syslogjournalctl及组件日志(如Nginx、MySQL),定位内存异常。
    • 通过htopvmstat等工具实时监控内存占用,及时调整配置。

参考来源

0