插件窝 干货文章 LAMP环境下如何优化Linux性能

LAMP环境下如何优化Linux性能

优化 MySQL 缓存 内存 485    来源:    2025-05-08

在LAMP(Linux + Apache + MySQL + PHP)环境下优化Linux性能需要从系统层、服务层和应用层进行综合调整。以下是详细的优化方案:


一、系统层优化

  1. 内核参数调优

    • 修改 /etc/sysctl.conf,优化TCP/IP和内存管理:

      # 提升网络性能
      net.ipv4.tcp_fin_timeout = 30
      net.ipv4.tcp_tw_reuse = 1
      net.core.somaxconn = 65535
      
      # 内存和文件系统优化
      vm.swappiness = 10
      vm.dirty_ratio = 60
      vm.dirty_background_ratio = 10
      fs.file-max = 65535
      
    • 生效命令:sysctl -p
  2. 文件系统优化

    • 使用 ext4xfs 文件系统(推荐 xfs 对高并发更友好)。
    • 挂载选项优化(/etc/fstab): bash defaults,noatime,nodiratime,data=writeback,barrier=0 1 1
  3. 资源限制调整

    • 修改 /etc/security/limits.conf: ```bash
      • soft nofile 65535
      • hard nofile 65535 mysql soft nofile 65535 # 针对MySQL用户单独设置 ```
  4. 禁用不必要的服务

    • 关闭非必需服务(如 postfixbluetooth): bash systemctl disable postfix

二、Apache优化

  1. MPM模块选择

    • 高并发场景建议使用 event MPM(替换 prefork): bash a2dismod mpm_prefork a2enmod mpm_event systemctl restart apache2
  2. 配置参数调整

    • 修改 /etc/apache2/mods-available/mpm_event.confapache StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 150 MaxConnectionsPerChild 1000
  3. 启用压缩与缓存

    • 启用 mod_deflatemod_expiresapache <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/json </IfModule>

三、MySQL优化

  1. 配置 my.cnf

    • 根据内存调整关键参数(假设服务器内存为4GB): ini [mysqld] innodb_buffer_pool_size = 2G # 内存的50%-70% innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 # 非严格ACID场景可设为2 query_cache_size = 0 # MySQL 8.0已移除查询缓存 max_connections = 200
  2. 索引与查询优化

    • 使用 EXPLAIN 分析慢查询,添加合适的索引。
    • 启用慢查询日志: ini slow_query_log = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 2

四、PHP优化

  1. OPcache加速

    • 启用 OPcache(PHP 7+默认集成): ini zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000
  2. 调整PHP-FPM配置

    • 修改 /etc/php/7.x/fpm/pool.d/www.confini pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10

五、其他优化

  1. 使用缓存层

    • 部署Redis/Memcached缓存数据库查询结果。
    • 对静态资源启用CDN或浏览器缓存。
  2. 监控与诊断工具

    • 使用工具实时分析性能瓶颈: bash top/htop # 实时系统负载 vmstat 1 # 监控CPU/内存/IO iostat -x 1 # 磁盘IO分析 mysqladmin proc # MySQL进程监控
  3. 定期维护

    • 自动化日志轮转(logrotate)。
    • 定期清理MySQL二进制日志和临时文件。

六、安全优化(可选)

  • 配置防火墙(ufw/iptables)限制非必要端口。
  • 使用 mod_security 加固Apache。

通过以上步骤,LAMP环境的性能可显著提升。建议每次修改后通过工具(如 absysbench)进行压力测试,对比优化效果。根据实际硬件和业务需求调整参数值。