温馨提示×

Linux下如何优化LNMP启动速度

小樊
51
2025-06-06 17:22:18
栏目: 智能运维

在Linux下优化LNMP(Linux, Nginx, MySQL, PHP)启动速度,可以从以下几个方面进行:

1. 优化Nginx

  • 调整工作进程数

    worker_processes auto; # 或者设置为CPU核心数
    
  • 启用keepalive

    keepalive_timeout 65;
    keepalive_requests 100;
    
  • 减少日志级别

    error_log /var/log/nginx/error.log debug;
    access_log /var/log/nginx/access.log main buffer=32k flush=300s;
    
  • 使用TCP nodelay和TCP nopush

    tcp_nopush on;
    tcp_nodelay on;
    

2. 优化MySQL

  • 调整缓冲区和缓存大小: 编辑/etc/my.cnf/etc/mysql/my.cnf,增加以下配置:

    [mysqld]
    innodb_buffer_pool_size = 70% of RAM
    key_buffer_size = 256M
    query_cache_size = 64M
    
  • 优化连接数

    max_connections = 500
    
  • 启用查询缓存

    query_cache_type = 1
    query_cache_size = 64M
    
  • 使用SSD: 如果可能,将MySQL数据目录放在SSD上,以提高I/O性能。

3. 优化PHP

  • 调整PHP-FPM配置: 编辑/etc/php-fpm.d/www.conf,增加以下配置:

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    
  • 启用OPcache: 编辑/etc/php/7.x/fpm/php.ini,增加以下配置:

    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    

4. 系统级优化

  • 调整文件描述符限制: 编辑/etc/security/limits.conf,增加以下配置:

    * soft nofile 65535
    * hard nofile 65535
    
  • 调整内核参数: 编辑/etc/sysctl.conf,增加以下配置:

    net.core.somaxconn = 65535
    net.ipv4.tcp_max_syn_backlog = 65535
    net.ipv4.ip_local_port_range = 1024 65535
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30
    
  • 使用systemd优化启动服务: 确保Nginx和MySQL服务使用systemd启动,并设置适当的启动顺序和依赖关系。

5. 监控和分析

  • 使用监控工具: 使用如Prometheus、Grafana等工具监控系统性能,及时发现并解决问题。

  • 分析日志: 定期分析Nginx和MySQL的日志文件,找出性能瓶颈和潜在问题。

通过以上优化措施,可以显著提高LNMP的启动速度和整体性能。根据实际情况调整配置参数,以达到最佳效果。

0