Linux LNMP性能提升实操指南
一 基线评估与压测
ab -n 10000 -c 200 http://your_server_ip/二 Nginx 调优要点
worker_processes auto;(通常等于CPU 核心数)worker_connections 1024+;(结合内存与带宽评估)worker_rlimit_nofile 65535;(提升文件描述符上限)sendfile on;、tcp_nopush on;、tcp_nodelay on;keepalive_timeout 65;、keepalive_requests 100000;gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;expires 30d; add_header Cache-Control "public";proxy_cache_path ...listen 443 ssl http2;server_tokens off;access_log ... buffer=32k flush=300s; error_log ... warn;三 PHP 与 PHP-FPM 调优
opcache.enable=1opcache.memory_consumption=128–256opcache.interned_strings_buffer=8–64opcache.max_accelerated_files=4000–10000opcache.validate_timestamps=1(开发)或按需增大 revalidate_freq(生产)opcache.jit=on、opcache.jit_buffer_size=128Mpm.max_children ≈ 内存 / 单进程内存占用;单进程内存可通过 pm.status_path 观察 RSS 估算。pm.max_children=50; pm.start_servers=5; pm.min_spare_servers=5; pm.max_spare_servers=35request_terminate_timeout=30s; slowlog=/var/log/php-fpm/www-slow.log四 MySQL MariaDB 调优要点
innodb_buffer_pool_size=物理内存的50%–80%innodb_buffer_pool_instances=CPU 核心数(或 8 的倍数)innodb_log_file_size=128M–1G;innodb_log_buffer_size=64Minnodb_flush_log_at_trx_commit=2 更偏性能;=1 更偏一致)innodb_flush_method=O_DIRECT; innodb_file_per_table=1; innodb_io_capacity=2000(SSD)max_connections 与业务峰值匹配,避免过大导致上下文切换与内存压力wait_timeout/interactive_timeout,回收空闲连接EXPLAIN 检查执行计划SELECT *、在 WHERE 中避免函数计算、合理使用索引与覆盖索引Threads_connected/Threads_running、InnoDB 缓冲池命中率、临时表与排序使用情况。五 系统与网络优化及上线验证
ulimit -n 65535/etc/security/limits.conf:* soft/hard nofile 65535net.core.somaxconn=65535net.ipv4.ip_local_port_range=1024 65535net.ipv4.tcp_fin_timeout=30net.ipv4.tcp_tw_reuse=1(注意与业务兼容)net.core.netdev_max_backlog=65535net.nf_conntrack_max=2097152noatime、XFS/ext4 合理挂载选项deadline