温馨提示×

ubuntu lamp内存使用优化

小樊
45
2025-08-13 09:57:27
栏目: 智能运维

以下是Ubuntu LAMP环境内存使用的优化方法:

系统层面

  • 更新系统与软件:定期升级系统和LAMP组件,获取性能优化和安全补丁。
  • 关闭不必要的服务:用systemctl disable关闭非必需服务(如蓝牙、snapd),减少内存占用。
  • 调整交换空间:通过fallocate创建交换文件,设置合理大小(如4GB),避免过度依赖swap。

Apache优化

  • 选择高效工作模式:根据负载选择EventWorker模式(需安装mpm_event/mpm_worker模块),减少进程开销。
  • 调整进程参数
    • MaxRequestWorkers:根据内存计算合理值(如内存/单个进程占用),避免过多进程消耗内存。
    • MaxConnectionsPerChild:设置为非0值(如1000),防止内存泄漏。
  • 启用缓存模块
    • mod_deflate:压缩传输数据,减少带宽和内存占用。
    • mod_expires:设置静态资源缓存,减少重复请求。
  • 禁用冗余模块:用a2dismod禁用不需要的模块(如mod_ssl若无需HTTPS)。

MySQL优化

  • 调整缓冲区参数
    • innodb_buffer_pool_size:设置为系统内存的50%-80%,提升数据读取效率。
    • key_buffer_size:根据索引大小调整,通常设置为16-64MB。
  • 优化查询与索引
    • 为高频查询字段创建索引,避免全表扫描。
    • 启用查询缓存(query_cache_size),但需注意缓存失效问题。
  • 定期维护:用OPTIMIZE TABLE整理碎片,清理无用数据。

PHP优化

  • 启用OpCode缓存:安装opcache扩展,缓存编译后的字节码,减少重复解析。
  • 调整内存限制:在php.ini中设置合理的memory_limit(如128M-256M),避免单个脚本占用过多内存。
  • 优化代码:减少循环嵌套,避免SELECT *,使用预处理语句减少数据库交互。

监控与维护

  • 实时监控:用top/htop查看内存占用,定位异常进程。
  • 定期清理缓存:清理APT缓存(apt-get autoclean)和临时文件,释放内存。

注意:优化前需在测试环境验证配置,避免影响生产环境稳定性。
参考来源:

0