Ubuntu LNMP如何进行性能调优
导读:Ubuntu LNMP 性能调优实操指南 一 基线评估与压测 明确硬件与业务指标:记录CPU核数、内存、磁盘类型(优先SSD)、带宽,梳理QPS/并发、P95/P99延迟、错误率目标。 建立监控与日志:部署Prometheus + Gra...
Ubuntu LNMP 性能调优实操指南
一 基线评估与压测
- 明确硬件与业务指标:记录CPU核数、内存、磁盘类型(优先SSD)、带宽,梳理QPS/并发、P95/P99延迟、错误率目标。
- 建立监控与日志:部署Prometheus + Grafana或Zabbix监控CPU、内存、连接数、磁盘IO、网络;集中分析Nginx error.log与PHP-FPM 日志,便于定位瓶颈。
- 基线压测与回归:使用ab/wrk做基线测试,示例:
ab -n 10000 -c 200 http://your_domain/,每次调参后回归验证,观察P95/P99与错误率变化。
二 Nginx 调优
- 进程与连接:设置
worker_processes auto;(通常等于CPU核心数);worker_connections 1024+并结合内存与CPU调整;开启multi_accept on;。 - 长连接与复用:
keepalive_timeout 65; keepalive_requests 100;,提升Keep-Alive复用率,降低握手开销。 - 静态资源与缓存:对图片、CSS、JS设置强缓存与协商缓存;启用Gzip/Brotli压缩;按需配置Nginx 反向代理/内容缓存(如
proxy_cache_path)。 - 传输与协议:启用sendfile on; tcp_nopush on; tcp_nodelay on; `,开启HTTP/2**提升并发加载性能。
三 PHP-FPM 与 OPcache 调优
- 进程模型与池配置:采用动态(dynamic)模式,按内存与负载设置
pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers,避免内存耗尽或排队过长。 - 通信与超时:
listen优先使用Unix Socket(如unix:/var/run/php/php8.1-fpm.sock),减少网络栈开销;合理设置request_terminate_timeout/fastcgi_read_timeout与pm.max_requests以回收异常进程。 - OPcache 必开:启用并合理设置
opcache.enable=1、opcache.memory_consumption、opcache.interned_strings_buffer、opcache.max_accelerated_files、opcache.save_comments=1;在PHP 8.0+可开启JIT(opcache.jit=on、opcache.jit_buffer_size=128M)以进一步加速。 - 资源与代码:适度提升
memory_limit与max_execution_time;精简依赖、合并/压缩CSS/JS、优化图片,减少不必要的数据库查询与远程调用。
四 MySQL MariaDB 调优
- 缓冲与内存:将InnoDB缓冲池设为可用内存的高比例(如约70%):
innodb_buffer_pool_size=70% of RAM;按场景设置key_buffer_size、query_cache_type/size(注意:MySQL 8.0 已移除查询缓存)。 - 连接与会话:
max_connections结合work_mem/排序/临时表能力设置,避免连接风暴;开启线程缓存减少创建销毁开销。 - 查询与索引:避免
SELECT *,为高频条件列建立索引/联合索引;用EXPLAIN分析执行计划;对大结果集使用LIMIT;定期执行ANALYZE/OPTIMIZE TABLE维护统计与碎片。 - 高可用与扩展:读多写少场景引入主从复制分担读负载;必要时采用分区/分表降低单表数据量。
五 系统与网络优化及扩展
- 文件描述符与进程限制:提升ulimit -n(如65535),在 systemd 服务单元中设置
LimitNOFILE=65535,避免“too many open files”。 - 内核网络参数:调大net.core.somaxconn、net.ipv4.tcp_max_syn_backlog、net.core.netdev_max_backlog;扩大net.ipv4.ip_local_port_range=1024 65535;按需开启tcp_fastopen=3;适度降低tcp_fin_timeout;如启用连接跟踪,提升nf_conntrack_max与相关超时。
- 存储与虚拟内存:优先SSD;降低vm.swappiness(如10–30)减少换页;确保I/O 调度器与文件系统对齐业务特性。
- 扩展架构:使用Nginx 负载均衡横向扩展后端;静态资源上CDN;应用层引入Redis/Memcached做页面/数据缓存;持续监控与压测闭环迭代。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu LNMP如何进行性能调优
本文地址: https://pptw.com/jishu/748469.html
